2016-11-07 67 views
0

我正在將Symfony部署到Web服務器,並且一旦部署,我想清除緩存。我現在使用的是一個爲0的umask,以解決任何潛在的權限問題(我在deploument用戶下執行清除並在apache用戶下運行該站點)。Symfony無法創建日誌目錄

我使用/var/symfony/cache/projectname/branchname/environment/var/symfony/log/projectname/branchname/environment作爲dirs來保存緩存和日誌。這些配置在AppKernel.php文件中。

當我部署(使用的PHP斌/控制檯高速緩存:明確--env =督促--no調試'),我得到一個消息,說:

[RuntimeException的] 無法創建日誌目錄()

我已經做了觸摸創建在/ var/symfony中/日誌/ DIR文件,它工作得很好,所以任何想法,爲什麼緩存清除命令失敗的原因?

我們正在使用從/var/symfony/ DIR高達設置權限爲drwxrws--t黏着位,這樣,當我們做緩存明確作爲部署的用戶,它可以設置用戶爲Apache和組作爲WWW組中與他們兩人WWW 。

+1

運行腳本的用戶沒有創建這些目錄的權限,您可以事先創建,或者授予用戶在父目錄中創建文件的權限。使用ACL觸摸父母的用戶/組。如果服務器是Linux,請查看setfacl和getfacl命令。 – solarc

+0

不,這不是問題,我已經爲未來發布了答案。 – MicWit

回答

1

看來Symfony不會創建存儲日誌的目錄結構(儘管它似乎是用於緩存)。這意味着日誌目錄(在這種情況下,/var/symfony/log/projectname/branchname/environment/需要在清除緩存之前存在)

在我的情況下,爲了解決這個問題,我將在我的部署(shell)腳本中運行檢查以確保該目錄存在並創建如果它不是,

注意:如果您瀏覽到站點(並且權限是正確的),它將創建日誌目錄。但是,如果您使用console clear cache命令,它將不會創建路徑並將