2012-11-05 6 views
2

PHP 용 AWS Elastic Beanstalk을 사용하고 있으며 Apache 웹 서버가있는 EC2 Linux 서버 1 대를 관리합니다.AWS Elastic Beanstalk - 새 버전을 배포 한 후 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 객체를 반환합니다. 아무 것도 변경하지 않고 버전을 배포 한 후에이 스크립트는 아무 것도 반환하지 않습니다. 오류가 발생했는지 확인하는 방법이 있습니까? 웹 서버의 오류 수준을 변경 한 후 i는 흥미로운 정보를보기 시작 : (200)

편집

BTW, 나는 반환 상태 아파치의 application_access_log에서 서비스에 대한 호출을 볼 수 있습니다 application_error_log :

* [월 11월 5일 17시 19분 44초 2012] [오류] [고객 10.210.159.209] PHP 치명적인 오류 : require_once를() [function.require-번] :/var에 클래스 응답을 재 선언 할 수 없습니다 /www/html/InstallerLog.php on line 12 [Mon 11 월 05 일 17:19:44 2012] [ 오류] [클라이언트 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'; 

을 그래서 이런 종류의 오류 내 지식 발생하지 않습니다 ...

+0

또한 모든 종류의 오류를 표시하도록 php.ini 파일을 변경했습니다. (http://stackoverflow.com/questions/5050426/php-errors-not-being-displayed-in-the-browser-ubuntu- 10-10), 여전히 아무것도 (흰색 화면) – nitzan

+1

error_reporting을 사용합니까? 아파치 오류 로그를 확인 했습니까? –

답변

3

확인을. 그래서 결국 그것은 꽤 기초적이었습니다.

내가 사용하고있는 클래스 이름 "Response"가 다른 곳에서 이미 사용 중이기 때문에 오류가 발생했습니다. 내 코드가 아니거나 SDK에있을 수도 있습니다. 덜 일반적인 이름으로 이름을 변경 한 후 오류가 다시 발생하지 않았습니다. 그냥 안전한 놀이를 위해 나는 또한 추가 한 :

if(!class_exists('MyNewResponse')) 

클래스를 작성하기 전에.

관련 문제