Codeigniter和Apache配置问题

时间:2016-05-20 11:27:49

标签: php mysql apache codeigniter server-configuration

我有一个Codeigniter项目,包括一个时间昂贵的#34;同步。基本上我通过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 Handler和默认的PREFORK MPM,该同步按预期工作。

如果我离开Apache 2 Handler(mod_php我假设)并将MPM更改为WORKER或EVENT,那么同步就会启动,并且PHP会在日志文件中没有任何内容的情况下显示死机的白屏。

如果我切换到fcgi和EVENT或WORKER MPM,同步开始,大约2分钟后它就会给我"网关没有收到来自上游服务器或应用程序的及时响应。"

请注意,自从我切换回Apache 2.0 Handler和PREFORK之后,它与服务器之间的连接没有问题。它可以按预期工作。

Codeigniter版本是2.1.0(是的我知道它很久以来升级,它只是继承的项目,我不完全清楚CORE文件是否有一些变化,而且这个人是#34;好吧它的工作,不是"。

任何有类似问题的线索或链接都非常感激。

提前致谢

2 个答案:

答案 0 :(得分:0)

@Kosta,看起来你有某种服务器长请求超时错误。如果不检查日志,我无法确切地说出什么。我还建议你检查PHP配置超时,max_execution_time,max_input_time它也可能会影响这些问题。

答案 1 :(得分:0)

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

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

然后你可能需要为你的超时问题做一些设置,假设你已经设置了其他所有内容来使用CGI / FastCGI而不是Apache 2 Handler,在/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处理程序)并重新尝试