📜  PHP脚本占用的最大执行时间

📅  最后修改于: 2022-05-13 01:54:11.597000             🧑  作者: Mango

PHP脚本占用的最大执行时间

PHP程序的一个重要方面是执行脚本所需的最长时间为 30 秒。时间限制因托管公司而异,但最长执行时间在 30 到 60 秒之间。用户可能会由于某些涉及向许多收件人发送邮件的文件或程序的大量导入或导出而收到超出最大时间限制的错误。为了避免这种情况,您需要增加执行时间限制。

本文介绍如何更改或控制PHP脚本的最大执行时间。

先决条件:
您已经在应用程序中设置了自定义PHP.ini文件,或者必须向维护它的所有者提出请求。如果某些PHP脚本需要更长的时间,则服务器停止并抛出错误:

Fatal error: Maximum execution time of..seconds exceeded in this_file.php on line...

为了避免这种情况,您可以更改PHP.ini配置文件中的max_execution_time指令。让我们看看在PHP设置脚本执行时间的方法。下面列出了这些:

  • 根据PHP脚本的要求,在PHP .ini文件中搜索max_execution_time指令并编辑它的值。
    ; Maximum execution time of each script, in seconds
    ; http://php.net/max-execution-time
    ; Note: This directive is hardcoded to 0 for the CLI SAPI
    max_execution_time = 4000
    

    指令的默认值根据需要更改。
    phpinfo_screenshot



    注意:一旦配置文件中的更改完成,我们必须重新启动网络服务器。通过此设置,配置对所有PHP脚本都是全局的。以不正确的方式对此文件进行的更改可能会给 Web 服务器或实时项目带来问题。

  • 使用PHP内置函数set_time_limit(seconds) 其中 seconds 是传递的参数,它是以秒为单位的时间限制。当用户在PHP.ini文件之外更改设置时使用它。该函数在您自己的PHP代码中调用。当安全模式关闭时使用set_time_limit(0)

    注意:如果函数在程序一开始就被调用,那么传递给函数的值将是脚本执行的时间限制。否则,如果在代码中间调用该函数,则执行部分脚本,然后对脚本的其余部分应用时间限制。

  • 使用PHP内置函数ini_set(option, value)其中参数是给定的配置选项和要设置的值。
    // The program is executed for 3mns.
    
    

    当您需要在运行时覆盖配置值时使用它。此函数是从您自己的PHP代码调用的,只会影响调用此函数的脚本。当您想为脚本设置无限执行时间时,请使用init_set('max_execution_time'0)

    注意:安全模式关闭时使用init_set()函数。

    
    

    注:此函数与“0”作为参数不是一个良好的编程习惯,但可用于开发和测试目的。在将代码移动到实时或生产模式之前,请确保撤消设置。

  • 要允许永远运行脚本并忽略用户中止,请设置PHP内置函数ignore_user_abort(true)。默认情况下,它设置为 False,当客户端中止停止脚本时会引发致命错误。
    
    
  • 使用php_value命令更改 Apache 配置文件和.htaccess文件中的设置。
    句法:
    php_value name value

    这会按照指定的方式设置该特定指令的值。

    php_value max_execution_time 200
  • 使用 cPanel 配置设置选项更改脚本的执行时间。这可以在 cPanel 的仪表板中完成,并可用于设置PHP脚本的时间限制。