【发布时间】:2011-07-07 14:59:02
【问题描述】:
在最近的一组更新之前,我们已经在一个项目上工作了几个月,没有任何问题。该服务器正在运行 Amazon Linux AMI 版本 2010.11.1,带有 Apache 2.2.16 和 PHP 5.3.3。该项目分为几个独立的开发人员分支,作为虚拟主机运行,每个分支都有一个完全独立的所有代码副本,包括 Zend Framework 1.11.3。该项目还包括 Doctrine 2.0.1,但我认为这不是问题所在。我过去曾尝试过 APC,但现在我什至没有安装它。当多个用户跨不同分支访问服务器时,该问题似乎发生得最多。我怀疑这个问题可能与 Zend Framework 引导过程中所需的某些核心类的不同版本有关,但我无法弄清楚根本原因是什么。我们尝试从我们的 git repo 强制所有分支处于相同版本,然后重新启动 Apache。这暂时解决了这个问题,但它很快就会恢复。这一切都始于一周前,当时我只是为 Linux、PHP 和 Zend Framework 安装了一组主流更新。当问题发生时,它甚至会传播到我们的 phpmyadmin 虚拟主机,这甚至与 Zend Framework 没有任何关系。我难住了。以下是我们在 Apache 日志中看到的一组错误:
[Wed Mar 02 20:32:40 2011] [error] [client 127.0.0.1] PHP Warning: array_keys() expects parameter 1 to be array, null given in /var/www/dev/library/Zend/Loader/Autoloader.php on line 251, referer: https://foo.bar/admin/asset_manage/search
[Wed Mar 02 20:32:40 2011] [error] [client 127.0.0.1] PHP Warning: Invalid argument supplied for foreach() in /var/www/dev/library/Zend/Loader/Autoloader.php on line 345, referer: https://foo.bar/admin/asset_manage/search
[Wed Mar 02 20:32:40 2011] [error] [client 127.0.0.1] PHP Warning: array_key_exists() expects parameter 2 to be array, null given in /var/www/dev/library/Zend/Loader/Autoloader.php on line 194, referer: https://foo.bar/admin/asset_manage/search
[Wed Mar 02 20:32:40 2011] [error] [client 127.0.0.1] PHP Fatal error: Class 'Zend_Config_Ini' not found in /var/www/dev/library/Zend/Application.php on line 383, referer: https://foo.bar/admin/asset_manage/search
【问题讨论】:
标签: php apache zend-framework amazon-ec2 doctrine-orm