2013-11-28 250 views
0

好的,这将是一个非常奇怪的请求/问题。从PHP启动shell命令

有一个非常长的PHP脚本,需要由用户(管理员)在技术上不太熟练的用户启动。当通过apache运行脚本时,会引发超时(502或504 Bad Gateway)。

我们假设apache无法配置为解决超时问题。

我想在管理面板中创建一个按钮,向服务器上的PHP脚本发送一个AJAX调用,该PHP脚本将充当各种代理来启动shell命令。然后,shell命令将执行长时间运行的PHP脚本,但是我不希望它等待长时间运行的脚本完成。代理PHP脚本可以退出并根据shell命令是否实际启动返回true/false(这部分是可选的)。

基本上,让PHP启动一个启动PHP脚本的shell命令。

我该如何解决这个问题?

+0

这不是一个奇怪的问题......它实际上是相当普遍的,并在此前被问过很多次。真正的问题是,虽然......你可以在这台服务器上做什么?您可能会发现克伦职位最适合需要定期发生的特定事情。另外,如果需要,还可以使用工作排队方法。你想要做什么? – Brad

+0

我对服务器有完全的根权限。我知道有关cron的工作,并且有几个已经设置完成其他任务。然而这个任务取决于用户的行为。我试图在一些opencart产品上运行超过100,000条记录的巨大插入/更新。这些查询已经全部优化,只有很多顺序。 –

+0

我会在数据库中设置一个作业队列表,并在用户计划作业时添加一行。每分钟都有一份cron工作来启动这项工作。然后,它可以更新其在该数据库中的状态以供用户查看。还有其他排队系统可用,甚至可以使用一些pub/sub,但对于简单的事情来说,启动作业的cron作业效果很好。 – Brad

回答