【发布时间】:2015-12-03 06:43:17
【问题描述】:
我在 Mac 上使用默认的 Apache Symfony 2。
在Permissions issues on Symfony2之后,我尝试了rm -rf app/cache/*和chmod 777 app/cache。
这行得通。但是……
a)
当 Symfony 2 首先写入任何缓存文件时,我的用户随后将无权访问这些文件。所以通过app/console cache:clear 清除缓存会导致...[RuntimeException]
我试图通过运行
Unable to write in the "/Workspace/MyProject/app/cache/dev" directorysudo app/console cache:clear 来弥补。但是后来...
b)
一旦我使用app/console cache:clear 或sudo app/console cache:clear 清除缓存然后重新加载页面,Apache 就无法访问这些文件:
RuntimeException in ClassCollectionLoader.php line 239: Failed to write cache file "/Workspace/yProject/app/cache/dev/classes.php".
我尝试通过 Mac GUI 删除文件并设置 ACL 为我和 _www 授予读写权限。但是结果和上面一样。
当 apache 以 sudo 运行时,似乎只有所有者(使用 chown 测试)可以访问文件。 Apache 在使用端口 80 时必须以 sudo 运行,否则 apachectl start 会抛出 This operation requires root.。我发现使用端口 8080 和重定向 80 的方法很棘手。但我想了解基本问题。
为什么是 apache 或我有访问权限,但不能同时访问?
谢谢, 鲍里斯
【问题讨论】:
-
解决方法:我当然可以通过
sudo rm -rf app/cache/*删除缓存目录中的文件夹,但我真的很想改用app/console cache:clear。