我正在尝试运行phantomjs脚本,如下所示:
$max_time = ini_get('max_execution_time');
set_time_limit(0);
$result = shell_exec($path_to_phantomjs);
// Do stuff with result here...
set_time_limit($max_time);
这是一个需要几分钟才能完成的抓取脚本,但我想等待它的结果,并在我的服务器上操作它。对我来说同样重要的是,这个脚本将从客户端运行,并返回一些结果给它进行分析等。
这失败了,nginx出现504错误,需要注意的是,在我的(本地)apache服务器上,同样的代码也能很好地工作。
504错误意味着nginx在从后端(php)获取页面时超时。要解决这个问题,您应该将php代理位置中以下变量的值增加到高于执行脚本时间(以秒为单位)的值:
fastcgi_read_timeout
proxy_read_timeout