質問: laravel5.6をブラウザで表示させた時に ``` "The stream or file "/var/www/html/blog/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied" ``` 上記のエラーが出て、スタート画面が表示されません。 `/storage/log`に`larval.log`ファイルを作成しましたが解決せず、apacheのエラーログにも情報がありませんでした。 本来なら、`larval.log`が自動でできるはずですが、手動で作成しました。 環境はEC2,CentOS7,httpd2.4,php7.1です。 権限は以下のように変更しましたが解決しませんでした。 ``` [centos@ip-111-33-22-99 logs]$ ll 合計 0 -rwxrwxrwx. 1 root root 0 4月 24 14:12 laravel.log ``` 権限の変更をどのようにしたら良いですか。 ※追記 現状でディレクトリの権限が以下のようになっています。 blogディレクトリ以下で実行。 sudo chmod 777 storage sudo chmod 777 storage/* sudo vi laravel.log sudo chmod 777 laravel.log ``` [centos@ip-111-33-22-99 /]$ ll drwxr-xr-x. 20 root root 278 4月 26 00:32 var [centos@ip-111-33-22-99 var]$ ll drwxr-xr-x. 4 centos centos 33 4月 26 00:32 www [centos@ip-111-33-22-99 www]$ ll drwxr-xr-x. 3 centos centos 18 4月 26 02:35 html [centos@ip-111-33-22-99 html]$ ll drwxrwxr-x. 12 centos centos 4096 4月 26 02:38 blog [centos@ip-111-33-22-99 blog]$ ll 合計 176 drwxrwxr-x. 6 centos centos 84 3月 14 17:40 app -rwxr-xr-x. 1 centos centos 1686 3月 14 17:40 artisan drwxrwxr-x. 3 centos centos 34 3月 14 17:40 bootstrap -rw-rw-r--. 1 centos centos 1477 3月 14 17:40 composer.json -rw-rw-r--. 1 centos centos 143789 4月 26 02:38 composer.lock drwxrwxr-x. 2 centos centos 247 3月 14 17:40 config drwxrwxr-x. 5 centos centos 72 3月 14 17:40 database -rw-rw-r--. 1 centos centos 1150 3月 14 17:40 package.json -rw-rw-r--. 1 centos centos 1088 3月 14 17:40 phpunit.xml drwxrwxr-x. 4 centos centos 116 3月 14 17:40 public -rw-rw-r--. 1 centos centos 3622 3月 14 17:40 readme.md drwxrwxr-x. 5 centos centos 45 3月 14 17:40 resources drwxrwxr-x. 2 centos centos 75 3月 14 17:40 routes -rw-rw-r--. 1 centos centos 563 3月 14 17:40 server.php drwxrwxrwx. 5 centos centos 46 3月 14 17:40 storage drwxrwxr-x. 4 centos centos 83 3月 14 17:40 tests drwxrwxr-x. 37 centos centos 4096 4月 26 02:38 vendor -rw-rw-r--. 1 centos centos 549 3月 14 17:40 webpack.mix.js ```
回答: 何となくですが、SELinux 周りではないかと思います。 `getenforce` コマンドを実行して `Enforcing` と表示されるなら、 `setenforce 0` で一時的に、SELinux を無効にしてから再度動作をご確認ください。 もし、実際に SELinux が原因であった場合は、 a.(あまり詳しくはないのですが)`chcon` コマンドなどで別途セキュリティ設定を変更して SELinux を有効にしたまま運用するか、 b. `/etc/selinux/config` に `SELINUX=disabled` を記述し、サーバを再起動して恒久的に SELinux を無効にして運用してください。 `getenforce` コマンドを実行して `Disabled` と表示されるならまた別の原因があります。 その場合はすみません。