【发布时间】:2017-06-03 18:29:15
【问题描述】:
我过去使用过很多 Symfony 并且没有遇到很多问题。我一直在尝试将它部署在不同的服务器上(Ubuntu 16 w/Apache)并且遇到了很多问题。
我现在收到 500 错误 (https://bereanboard.com/app_dev.php)。我尝试的是去*.com/config.php和*.com/app_dev.php查看问题(我不得不暂时注释掉禁止从非本地主机访问的部分)。我也一直在检查 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 中,我收到各种各样的“找不到类,您是否忘记了“使用”语句?错误。其中一些用于树枝扩展
AppBundle/Twig/AppExtension.php。
以下是一些严重错误:
request.CRITICAL:未捕获的 PHP 异常 InvalidArgumentException: “类“AppBundle\Controller\HomeController”不存在。”在 /home/travis/var/cache/prod/classes.php 第 4872 行 {“异常”:“[对象](InvalidArgumentException(代码:0):类 \"AppBundle\Controller\HomeController\" 不存在。在 /home/travis/var/cache/prod/classes.php:4872)"} []
和
php.CRITICAL:找不到类“AppBundle\Twig\AppExtension” {“异常”:“[对象] (Symfony\Component\Debug\Exception\FatalThrowableError(代码:0): 找不到类“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:“尝试 从命名空间“AppBundle\Twig”加载类“AppExtension”。你是否 忘记另一个命名空间的“使用”语句?”在 /home/travis/var/cache/prod/appProdProjectContainer.php 第 2881 行 {“异常”:“[对象] (Symfony\Component\Debug\Exception\ClassNotFoundException(代码: 0): 试图从命名空间加载类 \"AppExtension\" \"AppBundle\Twig\"。\n你是否忘记了另一个的 \"use\" 语句 命名空间?在 /home/travis/var/cache/prod/appProdProjectContainer.php:2881)"} [] [2017-01-19 06:35:03] request.CRITICAL:处理时抛出异常 一个例外 (Symfony\Component\Cache\Exception\InvalidArgumentException:缓存 目录不可写 (/home/travis/var/cache/prod/pools/CtBqbs+VrF) 在 /home/travis/var/cache/prod/classes.php 第 1194 行) {“异常”:“[对象] (Symfony\Component\Cache\Exception\InvalidArgumentException(代码: 0): 缓存目录不可写 (/home/travis/var/cache/prod/pools/CtBqbs+VrF) 在 /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 }
【问题讨论】:
-
你清理生产缓存了吗?
-
是的,
with php bin/console cache:clear --env=prod --no-debug,也可以删除缓存文件夹。这两种方法以前都对我有用 -
你也重建了你的自动加载文件吗?
php composer.phar dump-autoload -
我只是做了它并没有改变任何东西。同样的错误。
-
您是否在 Twig 中使用了一些 Helpers ?如果是,请尝试检查您的 services.yml stackoverflow.com/questions/36421158/…
标签: php apache symfony ubuntu ubuntu-16.04