2

我在 Mac Os X 上安装了 Symfony 并执行以下操作:

chmod -R 777 app/cache app/log

尝试这样做:

php app/console cache:clear

并返回错误:

[RuntimeException]                                                                        
Unable to write in the "/Users/anton/Sites/local/Symfony/app/cache/dev" directory 

尝试修复它!谢谢!

4

2 回答 2

8

如果您在 Mac 上,您可以使用此处解释的 ACL 。从项目目录:

sudo chmod +a "_www 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

_www第一行是运行 Web 服务器的名称

您必须whoami在第二行中进行更改,因为您键入php app/console cache:clear. (通常是您的主文件夹的名称)

于 2012-07-28T20:48:25.597 回答
0

显然您的网络服务器(apache?)已经在缓存文件夹中创建了一些文件或目录(因此它们归网络服务器用户所有,可能是 www-data)。在这种情况下,一个 chmod 是不够的,你必须执行一个 chown -R anton app/cache app/log。

为避免不同所有者拥有不同缓存文件的普遍问题,您的控制台用户和为 Web 服务器执行 php 的用户应该相同。有不同的方法可以实现这一点。你可以:

  1. 更改您的 apache 配置,以便 apache 与您的用户 (anton) 一起运行,而不是 www-data
  2. 删除 mod_php 并改用 php5-fpm (并将其配置为使用您的用户)
  3. 使用 fast_cgi
于 2012-07-28T17:14:01.873 回答