PHP 脚本执行时间过长后 Apache 没有响应

PHP 脚本执行时间过长后 Apache 没有响应

我们有一个使用 Yii 框架构建的 PHP 应用程序,它连接到 Oracle DB 并在配置了 Zend Core For Oracle 的 Apache 上运行。Apache 还在不同的端口上运行另一个应用程序。

我们有一个页面,它对数据库进行复杂的查询,大约需要 10 分钟才能运行。我们正在减少此查询所需的时间,但目前这是一个问题。

问题是,调用 PHP 页面后,其他页面均无响应,即使不查询数据库的页面也是如此。Apache 运行的其他应用程序不使用 Yii,而是使用不同的数据库,因此同样无响应。

为什么会发生这种情况?即使一个请求仍在运行,Apache 难道不能同时处理多个请求吗?

Apache 给出的错误如下,这应该是与数据库通信失败时给出的通用消息错误:

fcgi: 无法从 D:\Programmi\Zend\Core 读取 Oracle\bin\php-cgi.exe 的响应

我们没有触及太多默认的 Apache 配置,因此 maxClients 和 ServerLimit 应该设置为 256(默认)

知道去哪儿寻找问题吗?

答案1

无论如何,问题是,在调用 php 页面后,所有应用程序都“卡住了”,没有其他页面响应,即使是那些没有查询数据库的页面

您是否在该数据库中使用会话?PHP 以独占方式锁定会话文件,直到脚本完成执行。

相关内容