【发布时间】:2018-05-07 15:49:12
【问题描述】:
在将应用程序部署到生产环境后,我们遇到了一个非常奇怪的错误。
这似乎是包名称中的拼写错误(Docsrine 与 Doctrine),而且似乎损坏的包并不总是同一个包。错误中提到的文件的正确版本存在于正确的路径(带有 Doctrine 的路径)。
我们发现的案例只存在于学说/mongo 的东西中。 我们在 php 7.0.13 和 7.2.5 中体验到了这一点。 pecl-mongodb 版本 1.2.10 和 1.4.3。
重新启动 fpm 似乎可以解决问题(没有 请注意,我们也在部署后立即重新启动,但没有成功)。
2018/05/07 18:35:15 [错误] 4749#4749: *85488813 FastCGI 已发送 标准错误:“PHP 消息:PHP 警告:未捕获的错误异常:警告: 要求(/var/www/my_app/releases/20180507153309/vendor/composer/../doctrine/mongodb/lib/Docsrine/MongoDB/Iterator.php): 无法打开流:文件中没有这样的文件或目录 /var/www/my_app/releases/20180507153309/vendor/symfony/symfony/src/Symfony/Component/ClassLoader/ApcClassLoader.php:112 在 /var/www/rec/releases/20180507153309/vendor/symfony/symfony/src/Symfony/Component/ClassLoader/ApcClassLoader.php:112
有没有其他人遇到过类似的问题?
【问题讨论】:
-
你在使用 vagrant 和 macosx 之类的操作系统吗?
-
您尝试运行
composer dump-autoloader -o了吗?如果没有,请告诉我们这是否能解决您的问题 -
@DonCallisto:没有。Centos 7.3
-
@ReynierPM:我们禁用了自动加载优化,因为它提供了性能提升(涉及很多类的大型应用程序)。
-
@Alexandru 你可以在没有
-o的情况下运行它,它也应该这样做,你试过了吗?
标签: php symfony doctrine-orm php-mongodb