我有一个在nginx / php-fpm上运行的PHP应用程序。 在我的应用程序中,我依赖于使用composer管理的Sendgrid \ Email。
在我的开发机器上一切正常,编译器依赖项会自动加载。找到所有名称空间和类。
将我的应用程序上传到生产环境时,我有一段依赖于Sendgrid包的PHP代码,突然找不到编写器包(即使它在我的供应商目录中,我上传了所有内容) 1对1。
Nginx错误日志:
2016/08/18 17:40:32 [error] 1022#0: *488 FastCGI sent in stderr: "PHP message: PHP Fatal error: Class 'SendGrid\Email' not found in <snip>/src/Email/Email.php on line 13" while reading response header from upstream, client: <snip>, server: <snip>, request: "POST /api/<snip> HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "<snip>"
现在奇怪的是,当我在我的生产机器上重新启动我的nginx和php-fpm服务时,突然发现了依赖,没有任何问题和我的代码执行。 我的生产机器有时会停止查找nginx依赖项,我必须重新启动这两项服务才能让它再次运行。 (可能只有1,但总是刚刚重新启动)
输出php -v:
user@productionbox:~$ php -v
PHP 5.5.9-1ubuntu4.19 (cli) (built: Jul 28 2016 19:31:33)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies