laravelリポジトリをCentOS 7ボックスに複製しました。実行しようとすると、何も表示されずに500エラーが発生します。
だから私はチェックアウト/var/log/httpd/error_log
そして、私はいくつかの許可エラーを持っていることがわかります:
[Mon May 16 11:39:32.996441 2016] [:error] [pid 2434] [client 104.156.67.195:39136] PHP Fatal error: Uncaught UnexpectedValueException: The stream or file "/var/www/html/MYSITE/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied in /var/www/html/MYSITE/bootstrap/cache/compiled.php:13701
Stack trace:
#0 /var/www/html/MYSITE/bootstrap/cache/compiled.php(13635): Monolog\\Handler\\StreamHandler->write(Array)
#1 /var/www/html/MYSITE/bootstrap/cache/compiled.php(13396): Monolog\\Handler\\AbstractProcessingHandler->handle(Array)
#2 /var/www/html/MYSITE/bootstrap/cache/compiled.php(13494): Monolog\\Logger->addRecord(400, Object(Symfony\\Component\\Debug\\Exception\\FatalErrorException), Array)
#3 /var/www/html/MYSITE/bootstrap/cache/compiled.php(13189): Monolog\\Logger->error(Object(Symfony\\Component\\Debug\\Exception\\FatalErrorException), Array)
#4 /var/www/html/MYSITE/bootstrap/cache/compiled.php(13160): Illuminate\\Log\\Writer->writeLog('error', Object(Symfony\\Component\\Debug\\Exception\\FatalErrorException), Array)
# in /var/www/html/MYSITE/bootstrap/cache/compiled.php on line 13701
問題を克服するために、次のことを行いました。
chmod -R 775 storage
chmod -R 775 vendor
chown -R Apache:apache storage
そのため、次のように表示されます。
-rwxrwxr-x. 1 Apache apache 2156 May 16 11:41 storage/logs/laravel.log
しかし、それはうまくいきませんでした。
興味深いことに、以前にいくつかのartisan
コマンドを誤って入力しましたが、それらはログをログファイルに追加するようでした...
selinux
にありますこの答えが見つかりました 、これで問題が解決しました。
コマンドで
selinux
をオフにして、これが問題であることを証明してくださいsetenforce 0
これにより書き込みが可能になりますが、追加のセキュリティはサーバー全体でオフになっています。それは良くないね。 SELinuxを元に戻す
setenforce 1
最後に、SELinuxを使用して、このコマンドを使用してファイルの書き込みを許可します
chcon -R -t httpd_sys_rw_content_t storage
そして、あなたはオフです!
storage
だけでなく、SELinuxの調整をさらに行う必要があります。特に、config
dirを使用すると、Laravel=ブートストラップでこの問題を解決できます。
_Sudo setenforce permissive
_で動作する場合は、_Sudo setenforce enforcing
_に戻し、以下に従ってください。
SELinux laravel setup:
_Sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/site/laravel/storage(/.*)?"
Sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/site/laravel/bootstrap/cache(/.*)?"
_
config
には次のものは必要ないかもしれませんが、私は必要としました。あなたが必要としない限り、これを実行しないことが最も安全かもしれません:
Sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/site/laravel/config(/.*)?"
次に、ディレクトリの調整が行われた後にリセットします。
_restorecon -Rv /var/www/site/
_
私の場合、それは別のUNIXユーザーだったので、これはうまくいきました:
chown -R php-fpm:php-fpm storage
これをプロジェクト全体に適用します。
chcon -R -t httpd_sys_rw_content_t project_folder