我正在尝试在我的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,但仍然收到了相同的错误。
感谢。
答案 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 / *