PHP exec在页面加载时挂起,但在刷新后可以工作


PHP exec hangs on page load, but works after refresh

为什么PHP exec()不能在第一页加载时工作?我正在使用以下行通过PHP执行python脚本:

exec("python suggester.py " . $query_plus . " " . $location, $output);

大多数情况下,这都很好,但在我的页面(suggester.promediacorp.com)的初始加载时,POST请求会等待/挂起近一分钟,直到它最终返回响应。如果刷新了页面,或者之后运行了另一个查询,则它可以正常工作。

我几乎100%确信这个问题与exec()有关,因为当我删除该代码时,我会立即得到响应。此外,即使python文件没有任何内容,该问题仍然存在。

您没有预先转义的参数。看见http://php.net/manual/en/function.escapeshellarg.php

我想明白了。这是php的错误日志记录的一个问题,在我的脚本完成运行之前就得到了响应。