当我在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
我已经为存储和引导目录设置了777权限。
这个Laravel应用程序在另一个服务器上运行良好。有什么大不了的?
3条答案
按热度按时间gojuced71#
可以通过禁用SE-Linux修复此错误。
通过键入以下命令检查是否已启用...
所以,通过键入禁用它...
据说需要重新启动系统才能使更改生效。
然而,对我来说,重新启动
Apache
就足够了,并修复了问题:-)希望这有帮助!
6ovsh4lw2#
如果你的应用程序是laravel并且你使用sail,那么在
.env
文件的末尾添加这些行:我知道现在回答已经晚了,但也许对其他人有帮助。
wgeznvg73#
我用的是Ubuntu 22.04。如果您不想禁用SE Linux,解决方案是:SSH到Docker容器:
docker exec -it app_name-laravel.test-1 /bin/bash
将storage/framework和storage/logs的所有者更改为sail
而不是www-data
:如果仍然不起作用,请尝试将htop安装到docker容器中。运行htop,找到
/var/www/artisan serve
的用户。然后重复上面的命令,但使用该用户,而不是sail
。祝你好运!更新
或者更好的解决方案。在docker中为root和user创建一个组(我的是sail):
然后将root和sail添加到组中:
将存储日志和框架的组所有者更改为组:
将文件权限更改为775:
这样,你可以使用本地安装的php使用
php artisan serve
,或者用docker使用sail。记住将用户留给root,并将组sailroot(或任何您命名的名称)