2

我的脚本需要很长时间才能执行。结果服务器响应 503 错误。如何设置更长的执行时间?

在我的 PHP 脚本中,我设置了:

set_time_limit(0);
ignore_user_abort(true);
4

4 回答 4

1

尽管您在脚本中设置了什么时间限制,Web 请求可能会提前超时,因为客户端放弃,或者因为中间的任何代理服务器放弃,或者可能如果 apache 服务器配置为放弃。

正如另一位回答者提到的那样;该maximum_execution_time变量可能会有所帮助,但如果您不让访问者长时间等待会更好。

考虑使用显示反馈的模式:

  1. 用户发起动作;例如 POST 请求
  2. PHP 脚本会立即返回包含 javascript 或 iframe 的页面。
  3. javascript/inner 框架调用长时间运行的脚本。
  4. 每隔几秒钟,javascript 就会使用类似 LONGPOLL 的机制向用户更新脚本的运行方式。
  5. 在完成或错误时,javascript 通知并重定向到下一页。
于 2011-11-20T14:15:15.867 回答
1

这个问题与PHP Background Processes非常相似。所以请阅读;此外,

首先你需要在 php.ini 中更改时间限制;您不能在脚本本身中更改它。或在 .htaccess 中使用php_value

其次,您可能希望修改与用户交互的方式更友好,以便页面使用更新;你可以探索ajax;http-刷新;用于不同方法的多部分页面。如果您正在进行长时间计算,也许您可​​以在后台启动它们并更新数据库,稍后再检索结果。

于 2011-11-20T14:18:46.757 回答
0

看看maximum_execution_time

但是据我所知,这通常需要在 php.ini 中设置,简要查看一下手册,它说如果不是在安全模式下,这应该由脚本设置。

于 2011-11-20T14:04:49.380 回答
0

你不知道确切的错误?没有它,我猜是内存限制,你也改变了吗?检查你的 php.ini:

memory_limit = 128M
于 2011-11-20T14:08:43.487 回答