2016-08-26 98 views
-6

我有一個與其他項目類似的配置,它運行良好。但是,這個項目得到問題:docker上的Symfony日誌文件權限

Fatal error: Uncaught UnexpectedValueException: The stream or file "/home/docker/test-project/var/logs/prod.log" could not be opened: failed to open stream: Permission denied in /home/docker/test-project/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107 Stack trace: #0 /home/docker/test-project/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(37): Monolog\Handler\StreamHandler->write(Array) #1 /home/docker/test-project/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php(122): Monolog\Handler\AbstractProcessingHandler->handle(Array) #2 /home/docker/test-project/vendor/monolog/monolog/src/Monolog/Logger.php(336): Monolog\Handler\FingersCrossedHandler->handle(Array) #3 /home/docker/test-project/vendor/monolog/monolog/src/Monolog/Logger.php(643): Monolog\Logger->addRecord(500, 'Uncaught PHP Ex...', Array) #4 /home/docker/test-project/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php(89): Monolog\Logger->critical('Uncaught PHP Ex. in /home/docker/test-project/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php on line 107

我想:http://symfony.com/doc/current/setup/file_permissions.html因爲你有一個nginx的標籤,也許你也使用nginx的作爲web服務器我沒有得到一個好的結果

+1

您是否嘗試讀取錯誤訊息? – zerkms

+0

你有一個安裝量?或者在容器中複製數據? – bourvill

回答

0

有日誌文件權限問題。 Docker不支持使用默認文件系統驅動程序setfacl

symfony documentation描述嘗試這種解決方案: 改變的umask以便高速緩存和日誌目錄是組可寫或世界可寫(取決於如果web服務器的用戶和命令行用戶在相同的基團或不)。爲了實現這一目標,把下面一行斌/控制檯,網絡/ app.php和web/app_dev.php文件的開頭:

umask(0000); // This will let the permissions be 0777 
0

的解決方案是運行此命令到項目目錄:

$ 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` 
+0

這個命令只定義了一個環境變量,所以它不能修復任何東西。 – zerkms