2016-02-03 64 views
0

從我對Stack Overflow的全面搜索中,這個問題非常流行,但沒有一個解決方案適用於我的案例。在Ubuntu 14.04上緩存Symfony2的權限

的問題是與新鮮Symfony2的安裝這兩個文件夾應用程序/緩存應用/日誌的權限。

我試過http://symfony.com/doc/current/book/installation.html#configuration-and-setup的教程,它不適合我。

我正在運行Apache 2.4.18,在Ubuntu 14.04

當我檢查通過瀏覽器的的config.php文件,它說,我需要改變權限的文件夾應用程序/緩存應用/日誌當前權限的

狀態:

# l app/logs 
total 632K 
drwxrwxrwx+ 2 www-data www-data 4.0K Feb 3 09:35 ./ 
drwxrwxr-x+ 7 www-data www-data 4.0K Feb 2 16:11 ../ 
-rwxrwxrwx+ 1 www-data www-data 617K Feb 3 09:36 dev.log* 
-rwxrwxrwx+ 1 www-data www-data 0 Feb 2 09:51 .gitkeep* 

# l app/cache 
total 12K 
drwxrwxrwx+ 2 www-data www-data 4.0K Feb 3 10:02 ./ 
drwxrwxr-x+ 7 www-data www-data 4.0K Feb 2 16:11 ../ 
-rwxrwxrwx+ 1 www-data www-data 0 Feb 2 09:51 .gitkeep* 

# getfacl app/cache 
# file: app/cache 
# owner: www-data 
# group: www-data 
user::rwx 
user:root:rwx 
user:www-data:rwx 
group::r-x 
mask::rwx 
other::rwx 
default:user::rwx 
default:user:root:rwx 
default:user:www-data:rwx 
default:group::r-x 
default:mask::rwx 
default:other::r-x 

# getfacl app/logs 
# file: app/logs 
# owner: www-data 
# group: www-data 
user::rwx 
user:root:rwx 
user:www-data:rwx 
group::r-x 
mask::rwx 
other::rwx 
default:user::rwx 
default:user:root:rwx 
default:user:www-data:rwx 
default:group::r-x 
default:mask::rwx 
default:other::r-x 

任何幫助將不勝感激。

+0

什麼是確切的錯誤信息? – BentCoder

+0

致命錯誤:Uncaught異常'RuntimeException'帶消息'無法創建緩存目錄(/var/www/dashboard.dev/app/cache/prod)' – adnedelcu

+0

我想你試圖訪問您的網站'http: // dashboard.dev /'而不是'http:// dashboard.dev/app_dev.php'。試着用'app_dev.php'來看看第一個會發生什麼。 – BentCoder

回答

0

顯然,出於某種原因,不是所有的Apache進程是通過WWW的數據運行,當它試圖訪問他們通過組WWW的數據,並沒有寫權限進行訪問的文件。

通過使用acl軟件包,我只需添加組www-data的權限,並且按預期工作。

setfacl -R -m g:www-data:rwX app/logs app/cache 
setfacl -dR -m g:www-data:rwX app/logs app/cache 
0

確保您已經從項目根目錄運行以下命令。 (路徑從不同的指令,如果你已其次爲symfony1.2 3)

$ HTTPDUSER=`ps axo user,comm | 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 
$ sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache 

如果你正在運行的Symfony 2.8+,那麼你需要改變最後2行(以迎合新的目錄結構):

$ sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX var 
$ sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX var 
+0

正如您可能從問題中看到的一樣,我已經爲apache用戶和正在運行的用戶設置了acl權限(是的,我已經以root身份運行了命令)。 – adnedelcu

+0

你確定你沒有用'var'而不是'app/cache'運行它們嗎? – DevDonkey

+0

我沒有var文件夾。 – adnedelcu