2013-11-21 78 views

回答

44

它看起來像文件/目錄權限問題。該目錄必須可由Web服務器寫入。創建目錄後,您應該

$ chown -R www-data:www-data app/cache

$ chown -R www-data:www-data app/log

調整命令行上的權限。

這隻適用於Linux系統。用戶和組取決於您的分配。在Debian和Ubuntu上,這應該是www-data,在CentOS上它是afaik apache。

另一個解決方案是無法通過

$ rm -rf app/log/* app/cache/*

刪除整個文件夾,但只有他們的內容,但請謹慎使用該命令。

+1

我有Ubuntu服務器16.04上同樣的問題,做這個'喬敦 - R的WWW的數據:WWW的數據無功/日誌VAR /緩存VAR/sessions'解決我的問題,不要忘記清除緩存.. –

4

而且爲CentOS:

chown -R apache:apache app/cache 

如果你來這裏的Symfony幫助你可能有,如果你刪除整個應用程序要做到這一點,以及/ logs文件夾

chown -R apache:apache app/logs 
+0

它的工作Broks :)謝謝,順便說一下你能解釋我什麼是apache:apache?爲什麼不是當前用戶? – ahmedbhs

2

更改CHMOD可能會有所幫助,但如果在開發過程中緩存令您煩惱,您可以將其停用。 導航至您的應用程序配置文件(位於根目錄的../app/config/config.yml中)。滾動到樹枝配置設置(下枝:),並改變緩存值(應指向緩存目錄),以假像這樣:

twig: 
    cache: false 

如果你沒有看到任何緩存的配置項,只需添加上面的線。

+0

當然,您需要重新激活它,一旦應用程序準備好生產 – user254883

0

可能發生的情況是您正嘗試在apache/nginx下創建該文件。默認情況下,Apache或Nginx已經的umask設置爲0022。

來源:http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html

解釋八路的umask模式022和002

正如我剛纔所說,如果默認設置並不會改變,文件用訪問模式666創建,目錄用777創建。在此示例中:

用於普通用戶的默認umask 002。使用此掩碼默認目錄權限爲775,默認文件權限爲664. root用戶的默認umask爲022導致默認目錄權限爲755,默認文件權限爲644. 對於目錄,基本權限爲(rwxrwxrwx) 0777和文件,他們是0666(rw-rw-rw)。

您需要手動將umask設置爲0002,並在創建目錄之前將其重置爲之前的設置。

1

我解決它改變文件夾var/cachevar/logs的用戶和組,然後我清理緩存:

sudo chown -R www-data:www-data var/logs 
sudo chown -R www-data:www-data var/cache 

sudo rm -rf /var/logs/* /var/cache/* 
+0

要小心使用'sudo rm -rf/var/logs/*/var/cache/*'您正在刪除root cache!刪除斜線適合'var' –

3

該解決方案是正確的:https://stackoverflow.com/a/20128013/2400373

但是有必要改變在Symfony3 2個命令: 首先你應該在項目文件夾內:

$ sudo chown -R www-data:www-data var/cache 
$ sudo chown -R www-data:www-data var/logs 

刪除緩存後:

$ sudo rm -rf var/cache/* 
$ sudo rm -rf var/logs/* 

問候