[英]Runtime Exception: unable to create cache directory Google App Engine Symfony2
[英]Symfony2 NGINX Unable to create the cache directory
我知道這似乎是一個重復的問題,但是到目前為止,我花了4個小時來尋找這個問題的直接答案。 我已經安裝了全新的CentOS 7並安裝了NGINX( https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-7 )+ PHP 5.6( https://webtatic.com/packages/php56/ )和MariaDB。
按照指南,我能夠使NGINX成功提供PHP文件。
我在Symfony2中有一個要在該服務器中嘗試的項目,我的問題是當我嘗試打開http://server/web/app.php時 。 我收到以下錯誤:
致命錯誤:......中出現未捕獲的異常“ RuntimeException”,並顯示消息“無法創建緩存目錄(/ usr / share / nginx / html / app / cache / prod)” 。
我在文檔( http://symfony.com/doc/current/book/installation.html )中讀到,我應該解決我的權限問題,以便能夠執行以下操作:
$ 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
由於我從頭開始擁有CentOS 7,因此我可以選擇使用它。 但是,我仍然遇到相同的問題,采用這種方法之后,這些是我嘗試過的其他選擇:
因此,在所有這些選項之后,我仍然遇到相同的問題,對於其他有此問題的人,它只是遵循Symfony2准則來完成ACL和粉撲的應用。 但這種情況並非如此。
我想念什么?
附言:我仔細檢查了文件夾的權限..我以root身份進入服務器。
更新1
我從頭開始重新安裝了CentOS 7,並遵循https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-7並結合使用與Symfony的配置文件建議一起,仍然出現“未捕獲的異常'RuntimeException',消息為'無法創建緩存目錄'”錯誤
您可能會遇到SELinux問題,因為CentOS 7隨SELinux默認運行。
您可以通過執行setenforce 0
進行測試以查看是否可以解決問題。 如果可行,則需要將SELinux配置為允許nginx用戶寫入緩存目錄,然后重新啟用SELinux。 SELinux確實提供了一些良好的安全性,因此最好弄清楚如何正確配置它,而不是完全將其關閉。
假設您將應用程序放在/ usr / share / nginx / www目錄下,則需要添加一個本地自定義規則(策略模塊):
semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/www/.+/app/(cache|logs)(/.*)?'
您需要還原該目錄中所有文件的上下文:
restorecon -Rv /usr/share/nginx/www/your-app-dir
更改緩存和日志目錄的組,並為該組添加權限:
chgrp -R apache /usr/share/nginx/www/your-app-dir/app/{cache,logs} chmod -R 775 /usr/share/nginx/www/your-app-dir/app/{cache,logs}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.