Apache Web サーバーで 1 つの EC2 Linux サーバーを管理する AWS Elastic Beanstalk for PHP を使用しています。
管理コンソールを介して別のバージョン (すべての 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 が返されているのを確認できます。
EDIT: Webサーバーのエラーレベルを変更した後、 application_error_log に興味深い情報が表示されるようになりました:
*[Mon Nov 05 17:19:44 2012] [error] [client 10.210.159.209] PHP 致命的なエラー: require_once() [function.require-once]: /var/www/html/InstallerLog でクラス応答を再宣言できません。 php on line 12 [Mon Nov 05 17:19:44 2012] [error] [client 10.210.159.209] PHP Stack trace: [Mon Nov 05 17:19:44 2012] [error] [client 10.210.159.209] PHP 1 . {main}() /var/www/html/InstallerLog.php:0*
なぜこのエラーが発生するのですか? 私は使っている :
require_once 'Response.php';
私のスクリプトでは、この種のエラーは私の知る限り発生しないはずです...