我有一个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秒。
答案 0 :(得分:0)
任何机会sudo都在等待用户名/密码输入,并在1分钟后超时?