Codeigniter 和 Apache 配置问题

Codeigniter and Apache configuration issues

我有一个包含一个 "time expensive" 同步的 Codeigniter 项目。基本上我通过 OCI8 连接到远程服务器(运行 可能是 CentOS,但我只知道这些)到 Oracle 数据库,选择大约 20,000 行,然后更新本地 MySQL 数据库。

同步持续大约 20ihs 分钟(是的,MySQL 可以更优化,但不是),但这不是我目前遇到的问题...

我有专用服务器,配备双 Xeon 和 16 Gig 内存、CentOS x64、Apache 2.2.15、PHP 5.6.21 和 MySQL 版本 5.6.30。

现在,使用 Apache 2 处理程序和默认的 PREFORK MPM,该同步可以按预期工作。

如果我离开 Apache 2 处理程序(mod_php 我认为)并将 MPM 更改为 WORKER 或 EVENT,同步开始并且 PHP 吐出白屏死机,日志文件中没有任何内容。

如果我切换到 fcgi 和 EVENT 或 WORKER MPM,同步开始,大约 2 分钟后它给我 "The gateway did not receive a timely response from the upstream server or application."

请注意,自从我切换回 Apache 2.0 处理程序和 PREFORK 后,服务器之间的连接就没有问题了。

Codeigniter 版本是 2.1.0(是的,我知道升级已经过去很久了,它只是继承的项目,我不完全知道 CORE 文件是否有一些变化,这个人是 "well its working, ain't it".

如有任何线索或 link 有类似问题,我们将不胜感激。

提前致谢

@Kosta,您似乎遇到了某种服务器长请求超时错误。如果不检查日志,我不能确切地说出什么。我还建议您检查 PHP 配置超时,max_execution_time,max_input_time 它也可能会影响此类问题。

执行 httpd -M 并查看 Apache 活动模块列表中是否有 fcgid_module

如果没有,请执行 yum install mod_fcgid 并安装它

然后你可能需要为你的超时问题做一些设置,假设你已经设置了所有其他的东西来使用 CGI/FastCGI 而不是 Apache 2 处理程序,在你的 /etc/httpd/conf/httpd.conf 中像

<IfModule mod_fcgid.c>
        FcgidIdleTimeout 1800
        FcgidProcessLifeTime 1800
        FcgidBusyTimeout 1800
        FcgidIOTimeout 1800
        FcgidConnectTimeout 20
</IfModule>

重新启动 service httpd restartservice php-fpm 重新启动(或您正在使用的任何 PHP 处理程序)并重试