【问题标题】:How to execute a PHP long time script on an a apache2 server?如何在 apache2 服务器上执行 PHP 长时间脚本?
【发布时间】:2014-06-04 11:54:17
【问题描述】:

我有一个在 mysql 数据库中插入随机数据的 php 脚本。 (大约 100 万行) 脚本开始在我的浏览器上运行后,几分钟(例如 10 分钟左右)后脚本停止。 (Chrome 给我“未收到数据”)

在我的脚本中,我设置了以下内容:

ini_set('display_errors','On');
ini_set('error_reporting',E_ALL);
ini_set('max_execution_time' ,0);
ini_set('set_memory_limit', '10240MB');

对于这个项目,我使用的是 Laravel 框架,但我认为这与它无关。

有什么想法吗?

【问题讨论】:

  • 试试这个 set_time_limit(0);

标签: php mysql database apache2 limit


【解决方案1】:

通过 SSH 执行如此长时间运行的作业始终是一种好方法(如果您可以通过 SSH 访问您的服务器)。然后您可以通过php your-script.php 执行任何 PHP 脚本。您只需要记住两件事:您需要正确引导您的框架(如果脚本依赖于它),然后还有 SSH 连接超时。您可以通过在后台发送正在运行的作业或使用screen 命令来解决此限制。

【讨论】:

    【解决方案2】:

    发现问题。它来自框架。 对于最佳实践,我建议: https://laracasts.com/lessons/eager-loading

    【讨论】:

      最近更新 更多