我收到错误日志文件的消息“无法打开流或文件“.../laravel.log”:无法打开流:权限被拒绝” [重复]
Posted
技术标签:
【中文标题】我收到错误日志文件的消息“无法打开流或文件“.../laravel.log”:无法打开流:权限被拒绝” [重复]【英文标题】:I got message for error_log file "The stream or file ".../laravel.log" could not be opened: failed to open stream: Permission denied" [duplicate] 【发布时间】:2017-11-23 21:33:14 【问题描述】:2017 年 6 月 20 日星期二 13:17:41.195156] [:error] [pid 14454] [client 203.131.216.144:60475]
php 致命错误:未捕获的异常 'UnexpectedValueException' 带有消息“无法打开流或文件“/var/www/html/app/storage/logs/laravel.log”:无法打开流:权限被拒绝'在
/var/www/html/app/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107\n堆栈跟踪:\n#0
/var/www/html/app/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(37): Monolog\Handler\StreamHandler->write(Array)\n#1
/var/www/html/app/vendor/monolog/monolog/src/Monolog/Logger.php(336): Monolog\Handler\AbstractProcessingHandler->handle(Array)\n#2
/var/www/html/app/vendor/monolog/monolog/src/Monolog/Logger.php(615): Monolog\Logger->addRecord(400, Object(Symfony\Component\Debug\Exception\FatalErrorException) , 数组)\n#3
/var/www/html/app/vendor/laravel/framework/src/Illuminate/Log/Writer.php(202): Monolog\Logger->error(Object(Symfony\Component\Debug\Exception\FatalErrorException) , 数组)\n#4
/var/www/html/app/vendor/laravel/framework/src/Illuminate/Log/Writer.php(113): Illuminate\Log\Writer->writeLog('er in
/var/www/html/app/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php 第107行,referer:http://203.131.209.179/app/login
【问题讨论】:
您是否授予存储日志的权限。 【参考方案1】:目录权限
安装 Laravel 后,你可能需要配置一些权限。
storage
和bootstrap/cache
目录中的目录应该可以由您的 Web 服务器写入,否则 Laravel 将无法运行。
https://laravel.com/docs/5.4/installation#installing-laravel
因此,例如,在 Linux 中,您可以通过执行 chmod
命令来做到这一点:
chmod -R 755 storage bootstrap/cache
【讨论】:
这不是一个完整的答案。我设置了权限,但仍然在 laravel.log 上获得权限被拒绝。 @JayBienvenu 而不是投反对票,您可以尝试在系统中查找问题并添加您自己的答案。这个解决方案多年来一直对我非常有效(Linux、Mac OS)。 这就是我今天下午大部分时间都在做的事情。感谢您的帮助。 分辨率设置为 777 而不是 755。 嘿,我对 Symfony 4.4 (Windows 10) 有同样的问题;有什么解决办法吗?【参考方案2】:在您的项目目录中运行以下命令:
chmod -R 777 storage bootstrap/cache
【讨论】:
这是一种危险的解决方法,因为您建议授予系统上所有用户的所有权限,在这种情况下,它总是以正确的方式深入挖掘日志和代码试图了解为什么会出现Permission denied
错误。
不要在任何网络服务器上设置权限 777。【参考方案3】:
快速修复:删除bootstrap/cache/config.php
文件。
【讨论】:
【参考方案4】:使用此命令为涉及logs/laravel.logs
的存储文件夹授予正确的权限
sudo chmod -R 775 storage
如果您使用的是 Windows,则 775 表示:
所有者组其他
rwx rwx r_x
【讨论】:
以上是关于我收到错误日志文件的消息“无法打开流或文件“.../laravel.log”:无法打开流:权限被拒绝” [重复]的主要内容,如果未能解决你的问题,请参考以下文章
“无法打开流或文件“laravel.log”:无法打开流:权限被拒绝”
无法打开流或文件“/app/storage/logs/laravel.log”:无法打开流:权限被拒绝
xampp ubuntu laravel 无法打开流或文件“/storage/logs/laravel log”:无法打开流:权限被拒绝
异常处理程序出错:无法打开流或文件“/var/www/app/storage/logs/laravel.log”:无法打开流:
Laravel 7 XAMPP Mac OS:无法打开流或文件“../storage/logs/laravel.log”。没有权限