2011-11-22 71 views
2

我已经在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); 

    } 
} 

任何指针,将不胜感激。

+0

我也会启用DB分析 - 可能是一些很长的查询 – heximal

+0

好的建议。我实际上删除了_initDbAdapter例程,但它没有帮助。我使用ldap登录,我也检查并重新启动了该服务。 – Ken

+4

你为什么猜测?挂钩一个调试器(xdebug),你就会知道它究竟挂在哪里。 –

回答

0

这不是php错误。是Apache的一个,可能与Apache升级有关。尝试在Apache中禁用与代理相关的模块。看到这个discussion

a2dismod proxy proxy_connect proxy_ftp proxy_http proxy_ajp proxy_balancer proxy_html proxy 
0

xdebug是我需要弄清楚发生了什么事情。

+0

你是如何解决这个问题的?还有什么问题?谢谢! –

1

我们在新服务器部署方面遇到了非常类似的问题,并且关闭了IPV6来解决它。