我正在使用 AWS Elastic Beanstalk for PHP,它使用 Apache Web 服务器管理 1 个 EC2 linux 服务器。
通过管理控制台部署不同版本(包含我所有 php 脚本的 zip 文件)时,我有时会遇到奇怪的情况。
在某些情况下,即使我正在部署一个与以前完全相同的脚本的版本,其中一些突然无法正常工作。当再次部署另一个版本时(仍然是相同的脚本,相同的内容),突然一切都正常工作了。
有问题的服务示例:
<?php
// dynamically loads needed classes
function __autoload($class_name) {
include $class_name . '.php';
}
$response = new Response();
$response->data = array('platform_version' => Configuration::PLATFORM_VERSION);
die(json_encode($response));
?>
通常,此脚本返回一个 json 对象。在没有更改任何内容并部署版本之后,此脚本不会返回任何内容。有没有办法找出是否发生了错误?
顺便说一句,我可以在 Apache 的 application_access_log 中看到对该服务的调用,返回状态为 200。
编辑: 更改网络服务器上的错误级别后,我开始在 application_error_log 中看到有趣的信息:
*[2012 年 11 月 5 日星期一 17:19:44] [错误] [客户端 10.210.159.209] PHP 致命错误:require_once() [function.require-once]:无法在 /var/www/html/InstallerLog 中重新声明类响应。第 12 行的 php [2012 年 11 月 5 日星期一 17:19:44] [错误] [客户端 10.210.159.209] PHP 堆栈跟踪:[2012 年 11 月 5 日星期一 17:19:44] [错误] [客户端 10.210.159.209] PHP 1 . {main}() /var/www/html/InstallerLog.php:0*
为什么我会收到此错误?我在用 :
require_once 'Response.php';
在我的脚本中,据我所知,这种错误不应该发生......