我已經在Apache服務器上用ZF 1.11網站進行了幾個月的測試。我今天早上試圖運行一些測試,並且我的網站剛剛掛起(輸入網址,我的瀏覽器只是說等待來自...的回覆)。我很擅長修復代碼中的異常,但我從來沒有發現異常。我肯定已經改變了一些東西,但迄今爲止我花了5個小時來解決這個問題,所以我被卡住了Zend Framework網站掛起
我已將網站從https切換到http(並多次重新啓動httpd)。
我刷新從我的工作在生產服務器上的所有我的PHP代碼(使用不同的證書開發服務器的克隆。)
我改變日誌中的httpd的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)上的修改時間更新,但並非總是如此?
我在我的Bootstrap中初始化記錄器,所以我添加了一個調用來打印一條消息,說明該行已被命中。在瀏覽器中產生異常消息的打字錯誤之後,我現在有時會在日誌中收到消息...但並非總是如此。
我可以通過瀏覽器訪問我的public/images目錄中的文件。此服務器上的另一個站點也可以運行
我更新了php.ini發送調試消息到系統日誌和除了我上面提到的異常。我沒有看到任何錯誤。
我想我需要的是關於如何遵循Zend框架流程的一些指導。我猜測問題出現在Bootstrap中或之後不久。這是我的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),你就會知道它究竟掛在哪裏。 –