为Symfony2设置权限时出错

时间:2015-01-19 10:56:48

标签: php symfony vagrant debian

我正在尝试在我的Vagrant虚拟机上设置Symfony2。

导航到BASE_RULE/web/app_dev.php时,这是我收到的权限错误:

RuntimeException: Failed to write cache file "/var/www/app/cache/dev/classes.php".

阅读各种StackOverflow线程并尝试许多不同的建议解决方案,人们建议我使用此Symfony2权限article

我已尝试过号码2,但由于我的系统不支持chmod +a,我转到号码3

HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs
sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs

当我执行setfacl命令时,会出现以下错误:

vagrant@order-online:/var/www/app$ sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX cache logs
setfacl: cache: Operation not supported
setfacl: cache/.DS_Store: Operation not supported
setfacl: cache/dev: Operation not supported
setfacl: cache/dev/annotations: Operation not supported
setfacl: cache/dev/appDevDebugProjectContainer.php: Operation not supported
setfacl: cache/dev/appDevDebugProjectContainer.php.meta: Operation not supported
setfacl: cache/dev/appDevDebugProjectContainer.xml: Operation not supported
setfacl: cache/dev/appDevDebugProjectContainerCompiler.log: Operation not supported

所以这个人没有工作(或者我错过了某些东西......),所以我转到4号,在umask(0000);下设置app/console, web/app.php and web/app_dev.php

在这三个文件位置中应用了这个更改后,我清除了缓存,重新启动了Vagrant和Apache,但仍然收到了相同的错误。

感谢。

2 个答案:

答案 0 :(得分:2)

它也可能是您的群组权限。检查您的网络服务器正在使用的用户。如果您使用的是nginx,通常可以在/etc/nginx/pool.d/www.conf中找到它。它通常类似www-data。所以你要这样做:$ sudo chown -R www-data:www-data /var/www/your-symfony-project

答案 1 :(得分:0)

我认为您只需要更改缓存和日志权限,以便www-data和其他组可以编辑。 所以就这样做吧 chmod -R 777 app / cache / * app / logs / *