2016-08-14 64 views
0

我想在AWS實例上建立一個新的基於Symfony的網站。到目前爲止,我已經用Capifony推動生產,而且這部分工作正常。生產Symfony應用程序保持錯誤的權限或404

當我嘗試訪問的網站,我收到以下錯誤

致命錯誤:未捕獲InvalidArgumentException:目錄「/無功/網絡/ MYAPP /發行/ 20160813225423 /應用/緩存/生產/註釋」是不可寫。在/ var/www/myapp/release/20160813225423/vendor/doctrine/cache/lib/doctrine/common/cache//cache/lib/Doctrine/Common/Cache/FilesystemCache.php(37):Doctrine \ Common \ Cache \ FileCache - > __ construct('/ var/www/myapp/re ...','.doctrinecache .... ',2)#1 /var/www/myapp/releases/20160813225423/app/cache/prod/appProdProjectContainer.php(1109):Doctrine \ Common \ Cache \ FilesystemCache - > __ construct('/ var/www/myapp/re ...')#2 /var/www/myapp/releases/20160813225423/app/bootstrap.php.cache(2222):appProdProjectContainer-> getAnnotationReaderService()#3/var/www/myapp/releases/20160813225423/app /緩存/ prod/appProdProjectContainer.php(15229):Symfony \ Component \ DependencyInjection \ Container-> get('annotation_read ...')#4/var/www/myapp/releases/20160813225423/app/cache/prod/appProdProjectContainer。 php(15220):appProdProjectContainer- in/var/www/myapp/releases/20160813225423/vendor/doctrine/cache/lib/Doctrine/Common/Cache/F ileCache.php在線92

我再修復了該目錄的權限爲777(發生這種情況的一對夫婦中的緩存目錄...不知道如果我這樣做是正確的......

的因爲該文件夾不被共享,所以緩存每次都會重新生成。

修復這些錯誤之後,我得到一個新的錯誤

「哎呀!一個錯誤發生

服務器返回‘404未找到’。

東西壞了,請讓我們知道了什麼您在發生此錯誤時正在處理,我們會盡快予以解決,並對由此造成的不便深表歉意。「

所以現在服務器狀態有一個404錯誤。我可以假設我的nginx配置正常,並且php70w-fpm工作正常。是的,我正在使用PHP7。

我會喜歡一些關於我在做什麼錯誤的建議,以及對解決方案的指導或方向。我不希望這個解決方案在銀盤上交給我。

感謝大家提前給予的幫助。

+0

已清除緩存文件夾? – develth

+0

你也使用你的env /測試階段nginx嗎? – develth

+0

嗨@develth,謝謝你的迴應。緩存在每次Capifony推送時清除。我正在檢查nginx,以確保並提供建議。 –

回答

0

因此,在調查後發現問題。

Fatal error: Uncaught InvalidArgumentException:最初的問題是由於將文件夾權限更改爲777確實導致了該問題。

發生的下一個問題The server returned a "404 Not Found"我發現是由於數據庫中缺少一段數據造成的。爲了在生產環境中找到這一點,我編輯了$kernel = new AppKernel('prod', false);app.php以包含true not false,從而迫使開發錯誤報告出現而不是404錯誤。

最後nginx配置是完美的。

0

我在CentOS上遇到了與Symfony 4的Fatal error: Uncaught InvalidArgumentException相同的問題。這個問題的簡單解決方案是禁用Selinux。我希望這可以幫助其他人節省時間解決這個問題。