Symfony缓存清除后的所有空白页面

时间:2013-07-18 17:14:54

标签: php caching symfony

我最近对Symfony 2网站进行了更改,然后在网站上执行了清除缓存命令。之后当我回到网站时,页面都是空白的。

这是我跑的命令

app/console cache:clear --env=prod

我听说它可能与缓存文件夹上的文件权限有关,但我不确定。 我在根级别登录以便能够运行上述命令,因为当我在用户级别登录时,我收到了“访问被拒绝”错误。

非常感谢任何帮助/见解。

2 个答案:

答案 0 :(得分:8)

您似乎以root用户身份运行cache:clear而没有--no-warmup标记。

现在symfony在使用root帐户清除缓存之后已对其进行了预热,这将导致新创建的缓存文件归root用户所有。根据您的umask,网络服务器用户现在可能没有r + w访问这些文件。

确保您的webserver-user / cgi-user具有对缓存文件夹的读写权限,或者将所有权归还给该用户。

sudo chown webserver_user:webserver_group -R app/cache
sudo chmod 770 -R app/cache  # or use acl to permit read/write to your webserver-user

答案 1 :(得分:3)

确保为 Web服务器用户和CLI用户正确设置了app/cacheapp/logs的权限。 The Symfony Book有关于如何操作的说明。

如果您的操作系统支持chmod +a(OSX),您可以执行以下操作:

$ rm -rf app/cache/*
$ rm -rf app/logs/*
$ sudo chmod +a "www-data allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
$ sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs

如果您的操作系统支持setfacl(例如Ubuntu)并且启用了ACL支持,您可以执行以下操作:

$ sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX app/cache app/logs
$ sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs

注意:这两个示例均假定Web服务器用户的用户名为www-data