Gateway
Timeout错误,原来PHP-Fcgi下的设置执行时间与isapi的不同
一般情况下设置PHP脚本执行超时的时间
第一段:在php.ini里面设置
max_execution_time
=
第二段:通过PHP的ini_set
函数设置
ini_set("max_execution_time",
第三段:通过set_time_limit
PHP-Fcgi下PHP的执行时间设置方法
Timeout错误
复制代码
代码如下:
再查nginx的相关配置,无果.
写了一个php的测试页再测
echo
'aaa';
set_time_limit(0);
'aa';
依然超时,可以确定set_time_limit这个函数没生效.
再查php-fcgi的配置php-fpm.conf,下边这个设置疑似有问题
VALUE
查官方文档:
request_terminate_timeout
-
The
timeout
(in
seconds)
for
serving
a
single
request
after
which
the
worker
process
will
be
terminated.
Should
used
when
'max_execution_time'
ini
option
does
not
stop
script
execution
some
reason.
Default:
Note:
'0s'
means
'off'
最终把request_terminate_timeout关闭,程序可以正常执行了,问题解决
name="request_terminate_timeout"0s/VALUE
补充:如果前端的nginx服务器使用了upstream负载均衡,那个负载均衡配置中以下几个参数也需要相应修改
proxy_connect_timeout
proxy_send_timeout
proxy_read_timeout
参数含义如下:
-f fcgiapp 指定调用FastCGI的进程的执行程序位置,根据系统上所装的PHP的情况具体设置.
-a addr 绑定到地址addr.
-p port 绑定到端口port.
-s path 绑定到unix socket的路径path.
-P path 指定产生的进程的PID文件路径.
-u和-g FastCGI使用什么身份(-u 用户 -g 用户组)运行,CentOS下可以使用apache用户,其他的根据情况配置,如nobody、www-data等.
就个人的使用体验,如果你迷惑于PHP安装版本的选择,可以直接安装PHP整合安装包,比如:XAMPP/ WampServer.
以下是相关资料解释:
PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中.必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用.
您好,很高兴为您解答.
CGI(通用网关接口)
CGI全称是"公共网关接口"(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行"交谈"的一种工具,其程序须运行在网络服务器上. CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量.如php,perl,tcl等.
FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute 模式).它还支持分布式的运算, 即 FastCGI 程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求.
FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并所以呢获得较高的性能.众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail- Over特性等等.
PHP-CGI是PHP自带的FastCGI管理器.
PHP-FPM是一个PHPFastCGI管理器,是只用于PHP的.
spawn-fcgi是一个通用的FastCGI管理服务器
希望我的回答只要能对粉丝们有用,就是我们最大的鼓励和动力,望采纳!
以上就是土嘎嘎小编为大家整理的fcgi与php的简单介绍fcgi与php的简单介绍相关咨询咨询主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!