2012-11-04 26 views
2

我已經在AWS Linux AMI(免費層微型實例)上設置了Symfony2,併成功設置了PHP-FPM和nginx。Amazon Linux上Symfony2中的緩存/日誌權限AMI

我的Symfony應用程序工作..直到我使用命令行清除緩存。當我這樣做時,/app/logsapp/cache/文件夾歸root所有,並且應用程序不能再寫入它。

我可以手動chmod 777/chown nginx:nginx這些文件在每次緩存清除後,但是一定有更好的辦法?

我已經嘗試在清除緩存之前使用bash函數su nginx;,但這不起作用。

之前緩存文件夾之前緩存明確:

drwxrwxrwx 11 nginx nginx 4096 Nov 4 13:23 dev 
drwxrwxrwx 10 nginx nginx 4096 Nov 4 20:39 prod 

而經過:

drwxrwxrwx 11 nginx nginx 4096 Nov 4 13:23 dev 
drwxr-xr-x 10 root root 4096 Nov 4 20:39 prod 

這是不是我可以在應用程序修復,或者是有設置的權限,使他們的方式不要變成root ed?

編輯:我還要提到我想:

sudo chmod +a "nginx allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs 

但是服務器無法識別+a

也試過用:

setfacl -R -m u:nginx:rwx app/cache app/logs 

這並不錯誤,但不能解決問題。

回答

0

編輯: 不能接受這個答案了,但是這個工作對我來說: 所以我成功啓用了ACL在我這裏安裝着導向:http://blog.dsyph3r.com/2011/09/symfony2-using-setfacl-for-cache-and.html

對於新手來說,我注意到驅動器的標籤(有點奇怪)"Label=/"fstab

這項工作完成我用

setfacl -R -m u:nginx:rwx app/cache app/logs 
setfacl -dR -m u:nginx:rwx app/cache app/logs 

現在我可以將它似乎很清楚緩存。

原件(僅當您不能或不啓用ACL使用): 我跟着這讓我設置umask(0000);在許多地方,即app/app*.php S和app/console腳本幫助頁面。這似乎有效,但我不確定其中的含義。

對非umask解決方案留出問題。看着在我的山上激活ACL,但新的,似乎......奇怪的命名。

0

須藤-u nginx的PHP應用程序/控制檯高速緩存:明確

+0

這是否與在頂部使用'su nginx;'運行bash函數不同?無論如何,我會盡力嘗試更改文件以適應環境。 –

+0

請記住,對於產品環境,您應該添加--env = prod,可能--no-debug –

+0

對不起,這似乎不起作用。它甚至沒有創建緩存文件。 (我不能'su nginx',它說「用戶不可用」) –