如何在php中增加执行超时?

Aam*_*mir 90 php

如何增加事务超时?我想上传视频,但是没有上传大尺寸的视频?

它抛出错误 The process *** exceeded the timeout of 60 seconds.

Han*_*nes 113

你需要在php.ini中更改一些设置:

upload_max_filesize = 2M 
;or whatever size you want

max_execution_time = 60
; also, higher if you must - sets the maximum time in seconds
Run Code Online (Sandbox Code Playgroud)

您的PHP.ini所在位置取决于您的环境,更多信息:http://php.net/manual/en/ini.list.php

  • @Col,我不同意,他想要动态地做出改变,而不是整个应用程序,所以他问他怎么做到这一点.即使他要问他如何才能改变php.ini中的一些东西,它可能是一个新手问题,但一个合法的问题都是一样的. (2认同)

Chr*_*sen 52

您应该能够在运行时使用

set_time_limit(100);

http://php.net/manual/en/function.set-time-limit.php

或者在你的vhost-config中

php_admin_value max_execution_time 10000

由于不太可靠的应用程序的性能原因,将全局执行时间限制为低是一个好主意.因此,您可能希望仅允许这些脚本运行更长时间.

ps:别忘了post_max_size和upload_max_filesize(就像第一个答案告诉allready)


Lyn*_*nxi 18

完成Hannes的答案.

你需要在php.ini中更改一些设置:

upload_max_filesize = 2M 
;or whatever size you want

max_execution_time = 60
; also, higher if you must
Run Code Online (Sandbox Code Playgroud)

如果有人想要无限制(我不知道为什么,但如果你想),你可以把两次放到0:

你需要在php.ini中更改一些设置:

upload_max_filesize = 0 

max_execution_time = 0
Run Code Online (Sandbox Code Playgroud)

如果你不知道你的php.ini在哪里.您可以在服务器中执行"name.php"文件并放入:

<?php phpinfo(); ?>
Run Code Online (Sandbox Code Playgroud)

在您的网站上,您可以看到您的php.ini的配置,它标记在哪里.

2015年1月9日编辑:

如果您无法访问php.ini,则还有两个选项.

您可以直接在"name.php"文件中设置此行,但我找不到upload_max_filesize这个选项:

set_time_limit(0);
Run Code Online (Sandbox Code Playgroud)

或者在".htaccess"中

php_value upload_max_filesize 0
php_value max_execution_time 0
Run Code Online (Sandbox Code Playgroud)


Kom*_*ang 7

如果您需要做的只是1或2页的特定内容,我建议使用set_time_limit,这样就不会影响整个应用程序.

set_time_limit(some_values);
Run Code Online (Sandbox Code Playgroud)

但是当然这两个值(post_max_size&upload_max_filesize)需要调查.

你可以通过ini_set函数设置它

ini_set('post_max_size','20M');
ini_set('upload_max_filesize','2M');
Run Code Online (Sandbox Code Playgroud)

或直接在php.ini文件中,如Hannes上面的响应,甚至像下面的那样设置它.htaccess

php_value upload_max_filesize 2M
php_value post_max_size 20M
Run Code Online (Sandbox Code Playgroud)


Mic*_*ael 7

如果你碰巧使用的是微软的IIS服务器,除了其他人提到的php.ini设置外,可能还需要在IIS服务器管理器中增加PHP FastCGI应用的执行超时设置:

步骤 1) 打开 IIS 服务器管理器(通常在开始菜单中的服务器管理器下,然后是工具/ Internet 信息服务 (IIS) 管理器)。

步骤 2) 单击主连接(不特定于任何特定域)。

步骤 3) 在IIS部分下,找到FastCGI Settings(如下所示)。

在此处输入图片说明

步骤 4) 其中,右键单击 PHP 应用程序并选择Edit...

步骤 5)检查超时(如下所示)。

在此处输入图片说明

就我而言,这里的默认超时是 70 和 90 秒;前者导致PHP 脚本出现500 内部服务器错误,耗时超过 70 秒。


Tom*_*zyk 5

作为上述答案的补充,您可以使用set_time_limit()功能:

http://php.net/manual/en/function.set-time-limit.php

0作为参数传递将使您的脚本无时间限制地运行。