增加 PHP max_execution_time?

2022-08-30 19:03:09

我正在尝试将大文件上传到我的服务器(我的服务器支持192mb和600秒)。当我上传100mb文件时,执行将在600秒后停止,因此文件不会上传到服务器。如何增加PHP(仅适用于文件上传过程)?我试过:post_max_sizemax_execution_timemax_execution_time

ini_set ( 'max_execution_time', 1200); 
if(move_uploaded_file($_FILES['Video']['tmp_name'],$tmppath)) {
  // ...
} 

任何想法,我怎么能克服这个?


答案 1

将其添加到 htaccess 文件中(并查看下面添加的编辑注释):

<IfModule mod_php5.c>
   php_value post_max_size 200M
   php_value upload_max_filesize 200M
   php_value memory_limit 300M
   php_value max_execution_time 259200
   php_value max_input_time 259200
   php_value session.gc_maxlifetime 1200
</IfModule>

其他资源和信息:


2021年编辑:

随着PHP和Apache的发展和成长,我认为对我来说,花点时间提及一些需要考虑的事情以及可能的“陷阱”是很重要的:

  • PHP可以作为模块或CGI运行。不建议以CGI身份运行,因为它为攻击媒介创造了很多机会[阅读更多]。作为模块运行(更安全的选项)将触发在加载了特定模块时要使用的设置。<IfModule
  • 答案指示在第一行中写入。如果您使用的是 PHP 7,则可以将其替换为 。mod_php5.cmod_php7.c
  • 有时,在对.htaccess文件进行更改后,重新启动Apache或NGINX将不起作用。最常见的原因是您正在运行PHP-FPM,它作为单独的进程运行。您还需要重新启动它。
  • 请记住,这些是通常在配置文件中定义的设置。此方法通常仅在托管服务提供商不允许您更改这些文件时才有用。在可以编辑 PHP 配置的情况下,建议您在此处应用这些设置。php.ini
  • 最后,请务必注意,并非所有 php.ini 设置都可以通过 .htaccess 文件进行配置。可以在此处找到php.ini指令的文件列表,您唯一可以更改的是可更改列中的可更改列中的指令,其模式PHP_INI_ALLPHP_INI_PERDIR

答案 2

对于许多Web服务器,有一个设置(在Apache上),该设置定义了它们将等待发布数据的时间,无论大小如何。如果这个时间用完了,连接就会关闭,甚至没有触摸php。max_input_time

因此,您的问题不一定只能用php解决,但是您也需要更改服务器设置。


推荐