プログラミング初心者です
##環境
Laravel 5.8
PHP 7.3.29
AWS EC2 にてデプロイ
##問題
データ処理送信を行う際、loggerメソッドでlogを記載しようとしたが、当日のLogファイルのPermision Deniedつまり権限エラーが出てしまいました。
$ php artisan
実行時も同様のエラーが出ました。
以下エラー例文です。
UnexpectedValueException : The stream or file
“/test/laravel/storage/logs/laravel-2021-01-01.log” could not be opened: failed
to open stream: Permission denied
##やってみたこと
ターミナルで以下を入力します。
storageディレクトリの権限を777に変更します。
chmodの権限についてこちらの記事が詳しいです。
$ sudo chmod 777 -R storage/
####別問題発生
上記のコマンドは、当日のみのLogファイル権限が変更されます。
例:当日が1/1なら、laravel-2021-01-01.logの権限が変更。
つまり日付が変わってしまうと、またコマンド入力して権限変更させないといけないのです。
##解決方法
config/logging.php
ファイルの中の daily の部分を以下のように変更します。
'daily' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel-'.php_sapi_name().'.log'),
'level' => 'debug',
'days' => 14,
],
php_sapi_name()を追加します。
以降Logファイル名は laravel-cli-2021-01-01.log のようになり、cliがつくようになりましたが、自分はこれで日を跨いでも無事に動き解決できました。
参考記事はこちら