【问题标题】:I got message for error_log file "The stream or file ".../laravel.log" could not be opened: failed to open stream: Permission denied" [duplicate]我收到错误日志文件的消息“无法打开流或文件“.../laravel.log”:无法打开流:权限被拒绝” [重复]
【发布时间】: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

【问题讨论】:

  • 您是否授予存储日志的权限。

标签: laravel


【解决方案1】:

目录权限

安装 Laravel 后,你可能需要配置一些权限。 storagebootstrap/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

    【讨论】:

      猜你喜欢
      • 2019-02-10
      • 2018-05-06
      • 2018-10-03
      • 2020-06-16
      • 2018-07-08
      • 2019-06-30
      • 2021-10-03
      • 2013-01-22
      • 2021-02-09
      相关资源
      最近更新 更多