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

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

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

我试图从我的终端运行它。我正在使用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权限
  • 如何授予此权限?

标签: laravel google-cloud-platform


【解决方案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 或 nginx
    sudo chown -R www-data:www-data /path/to/your/project/folder

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

    编辑:

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

    【讨论】:

      猜你喜欢
      • 2018-05-06
      • 2018-10-03
      • 2018-07-08
      • 2021-10-03
      • 2019-02-10
      • 2021-10-03
      • 2019-08-09
      • 2021-06-26
      • 2019-09-10
      相关资源
      最近更新 更多