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 restart
和 service php-fpm
重新启动(或您正在使用的任何 PHP 处理程序)并重试
我有一个包含一个 "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 restart
和 service php-fpm
重新启动(或您正在使用的任何 PHP 处理程序)并重试