【问题标题】:Work with app/console in Symfony at Mac OS X在 Mac OS X 的 Symfony 中使用应用程序/控制台
【发布时间】:2012-07-27 00:32:17
【问题描述】:

我已经在 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 

尝试修复它!谢谢!

【问题讨论】:

    标签: macos console symfony1 acl chmod


    【解决方案1】:

    如果您使用的是 Mac,则可以使用 ACL,如 here 所述。 从项目目录:

    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 时就是您自己。 (通常是您的主文件夹的名称)

    【讨论】:

    • 我收到此错误无法将“whoami”转换为 UID/GID
    • @Nealv 我想运行php app/console cache:clear 可以解决这个问题;)
    【解决方案2】:

    显然您的网络服务器(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

    【讨论】:

    • 我认为第一个很简单。怎么办?
    • 从来没有在mac上做过这个,但是你可以在/private/etc/apache2/httpd.conf下的apache配置文件中更改用户。
    猜你喜欢
    • 2012-01-24
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    • 2011-04-11
    • 2016-04-07
    相关资源
    最近更新 更多