无法打开流或文件“/app/storage/logs/laravel.log”:无法打开流:权限被拒绝

Posted

技术标签:

【中文标题】无法打开流或文件“/app/storage/logs/laravel.log”:无法打开流:权限被拒绝【英文标题】:The stream or file "/app/storage/logs/laravel.log" could not be opened: failed to open stream:Permission denied 【发布时间】:2020-06-16 22:58:13 【问题描述】:

虽然我在本地工作,但一切正常。但是当我在 Google Cloud 上部署时出现此错误

我试图从我的终端运行它。我正在使用window PC和Vscode

chmod -R 775 存储

chmod -R 775 引导/缓存

当我运行它时,它会返回

chmod 不是内部或外部命令、可运行程序或批处理文件。

这个方法我也试过

"post-install-cmd": [
            "chmod -R 775 storage",
            "chmod -R 775 bootstrap/cache",
            "php artisan optimize:clear"
]

我不知道如何解决这个问题。我需要帮助

【问题讨论】:

授予存储文件夹777权限 如何授予此权限? 【参考方案1】:

Google Cloud 是一个只写文件系统。对于应用程序需要写入的目录,您需要进行一些修改。

请参阅https://cloud.google.com/community/tutorials/run-laravel-on-appengine-standard 并记下部署部分下的第 1 步和第 3 步,这会将 APP_STORAGE 路径设置为 /tmp 以使其可写。

【讨论】:

【参考方案2】:

只需运行第一个命令

php artisan config:cache

php artisan clear:cache

php artisan route:clear

php artisan view:clear

【讨论】:

这无法解决问题。它只会暂时修复它,但错误仍然存​​在。使用 php artisan optimize:clear 也一样 命令 2 应该是 php artisan cache:clear【参考方案3】:

这通常是因为您的项目文件夹所有者与您的网络服务器的默认所有者不同

我不知道您使用的是哪个网络服务器,但常见的网络服务器是 apachenginx

对于 apache 和 nginx,它通常是 www-data,所以如果您使用的是 apache 或 nginxsudo chown -R www-data:www-data /path/to/your/project/folder

否则你应该弄清楚你的网络服务器默认所有权是什么。

编辑:

请注意,授予777 权限是一种不好的做法,它会导致安全问题。 laravel 的文件和文件夹的默认权限没有问题。

【讨论】:

以上是关于无法打开流或文件“/app/storage/logs/laravel.log”:无法打开流:权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

无法打开流或文件:无法打开流:权限被拒绝

我收到错误日志文件的消息“无法打开流或文件“.../laravel.log”:无法打开流:权限被拒绝” [重复]

无法打开流或文件“/app/storage/logs/laravel.log”:无法打开流:权限被拒绝

xampp ubuntu laravel 无法打开流或文件“/storage/logs/laravel log”:无法打开流:权限被拒绝

laravel - 无法以附加模式打开流或文件“/storage/logs/laravel.log”:无法打开流:权限被拒绝

Laravel 无法以附加模式打开流或文件“storage/laravel.log”:无法打开流:RHEL8 中的权限被拒绝