저는 몇 달 동안 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);
}
}
모든 포인터가 인정 될 것입니다.
켄
DB 프로파일 링을 활성화 할 수도 있습니다. 길고 긴 쿼리 일 수도 있습니다. – heximal
좋은 제안입니다. 실제로 _initDbAdapter 루틴을 제거하고 도움이되지 않았습니다. 로그인 용으로 LDAP를 사용하고 그 서비스를 확인하고 다시 시작했습니다. – Ken
당신은 왜 추측하고 있습니까? 디버거 (xdebug)를 연결하면 어디에 매달리는 지 정확히 알 수 있습니다. –