【问题标题】:How to fix this symfony permission error?如何修复这个 symfony 权限错误?
【发布时间】:2020-02-05 23:31:23
【问题描述】:

在我的实时网站上,我在加载浏览器时遇到了这个问题:

FileProfilerStorage.php 第 158 行中的 ContextErrorException:警告: file_put_contents(/var/www/html/var/cache/dev/profiler/c9/73/fb73c9): 无法打开流:权限被拒绝

如何在现场解决这个问题?

【问题讨论】:

标签: php symfony symfony-2.3


【解决方案1】:

运行

sudo chmod -R 777 var/cache

在您的项目目录中,稍后使用清除缓存

app/console cache:clear

再次重置权限

sudo chmod -R 777 var/cache

每次清除缓存时都会重置文件夹缓存的权限,以避免在清除过程中创建的文件出现此类问题。

注意:app/console 可能是 bin/console

【讨论】:

  • 嗯,不,这似乎根本不对。您应该能够在 CLI 中清除缓存,并且仍然拥有一个正常工作的应用程序,而无需手动更新权限。这确实是一种解决方法,但不是解决方案。
  • 对于 Symfony 4 使用它来清除缓存:php bin/console cache:clear
【解决方案2】:

您应该尝试 AWS 推荐的这组权限:

首先你需要通过终端进入你的项目目录并运行命令:

ls -las

你会在哪里看到类似的东西:

注意上面写着的列:webapp,它告诉你哪个用户/组可以访问你的项目,所以你现在需要做的是转到你的 apache 配置文件(通常你可以在 linux 上找到它:/etc/httpd/conf/httpd.conf)一旦使用 vi、vim 或您喜欢的文本编辑器打开文件,您应该查找 User & Group 并确保用户/组与上图中的用户/组相同,并确保用户属于您在 httpd.conf 上配置或设置的组,然后您应该运行以下命令为用户应用正确的权限集& 分组:

sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} \;
find /var/www -type f -exec sudo chmod 0664 {} \;

现在应该可以正常工作了。

请注意,/var/www 是您可以托管项目的示例,但这取决于您在文件 httpd.conf 中的配置

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2016-06-27
    • 2013-02-24
    • 2021-03-11
    • 1970-01-01
    • 2018-08-17
    • 2011-06-02
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多