Symfony 2.2.1 远程服务器上出现 fatal error (仅限)-为什么?

标签 symfony cygwin fosuserbundle composer-php

关于 this question 中提到的 Symfony 代码库,安装 FOSUserBundle 后,它可以在本地运行,但在远程服务器上它甚至无法引导,给出 HTTP 500 错误页面。

编辑:灾难似乎发生在 app_dev.php 中的以下行:

$kernel = new AppKernel('dev', true);

在远程服务器上我收到如下错误:

Fatal error: Class 'Symfony\Component\HttpFoundation\Request' not found in [docroot]/web/app.php on line 22

或者-删除文档根目录下的所有内容后,更新(composer updatecomposer update -o,按照 this answer ),然后部署:

Fatal error: Cannot redeclare class 
Symfony\\Component\\HttpFoundation\\Session\\Storage\\NativeSessionStorage in
[docroot]/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php
on line 25

我清除了 Symfony 缓存,删除了 app/cache/devapp/cache/prod/ 目录,但没有运气。

另一件事我没有得到:远程上的app/console cache:clear给出了这个错误:

Fatal error: Cannot redeclare class 
EnhancedProxy_72114c0f8683bcc2a66ceccb136abe5a78f8577e\__CG__\Acme\DemoBundle\Controller\SecuredController
in [docroot]/app/cache/de_/jms_diextra/proxies/Acme-DemoBundle-Controller-SecuredController.php
on line 28

顺便说一句,为什么要创建目录app/cache/de_(除了devprod)?

为了完整起见,您可以找到我的composer.json here .

可能是什么问题?本地和远程平台不同,但错误似乎与代码有关,而不是服务器配置。

本地机器:

  • Windows 7
  • Zend 服务器 CE
  • Apache 2.2
  • PHP 5.3.14(apache 模块)
  • MySQL 5.1
  • APC

远程机器:

  • Ubuntu 12.04
  • Apache 2.2
  • PHP 5.3.10 fpm(fastcgi)
  • MySQL 5.5
  • APC

有什么建议吗?甚至如何调试这个?我开始考虑放弃 Symfony :(

最佳答案

可能的原因是您的开发和生产服务器上有不同版本的供应商。然后运行命令composer update来更新您拥有的所有供应商。有时它会使一切崩溃。因此,有一个命令composer install可以检查您的composer.lock文件并安装那里的版本。

如果您只需要更新一个包,您可以运行 composer update bundle_name。此操作会更新您的供应商文件夹并更新composer.lock文件。

您可以查看symfony-standard存储库,它有 composer.lock 文件。每次更新供应商时,您都必须上传该文件的新版本,以使所有供应商保持相同版本。同样的故事,然后部署您的应用程序。

您可以在official documentation中阅读有关composer.lock文件的更多信息。 .

所以,尝试删除整个vendor/文件夹,然后复制到远程服务器composer.lock文件,输入phpcomposer.phar install

关于Symfony 2.2.1 远程服务器上出现 fatal error (仅限)-为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16792254/

相关文章:

cygwin - 哪个 cygwin 包包含 rm 命令?

linux - 比较多个文本文件中的行数

php - 如果 Symfony2 中的帐户不完整,则首次登录后重定向到配置文件编辑页面

php - Symfony2/Doctrine 中的实体和模型有什么区别

javascript - 交响乐 2 :image paths in javascript file with assetic

javascript - Uncaught ReferenceError : $ is not defined in twig template with jQuery import

php - 如何覆盖 composer.json 中的其他依赖项

javascript - 是否可以通过搜索字段使用 `switch_user`?

windows - 安装 Cygwin 时在 cmd 中无法识别导出

forms - Symfony2 FOSUserBundle – 验证登录时的 "user active"标志