我过去经常使用Symfony,并且没有多少问题。我一直在尝试将它部署在不同的服务器上(Ubuntu 16 w / Apache)并且遇到很多问题。
我现在收到500错误(https://bereanboard.com/app_dev.php)。我试过的是转到*.com/config.php
和*.com/app_dev.php
查看问题(我必须暂时删除禁止从非localhost访问的部分)。我也一直在检查Apache error.log
和Symfony' var/logs/prod.log
。
请记住,它在本地MAMP和我之前的CentOS上运行良好。
首先,我第一次遇到var / cache和var / logs的权限问题。使用chmod -R 777 var/cache
等命令很容易修复。但为什么这个问题只出现在这台新服务器上呢?无论如何,新服务器上的config.php现在告诉我"所有检查通过"。
第二,在var / logs / prod.log中我得到了各种各样的“无法找到课程”,你是否忘记了"使用"声明&#39?;错误。其中一些是针对树枝延伸AppBundle/Twig/AppExtension.php
。
以下是一些关键的错误:
request.CRITICAL:未捕获的PHP异常InvalidArgumentException: " Class" AppBundle \ Controller \ HomeController"不存在。"在 /home/travis/var/cache/prod/classes.php第4872行 {" exception":" [object](InvalidArgumentException(code:0):Class \"的appbundle \控制器\的HomeController \"不存在。在 /home/travis/var/cache/prod/classes.php:4872)"} []
和
php.CRITICAL:Class' AppBundle \ Twig \ AppExtension'未找到 {"例外":" [对象] (Symfony \ Component \ Debug \ Exception \ FatalThrowableError(代码:0): Class' AppBundle \ Twig \ AppExtension'找不到 /home/travis/var/cache/prod/appProdProjectContainer.php:2881)"} [] [2017-01-19 06:35:03] request.CRITICAL:未捕获PHP异常 Symfony \ Component \ Debug \ Exception \ ClassNotFoundException:" Attempted 加载类" AppExtension"来自命名空间" AppBundle \ Twig"。你是否 忘记"使用"另一个命名空间的语句?"在 /home/travis/var/cache/prod/appProdProjectContainer.php第2881行 {"例外":" [对象] (Symfony的\元器件\调试\异常\ ClassNotFoundException的(代码: 0):尝试加载类\" AppExtension \"从命名空间 \" AppBundle \ Twig \"。\ n你忘记了\"使用\"声明另一个 命名空间?在 /home/travis/var/cache/prod/appProdProjectContainer.php:2881)"} [] [2017-01-19 06:35:03] request.CRITICAL:处理时抛出异常 一个例外 (Symfony \ Component \ Cache \ Exception \ InvalidArgumentException:Cache 目录不可写 (/ home / travis / var / cache / prod / pools / CtBqbs + VrF)at /home/travis/var/cache/prod/classes.php第1194行) {"例外":" [对象] (Symfony的\元器件\缓存\异常\ InvalidArgumentException(代码: 0):缓存目录不可写 (/ home / travis / var / cache / prod / pools / CtBqbs + VrF)at /home/travis/var/cache/prod/classes.php:1194)"} []
此外,值得一提的是,使用命令symfony new project
创建的新项目可以正常工作。
*编辑 我咨询了these Symfony docs。我已经尝试过各种清除缓存的方法。
*编辑 这是services.yml
services:
app.twig_extension:
class: AppBundle\Twig\AppExtension
arguments: ["@doctrine.orm.entity_manager", "@security.token_storage"]
public: false
tags:
- { name: twig.extension }
答案 0 :(得分:0)
您的网络服务器似乎存在访问问题。
检查用户通过
在Centos上启动apache# egrep -i '^user|^group' /etc/httpd/conf/httpd.conf
它应该返回apache
然后为/home/travis
目录提供良好的特权:
选项1:您可以查看Stack Echange / AskUbuntu并使用apache
用户进行调整,而不是www-data
选项2:使用第一个选项,如果您已创建文件夹,则Apache无法写入该文件夹。这可以修复"通过设置umask 0007并将自己(travis)添加到Apache组,以便新创建的文件和文件夹可由组写入。
如果您拥有足够的权限来更改掩码,则选项2会更好。
答案 1 :(得分:0)
尝试清除缓存:
php bin/console cache:clear --env=prod
并设置文件权限:
chmod -R 777 var/cache
chmod -R 777 var/logs
chmod -R 777 var/sessions
希望这对你有所帮助。
答案 2 :(得分:-1)
我曾经遇到过同样的问题。您必须完成删除供应商文件夹
rm -R vendor /
再次新安装所有依赖项。
php composer.phar install
这将解决问题。