服务器在我的php脚本中的exec函数执行

时间:2017-11-17 01:43:21

标签: php apache exec

我有一个PHP脚本,我必须从浏览器执行。在该脚本中,我使用exec()函数,如下所示:

exec("sudo scriptname 2>&1", $out);

我希望$ out保存该脚本返回的输出。我需要输出进行进一步处理。该脚本大约需要2分钟才能运行。问题是,当我在浏览器中运行PHP脚本时,它会继续运行一分钟然后停止。由于这个原因,PHP脚本死了,我收到类似'Page not Responding'的错误。

在Chrome上,屏幕显示如下错误:

ServerName.com unexpectedly closed the connection
ERR_INCOMPLETE_CHUNKED_ENCODING

在Mozilla上,屏幕变为空白(完全白色)。

在搜索chrome错误后,我确实认为Web服务器(我正在运行Apache)因客户端不活动而关闭连接,因为PHP脚本实际上并没有做任何事情,只是等待exec()函数光洁度。

我尝试设置 max_execution_time max_input_time default_socket_timeout < / strong>并使用 set_time_limit(0) 希望这可能不会杀死PHP脚本,但它不起作用。

我不想使用PTHREADS生成两个线程,其中一个运行exec()函数,另一个监视它或以某种方式使服务器忙。

我相信PHP或apache中有一些设置为60秒,这会终止服务器的连接。我只是不知道它是什么。

此外,当我将exec()中的脚本替换为另一个不到一分钟的脚本时,PHP脚本运行完美。

编辑: Apache超时值设置为120秒。

1 个答案:

答案 0 :(得分:0)

任何机会sudo都在等待用户名/密码输入,并在1分钟后超时?