在127.0.0.1:8000上运行的Laravel 5.6
我有一个使用Puppeteer并打开页面的文件Capture.js
127.0.0.1:8000/渲染
当我从命令行调用它时,效果很好。
node capture.js
现在,当我使用
在laravel控制器中调用它时exec('node capture.js' )
它会启动Puppeteer,但该页面无法加载(超时)
当我尝试使用controller.capture.js加载另一个页面(例如google.fr)时,效果很好。
与网络有关吗? 8000端口上的localhost?
无头假或真给出相同结果=>超时
答案 0 :(得分:1)
您正在从启动laravel应用所需的文件中调用exec
。由于exec阻止了laravel应用程序启动,因此超时了。
这是正在做的事的例子,
Laravel应用->木偶游戏->等待!提取Laravel应用
答案 1 :(得分:0)
我在Symfony 3.4项目中遇到了完全相同的问题。
问题出在会议上:
调用exec()命令时,已经存在一个PHP会话,并且该会话文件被锁定。 当NodeJS脚本尝试连接时,会出现超时,因为会话文件不可用。
我通过在exec()命令上方添加以下指令来解决该问题:
session_write_close();