1
2

More than 3 years have passed since last update.

Logファイルの権限エラーの解決方法(Laravel)

Last updated at Posted at 2021-08-28

プログラミング初心者です

環境

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 の部分を以下のように変更します。

config/logging.php
'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がつくようになりましたが、自分はこれで日を跨いでも無事に動き解決できました。
参考記事はこちら

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2