2012-11-26 17 views
0

说,我有PHP在Apache上运行。当有人发出客户请求(无关紧要)时,什么定义了客户端等待脚本运行的时间量? 这个PHP的选项是Apache还是客户自己定义的? 另外,如果通过curl调用脚本,该怎么办?什么定义了PHP中的超时期限?

+1

http://php.net/manual/en/function.set-time-limit.php – honyovk

+0

只要您了解其中的含义,允许客户端这样做就足以让黑客享受许多湿梦想。 – thatidiotguy

回答

1

见PHP set_time_limit()

默认为60秒的脚本允许运行的数量。如果达到了,该脚本返回致命错误。默认限制为30秒,如果存在,则在php.ini中定义的值为max_execution_time

请注意:

这个函数时,PHP在安全模式下运行没有影响。除了关闭安全模式或更改php.ini中的时间限制外,没有任何解决方法。

您可能也有兴趣max_input_time设置(通过php.ini中设定的)

这台以秒为一个脚本所能够解析输入数据,如POST和GET的最长时间。它是从接收服务器上的所有数据开始执行脚本开始测量的。

0

它定义在php.ini,参数被称为max_execution_time

您可以直接使用中的set_time_limit,ini_set或更改它。

不过,其实你问的时候,该客户端将等待大约

量,脚本运行

恕我直言,这是无限的。当服务器运行脚本并且浏览器拒绝等待时,我从未见过这样的时刻。主要是让脚本在服务器上运行。

+0

如果通过curl调用脚本,该怎么办? – nicks

+0

@NikaGamkrelidze,'max_execution_time'也会影响CURL。如果要使用CURL从服务器B向服务器A获取数据,如果服务器B运行脚本并且服务器A正在等待响应,则必须在两侧设置'max_execution_time'。如果CURL从服务器B获取的数据量太大,但此时服务器B不运行脚本,则仅在服务器A上更改限制将有所帮助。 – F0G

+0

@nikoloz :)你必须明白'max_execution_time'是服务器端的限制,而不是用户端。如果脚本被调用,它将会运行,直到它达到'max_execution_time'。 – F0G

相关问题