PHP的max_execution_time,什么是大型上传文件最好的调

我安装了一个WordPress,我使用一个Web表单在我的网站上传图片。 Web表单允许最终用户一次上传多个文件。

问题是我的一个用户有这个错误:

致命错误:在258行的/ home / ACOUNT /public_html/wp-includes/media.php上超过了30秒的最大执行时间

那么什么是max_execution_time的最佳调整。 现在你可以看到是30秒。 有什么想法吗?

如果我把它设置在一个非常高的值(即600),会影响我的服务器性能?

注意:用户尝试上传两个文件,大小为2.96MB和2.9MB。

亲切的问候Merianos Nikos

我从错误消息中的path猜测这是一个Unix / Linux系统(MSWindows处理超时非常不同 )。

虽然带宽(和延迟!)对处理请求所花费的时间有很大的影响,但PHP时钟只在调用PHP解释器时才会启动 – 直到Web服务器收到完整的请求才会启动 – 即PHP执行时间,因此超时应该与Web服务器处理请求花费多长时间无关。

在PHP中有一个超时,以确定它应该花费多长时间接收来自networking服务器的数据 – max_input_time – 据报道 , 当超过这个时间,报告 超出了max_execution_time

所以….假设一个0延迟networking…

  • 00:00用户开始上传,Apache的超时时钟开始(但将不断得到新的数据包重置)

  • 00:10收到Apache完成的请求,请求交给PHP,max_input_time时钟开始

  • 00:11 PHP已经读取了所有的input,max_input_time时钟停止,max_execution_time时钟开始执行,脚本被执行

现在,在一个Unix机器上,执行PHP时,max_execution时钟才会出现,问题在于PHP的性能/ PHP脚本的性能。

是的,你可以增加最大的执行时间,而不会对其他地方产生很大的影响(尽pipe通过脚本脚本的ini_set()/ set_time_limit()来设置它比全局设置更加清晰)。 但是要确保你使用的是操作码caching,如果php脚本试图parsing数据,那么要小心数据/parsing器的问题。

max_execution_time设置的两个目的:

  1. 保护您免受糟糕的代码,如无限循环。
  2. 在猜测客户端已经放弃之后,停止从浪费处理PHP。

将其设置为较高值只会影响性能,如果您有脚本执行以上两件事之一。

检查你的错误日志,看看在改变之前你有多less次(如果有的话)超过这个时间。

您可以通过在需要更多时间的PHP代码中使用ini_set()来select性地更改它。

正如@Ladadadada所说, max_execution_time设置不会影响您的服务器性能。 否则,如果你不想设置太高的值,我personnaly指的是upload_max_filesize设置。

知道你的服务器带宽,并通过testing一些上传,你将能够find一个平均上传速度(降低这个速度来照顾带宽低的用户)。 这将有助于设置一个合理的 max_execution_time值。