ダークエリア

SEのお仕事の備忘録や、ゲームの話などなどを記事に放り込む!!

PHP 設定ファイルphp.iniが反映されないで困った

もう解決事項なので結論から書いちゃうけど、

php-fpmの再起動が必要だった。困ったちゃんでちゅわねぇ…

 

確認すべきことをまとめると、下記の通り。次から3も確認するのだ…

1.php.iniの記述が間違っていないこと

2.apacheを再起動したこと systemctl restart httpd

3.php-fpmを再起動したこと systemctl restart php-fpm

 

ここにたすけられました。ありがとう。。!

Apacheの再起動でphp.iniの設定が反映されなかった時 - suzu6

 

メモ

php.iniで変更した内容はこれ(アップロード関連で。コマンドでこれを実行)

sed -i -e "s/upload_max_filesize = 2M/upload_max_filesize = 64M/g" /etc/php.ini
sed -i -e "s/post_max_size = 8M/post_max_size = 64M/g" /etc/php.ini
sed -i -e "s/memory_limit = 128M/memory_limit = 256M/g" /etc/php.ini

<?php phpinfo(); ?> して値が変わってるのを確認すること。

datetimepickerのjsファイルが変わってた

日”時”の入力にdatetimepickerを探して導入

さて「.datetimepicker();」! う、、うごかない!! ということがあった。

 

「uncaught typeerror cannot read property 'parsedate' of null datetimepicker」

とのことでくっそハテナ。

原因はなんだ!と思ったら、読み込むjsファイルが変わっていた。。

 

2015年くらいの記事を参考にすると、

jquery.datetimepicker.js」を使うというところを、

「DateTimePicker」 日時の入力も怖くない!jQuery プラグイン | 株式会社アルベ | Arubeh Inc.

 

2018年くらいの記事では、

jquery.datetimepicker.full.js」ってことなんだって。

jQuery【 jQuery UI 】時刻まで選択可能な datetimepicker でカレンダーを表示 | プログラマカレッジ

 

こんな問題も起きている。回答にはやはり、.fullを使うんだよーという内容が。。

www.jqueryscript.net

 

なんで変わっちゃったのかしらんけど気を付けよう(´・ω・`)。。

Laravelメモ

■Modelに関して

・あの検索条件まとめるやつって名前なんだっけ⇒スコープ scope

【Laravel】Eloquentのメソッド、プロパティ簡単まとめ - Qiita

・もっと便利なことが知りたい

Eloquentに惚れちゃう便利な機能 - Qiita

・論理削除の実装⇒ふつーにfindして->delete()でいける

Laravel5.6, 5.7 論理削除を実装する! | のるぼるのるの

・deleted_atをdelete_flagにする方法は↓。でもめんどいので今回はed_atにしたよ。。

Laravelでデリートフラグを使って論理削除を実現する手順 - Qiita

 

■Controllerに関して

・Authの理解が追い付かない⇒別記事にまとめ…る(未来形)

Laravel6でAuthログイン機能を作成 - ダークエリア

 

■Viewに関して

・Formが使えない⇒ファサードが入ってない

【Laravel】Formファサード(laravelcollective/html)をインストールする | ProgramMemo

$ composer require "laravelcollective/html"

Laravel Eloquent whereBetweenにカラム名を使いたかった

Laravelでクエリを作っているとき、whereにbetween書きたかった。

現在時刻 between 開始 and 終了 みたいなことをしたくて。

データベース:クエリビルダ 5.7 Laravel

 

結論、できなかった。

Illuminate\Database\Query Builder クラスを追ってみると、

引数に指定する値がどうしてもバインドされているので

カラム名は使えない。。

 

無理やりやるなら、こういう方法もあるらしい。

【Laravel5.7】カラム名でBETWEENしたい - Qiita

でも私的には、こうするくらいならもうwhereRawしたいかなということであきらめ!

もういいや!うん!

Laravel6でAuthログイン機能を作成

この辺を参考に

・基本的なAuthのやり方

Laravel6 ログイン機能を実装する - Qiita

・Authを複数実装するやり方

Laravel6でマルチ認証を実装する(UserとAdminの階層を分ける) - Qiita

・Authのrouteやguardが何をしてるかがわかる記事

Laravel5.5 Multi-Auth 分かりやすいフォルダ構成 備忘録 - Qiita

Laravel の Guard(認証) って実際何をやっているのじゃ? - Qiita

 

コマンドとかは上記に書いてある通り実行していくだけなので、説明は省略。

 

ここから、Authがどういう作用しているのか個人的にまとめたい。

サーバ構築で勉強になったことメモ

>>前提

・OS: AmazonLinux2 minimum10GBらしい

・開発環境: PHP7/Laravel6/MariaDB10.5/Apache2.4

 

■AmazonLinux2にMariaDBのインストール

最新の安定版ということなので10.5.4が使いたくて。下記を参考に。

[Amazon WorkSpaces]AmazonLinux2にMariaDB10.3インストール - Qiita

新規で下記ファイルを作成

sudo vi /etc/yum.repos.d/MariaDB.repo

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

んでインストール

sudo yum install MariaDB-server MariaDB-client -y 

 

■Laravel入れるときにずっこけ~のメモリ不足⇒すわっぽんした

メモリ不足でLaravelインストール、composer update失敗 - Qiita

# sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
# sudo chmod 600 /swapfile
# sudo mkswap /swapfile
# sudo swapon /swapfile
# free -m
total used free shared buff/cache available
Mem: 983 69 75 0 838 770
Swap: 2047 0 2047 ←これが増えたらおk

 

■Laravelで既存のテーブルからModelを作成

・Modelsフォルダ作成

・ここを参考に

Laravel 5.5 既存のデータベースからモデルを一発で逆生成した手順 – oki2a24

$ composer require krlove/eloquent-model-generator --dev

$ php artisan krlove:generate:model Admin --table-name=admin --namespace=App\\Models --output-path=/var/www/html/funya/app/Models

てきなかんじ。

⇒のちに、こんなエラーが。

InvalidArgumentException : Database connection [other-connection] not configured.

at /var/www/html/jamboree/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php:152

これ、「config/eloquent_model_generator.php」の「connection」の設定があかんかったらしく。

記事を参考にother-connectionにしちゃったんだけど、mysqlが正しかった。まぁそりゃそうだよね。ここは接続名を書くところっす。

 

apache起動してもページが見れなかったとき確認したこと

・各種.confが正しいか

/etc/httpd/conf/httpd.conf またはそこから読み込んでいるconf

/etc/httpd/conf.d の なんとか.conf(vhosts.confとかvirtual.conf など)

・サーバ見れるのか

Windowsコマンドプロンプトで nslookup [ipアドレス]

・ポート80が動いているか

ターミナルコンソールで lsof -i:80

netstat -nap でも可

https://www.softel.co.jp/blogs/linux/archives/53

AWS側でポート80を開いているか

(管理者に確認)

 

■開発するための権限設定

・どうしてもテキストエディタで編集したい、viはきびい

WinSCPなどで開いて編集できるようにしたい

⇒ec2-userで触れるようにしなきゃ

・参考にしたとこ

Linuxでユーザーをグループに追加する - Qiita

Linuxの基礎知識 - アクセス権まわりについて - Qiita

ファイルやディレクトリのパーミッションを一括で置換したい - Qiita

・ec2-userをapacheグループに追加

usermod -aG GROUPS USER

・ファイル作成時のデフォルト所有グループは、フォルダのグループを継承

# find /var/www/html/funya -type d -exec chmod 2775 {} +
# find /var/www/html/funya -type f -exec chmod 0664 {} +
# umask 0002

※Laravelの場合これもやった
chmod 755 artisan

 

WinSCPでファイル編集はできるけどパーミッションだなんだと怒られ

WinSCPで"パーミッション/タイムスタンプの設定中にエラーが発生しました"について調べてみた - Qiita

「WinSCP」で「パーミッション/タイムスタンプの設定中にエラー」「Permission denied」とメッセージが表示される | 情強ツールズ.com

タイムスタンプの変更が、touchなどではなく、

権限変更も伴うコマンド、preserveなどで行われているらしい。

オプション>環境設定>転送

 デフォルト>編集>パーミッションエラーを無視する にチェック!

 

MariaDBにテストデータを入れようとして文字化けして怒られ

なんかしらんけど勝手に文字化けした上にこっちが起こられる始末~~~~

MySQL Incorrect string value: の解決策 | テクニカルノート

【MySQL】INSERT INTOで「Incorrect string value」エラーが表示された時の解決方法|たのしいWeb

・DBのcharasetをutf8に設定

SHOW VARIABLES LIKE 'character_set%';

vi /etc/my.cnf

[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8

・各テーブルのcharasetをutf8に設定

すでにcreateしたテーブルには下記SQLを実行。

ALTER TABLE table CONVERT TO CHARACTER SET utf8;

ワイの場合はEclipceでER図を作っているので、

そっちのテーブル定義に「CHARACTER SET utf8」を追記してdrop-create。。

mysqlapacheを再起動 systemctl restart mysqlhttpd

 

■LaravelのEloquentでデータ取得…あれ?!ま~だ文字化けてる

・↑でやったcharasetの設定が生きてるか確認。

・Laravelのcharasetがutf8か確認

config/database.php がそうなってなかったので下記変更

'charset' => 'utf8mb4', ⇒ 'charset' => 'utf8',

'collation' => 'utf8mb4_unicode_ci', ⇒ 'collation' => 'utf8mb4_unicode_ci',

・そもそもDBに入ってる値が文字化けてないか確認

まじで文字化けてたので、Insertしなおし。。

 

CentOSで検証環境を作った時、firewalldを触った

Laravelのインストールまでして、ページが見れなかったので、80を開けた

【すぐわかる】CentOSのポート開放のやり方

CentOS 7 firewalld よく使うコマンド - Qiita

firewall-cmd --zone=public --add-service=http --permanent

firewall-cmd --reload

 

CentOSでページは動いた…けど…

 

■logの書き込みに失敗している?

「The stream or file "/var/www/html/funya/storage/logs/laravel.log" could not be opened」とか怒られた(´・ω・`)

ワイの場合原因はSELinuxだったみたいで。「setenforce 0」したらいけた。

状態確認は「getenforce」で。(Enforcing/Permissive)

[Laravel]ログファイルの書き込みで UnexpectedValueException The stream or file "laravel.log" could not be openedエラー | akamist blog

 

■DBのdriverでエラーを起こしている?

「could not find driver」とかまぁた怒られてDB関わるとこ動かん(´・ω・`)

調べたらこんなのが。。

【Laravel】CentOSのLAMP環境でcould not find driver - suzu6

# sudo yum -y install --enablerepo=remi,remi-php74 php-mysqlnd

 

■動くけどレイアウト崩れが激しい…

画面が白いよう…(´;ω;`) まさにここみたいな状態なので、npm系とわかった。

Laravel6.5 ログイン(login)画面と登録画面(register)画面のレイアウトの崩れを修正 - Qiita

laravelでnpm run devを実行すると「cross-env: not found」というエラーが出る件対応したった - Qiita

・上記を参考にコマンドを打つ。再インストールされてるだけだとおもうけど。。

npm run watch

npm install webpack

npm install

・また、「npm install」した際に「run~」と出てくるコマンドを実行

npm fund(37 packages are~~run `npm fund` for details と出ていた)

npm audit fix(found 1 low severity~~run `npm audit fix` to fix… と出ていた)

もしかしたらfundは関係ないかもだけど、auditは更新系なので重要。

 

■Cent検証環境にPCのエクスプローラでアクセスできるようにSambaを入れる

Samba インストール - linux

・ユーザ追加

useradd smbuser
passwd smbuser

・インストール

yum install samba samba3-winbind samba3-utils
smbd -V
smbpasswd -a smbuser

SELinux無効化

setenforce 0
getenforce

・Samba設定ファイル修正

vi /etc/samba/smb.conf
※[homes] に追加
path = /var/www/html/funya/

ファイアウォール設定

firewall-cmd --zone=public --add-service=samba --permanent
firewall-cmd --reload

・Samba再起動

systemctl restart smb
systemctl status smb

⇒\\192.168.xx.xxにアクセスすると、pathに指定したフォルダがみれる!

PCのキーボードのキー位置を変える

新しいPCにしたんですが、中華PCなので…

キー位置がちがいました・・・困った。。

そこで、キー位置を変えるにはどうしたらいいか、調べました。


dynabook.com

設定>時刻と言語>言語 の

「日本語」をクリックすると出てくる「オプション」をクリックして開く

「キーボードレイアウト:日本語キーボード(106/109キー)」に設定すると、

いつも使い慣れているキー配置になります。

続きを読む