【问题标题】:Increase max_execution_time in PHP?在 PHP 中增加 max_execution_time?
【发布时间】:2012-02-03 08:55:54
【问题描述】:

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

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

有什么办法可以克服这个问题吗?

【问题讨论】:

  • 600 秒后究竟会发生什么?您收到哪个错误消息?上传时间不计入 PHP 时间限制
  • @Ajay Chthri:对于上传一些大文件,您可以尝试使用一些上传器,例如 java applet uploader
  • 我遇到同样的问题..它给了我“找不到页面”错误..我正在将文件名从另一个表插入到一个表中..我在 Codeignitier 中这样做..请帮助我

标签: php file-upload


【解决方案1】:

将此添加到htaccess file(并参见下面添加的编辑说明):

<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 运行,因为它为攻击向量 [Read More] 创造了很多机会。如果加载了来自&lt;IfModule 的特定模块,则作为模块运行(更安全的选项)将触发要使用的设置。
  • 答案表明在第一行写mod_php5.c。如果您使用的是 PHP 7,则可以将其替换为 mod_php7.c
  • 有时在您对 .htaccess 文件进行更改后,重新启动 Apache 或 NGINX 将无法正常工作。 most common reason for this is you are running PHP-FPM,作为一个单独的进程运行。您也需要重新启动它。
  • 请记住,这些设置通常在您的php.ini 配置文件中定义。此方法通常仅在您的托管服务提供商不允许您更改这些文件的情况下才有用。在您可以编辑 PHP 配置的情况下,建议您在此处应用这些设置。
  • 最后,需要注意的是,并非所有 php.ini 设置都可以通过 .htaccess 文件进行配置。 php.ini 指令的文件列表可以是found here,您唯一可以更改的是可更改列中具有PHP_INI_ALLPHP_INI_PERDIR 模式的那些。

【讨论】:

  • 或者直接在 php.ini 文件中更改这些值。
  • @jeremy Harris,那个 edited 链接现在是死路一条。请更新...
  • 您编辑它的链接给出了 403 禁止错误。我会尝试寻找其他资源。
  • 我刚刚用更多相关信息更新了这个答案,因为即使在近十年后它似乎仍然吸引了很多观众。
【解决方案2】:

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

所以你的问题不一定只能用 php 解决,但你也需要更改服务器设置。

【讨论】:

  • 刚才我检查了我的服务器是否支持 max_execution_time 30 mints 但是当我上传文件时 30 mb 文件进程将在 10 mints 后停止(查询未执行)
  • 你需要担心的不是执行时间,而是输入时间。如果您可以在 10 分钟内上传这些 30mb,它就会运行。如果您只上传 200kb 并且需要 11 分钟,它也不会运行。这不是取决于您此时的文件大小或执行时间,而是取决于您需要上传文件的时间。
  • 所以我们需要增加到 max_input_time ?
【解决方案3】:

很简单,这对我有用:

PHP

set_time_limit(300); // Time in seconds, max_execution_time

这里是 PHP documentation

【讨论】:

    【解决方案4】:

    为了增加执行时间和文件大小,您需要在 .htaccess 文件中提及以下值。它会起作用的。

    php_value upload_max_filesize 80M
    php_value post_max_size 80M
    php_value max_input_time 18000
    php_value max_execution_time 18000
    

    【讨论】:

      【解决方案5】:
      // Karvy master upload module
      function uploadKarvyData()
      {
          ini_set('MAX_EXECUTION_TIME', -1);
          ini_set('memory_limit', '-1');  
          or
          ini_set( 'memory_limit', '1024M' );
          ini_set('upload_max_filesize', '1024M'); 
          ini_set('max_input_time', 360000);  
          ini_set('max_execution_time', 360000);
      }
      

      【讨论】:

      • 如果您向我们解释为什么您的代码可以解决 OP 的问题,我相信这会对社区有所帮助
      猜你喜欢
      • 2021-04-02
      • 2014-10-29
      • 1970-01-01
      • 2014-10-11
      • 2015-07-03
      • 1970-01-01
      • 2015-04-06
      • 1970-01-01
      • 2012-06-30
      相关资源
      最近更新 更多