LoginSignup
48
35

More than 5 years have passed since last update.

【Laravelでエラー対処】PHP Fatal error: Uncaught UnexpectedValueException: The stream or file "/var/www/base_path/storage/logs/laravel-yyyy-mm-dd.log" could not be opened: failed to open stream: Permission denied

Last updated at Posted at 2017-05-02

LaravelのWebサーバーにリクエストした際、以下のようなエラーが出力され、期待した処理が行われない場合の原因と対策。

エラー出力


tail -f /var/log/httpd/error_log # WebサーバーがApacheの場合
PHP Fatal error: Uncaught UnexpectedValueException: The stream or file "/var/www/base_path/storage/logs/laravel-yyyy-mm-dd.log" could not be opened: failed to open stream: Permission denied

Laravelのエラーログには出力されず、*Apacheのエラーログに出力される。
*Webサーバーの種類は環境による

原因

Laravelのlogファイルにapacheユーザーが書き込み権限を持たないため、logに書き込めずに例外が発生している。

[root@prod_sv /]# ls -latr /var/www/base_path/storage/logs/
合計 1819392
...
-rw-r--r-- 1 apache apache 597379535  4月 29 23:59 laravel-2017-04-29.log
-rw-r--r-- 1 apache apache 116592494  4月 30 23:59 laravel-2017-04-30.log
-rw-r--r-- 1 apache apache  54962096  5月  1 23:59 laravel-2017-05-01.log
-rw-r--r-- 1 root   root      817338  5月  2 00:23 laravel-2017-05-02.log
drwxr-xr-x 2 apache apache      4096  5月  2 00:23 .

このように-rw-r--r-- root root などの権限だと、apacheユーザーが書き込めない。

対策

・logファイルを削除する(場所を変更・名前を変更でも可)

# logファイルを削除する
# rm -r /var/www/base_path/storage/logs/laravel-2017-05-02.log

・logファイルの権限を変更する(apacheユーザーに書き込み権限を付与)


# logファイルの所有者・所属グループをapache:apacheに変更する。
# chown apache:apache /var/www/base_path/storage/logs/laravel-2017-05-02.log

これで解決。

48
35
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
48
35