【问题标题】:The stream or file "/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied无法打开流或文件“/storage/logs/laravel.log”:无法打开流:权限被拒绝
【发布时间】:2018-05-06 23:15:14
【问题描述】:

当我在我的 CentOS 服务器上导航到 Laravel 应用程序时,它会给出 HTTP ERROR 500

所以,当我检查我的服务器错误日志时,它说这个错误

PHP Fatal error:  Uncaught UnexpectedValueException: The stream or file "/var/www/html/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied in /var/www/html/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107\nStack trace:\n#0 

我已经为 storage 和 bootstrap 目录设置了 777 权限。

这个非常 Laravel 应用程序在另一台服务器上运行良好。那么,这里有什么大不了的呢?

【问题讨论】:

  • 这可能与SELinux的文件权限有关,尝试搜索它,并尝试先禁用SELinux,如果是罪魁祸首,那么您需要找到一种方法来启用SELinux,同时允许您的站点正常运行
  • @am05mhz 哦,我会搜索它,但是,这对我来说是希腊语,因为我对这个服务器有点陌生。
  • 这里是起跑线tecmint.com/…
  • 您永远不应该将权限设置为 777。尝试touch /var/www/html/storage/logs/laravel.log 并让您的 php 用户成为所有者,例如使用chown。然后检查它是否有效。

标签: php laravel


【解决方案1】:

可以通过禁用 SE-Linux 来修复此错误。

通过键入检查它是否已启用...

$ sestatus

所以,通过键入禁用它...

# setenforce 0

据说需要重启系统才能生效。

但是,对我来说,重新启动 Apache 就足够了,并且解决了问题:-)

希望这会有所帮助!

【讨论】:

  • 关闭 selinux 非常糟糕!而是使用项目目录中的chcon -R -t httpd_sys_rw_content_t storage 然后重新启动http,
【解决方案2】:

如果您的应用程序是 laravel 并且您使用sai,那么在.env 文件的末尾添加这些行:

WWWGROUP=1000
WWWUSER=1000

我知道回答晚了,但可能对其他人有所帮助。

【讨论】:

  • 另外,尝试停止 Docker(如果使用 Laravel Sail),然后运行:chown yourusername:yourgroup -R .(请参阅 Laravel 目录中 ls -la 的输出以获取用户名/组),chmod 750 -R .,启动 Docker,并运行 php artisan route:clearphp artisan config:clearphp artisan cache:clear
猜你喜欢
  • 2018-10-03
  • 2020-06-16
  • 2018-07-08
  • 2021-10-03
  • 2019-02-10
  • 2021-10-03
  • 2019-08-09
  • 2021-06-26
  • 2019-09-10
相关资源
最近更新 更多