2016-08-14 45 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。我希望这可以帮助其他人节省时间解决这个问题。