在将应用程序部署到生产环境后,我们遇到了一个非常奇怪的错误。
这似乎是包名称(Docsrine vs 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
有没有其他人遇到过类似的问题?