PHP配置:max_execution_time和max_input_time

6

我可以把以下PHP配置参数设置成如下:

max_execution_time = 360 max_input_time 360

这样安全且高效吗?

实际上我需要用基于PHP的内容管理系统上传大型视频。

每次视频上传需要几分钟,我需要同时修改这两个值吗?这些数值合适吗?

谢谢。


在我看来,这将在很大程度上取决于您用户的平均ISP速度。因此,除非您对用户有明确的定义,否则我们无法确定最有效的值是什么。 - lock
@Mark,Uploadify如何改善情况?它在服务器端受到相同的限制,不是吗? - Pekka
@Mark 确实,但如果它一直达到同样的限制,那就不好了...别误会,我喜欢 Uploadify,只是我认为如果由于超大文件而超时,它将无济于事。 - Pekka
@Mark 啊,现在我明白你的意思了!据我所知,Uploadify没有“恢复”功能。它只是通过其他方式进行普通文件上传。 - Pekka
@Pekka - 对不起,尽管其他上传器(例如plupload)似乎支持这个“分块”功能。 - Mark Baker
显示剩余6条评论
3个回答

9
在我看来,你两者都不需要更改。
如果你只是使用move_uploaded_file存储视频文件,则不需要增加max_execution_time,因为上传时间不计算执行时间。 manual关于max_input_time的说明如下(重点在于我):

这将设置脚本允许解析输入数据(如POST、GET和文件上传)的最大时间(以秒为单位)。

我没有测试过这个,但对我来说,这听起来像它不包括客户端花费上传文件的实际时间,只包括将其复制到临时目录所需的时间。我不能为此背书,也找不到任何信息。默认值60秒应足以解析数百兆字节的文件。
我建议使用现实生活中的测试找出完美的值。如果您的连接速度太快,请使用工具将其减慢。请参见此SO问题以获取建议:

模拟缓慢网络连接的网络工具


好的,简单总结一下:我只需要更改post_max_size和upload_max_filesize吗?谢谢。 - aneuryzm
2
@Patrick,这是针对字节限制的。但是如果您的Web服务器很慢,您可能需要增加时间限制(max_input_time)来解析接收到的字节。如果您想要操作接收到的字节,您还需要在Web服务器完成任务后增加PHP端的执行时间限制(max_execution_time)。最后,使用memory_limit控制内存限制和session.gc_maxlifetime控制GC。 - Pacerier
优秀的解决方案 - Hamad

3
在我的情况下,max_input_time确实会影响到我的move_uploaded_file函数。在默认设置(max_input_time=60)下,我未能上传一个3GB大小的文件,但当将值设为更大的数(max_input_time=300)时,上传成功了。
我的PHP版本是7.2.19,运行在LAMP环境中。

-1

默认情况下,我的服务器的max_input_time为-1。我认为这意味着无限制。


这是不可取的,它可能会导致意外的行为。 - ajreal
11
0 表示无限。-1 表示等于 max_execution_time。 - Shawn
根据我的XAMPP php.ini设置,max_input_time = -1意味着无限制,并且它是默认值。 - infomasud
@infomasud 这不正确。请参阅文档。 - mbomb007

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接