最近在写一个thinkphp项目的时候,发现Ajax从后端请求数据时间比较长,大概需要45秒左右,但是一旦请求时间超过40s,页面就会超时404了,一开始以为是ajax请求时间不能太长,后来将Ajax请求改为同步且timeout设置为60000(毫秒),发现还是不行,然后又查一下浏览器的最长请求时间是5分钟,所以也排除了浏览器的问题,接着排除了php和thinkphp的问题,最后发现原来是apache出现的问题,最后的原因是:phpstudy自带的httpd.conf没有以下几行。加上之后正常了。
<IfModule mod_fcgid.c>
FcgidProcessLifeTime 8200
FcgidIOTimeout 8200
FcgidConnectTimeout 4000
</IfModule>
可以在thinkphp里面写一个sleep()函数做个测试。