如何在apache2服务器上执行PHP长时间脚本


How to execute a PHP long time script on an a apache2 server?

我有一个php脚本插入mysql数据库中的随机数据。(大约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框架,但我不认为它与它有什么关系。

有什么想法吗?

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

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