Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 木偶演员无法从控制器中的laravel exec()加载页面_Php_Node.js_Laravel_Puppeteer - Fatal编程技术网

Php 木偶演员无法从控制器中的laravel exec()加载页面

Php 木偶演员无法从控制器中的laravel exec()加载页面,php,node.js,laravel,puppeteer,Php,Node.js,Laravel,Puppeteer,Laravel 5.6在127.0.0.1:8000上运行 我有一个文件capture.js,它使用puppeter并打开页面 127.0.0.1:8000/渲染 当我从命令行调用它时,它工作得非常好 node capture.js 现在,当我在laravel控制器中使用 exec('node capture.js' ) 它会启动Puppeter,但页面不会加载超时 当我尝试使用capture.js从控制器加载另一个页面例如:google.fr时,效果很好 这和网络有关吗?端口8000上的本

Laravel 5.6在127.0.0.1:8000上运行

我有一个文件capture.js,它使用puppeter并打开页面

127.0.0.1:8000/渲染

当我从命令行调用它时,它工作得非常好

node capture.js
现在,当我在laravel控制器中使用

exec('node capture.js' )
它会启动Puppeter,但页面不会加载超时

当我尝试使用capture.js从控制器加载另一个页面例如:google.fr时,效果很好

这和网络有关吗?端口8000上的本地主机

headless false或true给出了相同的结果=>TIMEOUT

您正在从启动laravel应用程序所需的文件调用exec。它超时了,因为exec正在阻止laravel应用程序启动

这是一个正在进行的示例


拉威尔应用->木偶演员->等等!Go fetch Laravel应用程序

我在Symfony 3.4项目上遇到了完全相同的问题

问题来自于会议:

调用exec命令时,PHP会话已经存在,并且会话文件被锁定。 当NodeJS脚本尝试连接时,会出现超时,因为会话文件不可用

我通过在exec命令上方添加以下指令解决了此问题:

session_write_close();

其他可执行文件呢?启动浏览器怎么样?代码是否以相同的用户、环境和权限运行?@UlrichEckhardt一切正常,实际上Puppeter启动,只是无法从本地主机端口8000Thanks加载此特定页面。事实上,laravel应用程序已经在运行,通过在laravel上下文之外呈现页面来解决问题,express在端口3000上提供服务。