2011-11-22 3 views
2

저는 몇 달 동안 Apache 서버에서 ZF 1.11 사이트를 테스트했습니다. 나는 오늘 아침에 몇 가지 테스트를하고 사이트를 방치했습니다 (URL을 입력하면 브라우저가 응답을 기다리는 중 ...). 내 코드에서 예외를 수정하는 데 꽤 능숙하지만 예외가 발생하지 않습니다. 나는 뭔가를 바꿨음에 틀림 없다. 그러나 나는 지금까지 이것에 5 시간을 보냈고 나는 갇혀있다.Zend Framework 사이트가 응답하지 않습니다.

나는 사이트를 https에서 http로 바꾸었다 (그리고 여러 번 httpd를 재시작했다).

은 내가 프로덕션 서버에서 작업 한 내용을 모든 내 PHP 코드 새로 고침 (다른 인증서 표시와 dev에 서버의 복제.)

내가 아파치의 conf 파일에 디버그 로깅을 변경했습니다. 내가 서버를 쳤을 때

나는 로그에 디버그 메시지를 볼 수 있습니다

 
[Tue Nov 22 12:40:25 2011] [debug] proxy_util.c(1818): proxy: grabbed scoreboard slot 0 in child 30181 for worker proxy:reverse 
[Tue Nov 22 12:40:25 2011] [debug] proxy_util.c(1837): proxy: worker proxy:reverse already initialized 
[Tue Nov 22 12:40:25 2011] [debug] proxy_util.c(1934): proxy: initialized single connection worker 0 in child 30181 for (*) 

는 내가 브라우저를 새로 고치 Bootstrap.php 파일 변경 매번에 액세스 시간을 볼 수 있습니다. 은 httpd 로그를보고 요청을 보았지만 요청 만 보았습니다.

때로는 내 컨트롤러 (IndexController.php)에서 수정 된 시간이 업데이트되지만 항상 그렇지는 않습니다 ??

내 부트 스트랩에서 로거를 초기화하므로 줄이 맞았다는 메시지를 인쇄하라는 전화를 추가했습니다. 브라우저에서 예외 메시지를 생성 한 오타가 발생한 후 때때로 로그에 메시지가 표시됩니다. 그러나 항상 그런 것은 아닙니다.

브라우저를 통해 공개/이미지 디렉토리의 파일에 액세스 할 수 있습니다. 이 서버의 다른 사이트도 작동합니다.

php.ini가 syslog에 디버그 메시지를 보내도록 업데이트했습니다. 예외는 예외입니다. 나는 어떤 오류도 보지 않는다.

젠드 프레임 워크를 통한 흐름을 따르는 방법에 대한 지침이 필요하다고 생각합니다. 나는 그 문제가 부트 스트랩에 있거나 곧 그 후로 추측하고있다. 여기에 내 Bootstrap.php가 있습니다. 꽤 간단합니다.

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { 

    // anything here that starts with "_init" will be run at startup 

    protected function _initSession() { 
     $doctypeHelper = new Zend_View_Helper_Doctype(); 
     $doctypeHelper->doctype('XHTML1_TRANSITIONAL'); 

     Zend_Session::start(); 

    } 

    protected function _initLog() { 
     $options = $this->getOptions(); 
     $logpath = $options['logpath']; 

     $logger = new Zend_Log(); 
     $writer = new Zend_Log_Writer_Stream($logpath); 
     $logger->addWriter($writer); 

     Zend_Registry::set("logger", $logger); 

     $logger->log("Bootstrap.php - initLog complete", Zend_Log::INFO); 
    } 

    public function _initDbAdapter() { 
     $resource = $this->getPluginResource('multidb'); 
     $resource->init(); // Don't forget to initialize the resource first 

     $cpDB = $resource->getDb('cp'); 
     $openfireDB = $resource->getDb('openfire'); 

     Zend_Registry::set('cpDB', $cpDB); 
     Zend_Registry::set('openfireDB', $openfireDB); 

    } 
} 

모든 포인터가 인정 될 것입니다.

+0

DB 프로파일 링을 활성화 할 수도 있습니다. 길고 긴 쿼리 일 수도 있습니다. – heximal

+0

좋은 제안입니다. 실제로 _initDbAdapter 루틴을 제거하고 도움이되지 않았습니다. 로그인 용으로 LDAP를 사용하고 그 서비스를 확인하고 다시 시작했습니다. – Ken

+4

당신은 왜 추측하고 있습니까? 디버거 (xdebug)를 연결하면 어디에 매달리는 지 정확히 알 수 있습니다. –

답변

0

이것은 PHP의 오류가 아닙니다. 아파치 하나인가, 아마도 아파치 업그레이드와 관련이있다. 아파치에서 프록시 관련 모듈을 사용하지 않기 위해 노력하라. 이 discussion을 참조하십시오.

a2dismod proxy proxy_connect proxy_ftp proxy_http proxy_ajp proxy_balancer proxy_html proxy 
0

xdebug는 무슨 일이 일어나고 있는지 파악하는 데 필요했습니다.

+0

어떻게 이것을 xdebug 알아 냈습니까? 그리고 그 쟁점은 무엇 이었습니까? 감사! –

1

새로운 서버 배포와 관련하여 매우 비슷한 문제가 있었으며 IPV6을 끄면 해결되었습니다.