javascript - 从 PHP 执行 Puppeteer 突然停止工作

标签 javascript php node.js exec

我们最近没有进行任何升级。

我们正在尝试运行此 JavaScript 代码 (createpdf.js)

    const puppeteer = require('/home/glossyadmin/node_modules/puppeteer');
    const InvoiceNumber = process.argv[2];
    const PDFdir = __dirname + '/../email/invoice/';

    (async () => {
    const browser = await puppeteer.launch({args: ['--no-sandbox']});
    const page = await browser.newPage();
    await page.goto('http://localhost:8080/admin/ajax/invoice?InvoiceNumber=' + InvoiceNumber + '&Print=Print', {waitUntil: 'networkidle2'});

   await page.pdf({path: PDFdir + InvoiceNumber + '.pdf', format: 'A4'});
   await browser.close();
    })();

我们一直用这个 PHP 脚本调用上面的代码:

$Vars = json_decode(urldecode(@$argv[1]), true);
$InvoiceNumber = $Vars['InvoiceNumber'];
$createScript = $_SERVER['DOCUMENT_ROOT'] . '/admin/workers/createpdf.js';
exec("node $createScript 2>&1 ".escapeshellarg($InvoiceNumber), $arrayReturn);

它一直在工作,但最近它停止了。代码看起来不错(错误日志中没有 PHP 错误),但它只是不再调用/执行 createpdf.js 脚本。我们已经验证 Node 确实已安装。

我们尚未升级 PHP、Node 或任何其他更新。我们尝试过更改文件和目录的权限。没有什么变化。把我们的头撞到墙上。

最佳答案

在继续挖掘并发现越来越多的人遇到这个问题后,几乎没有解决办法。我在 stackoverflow 上发现了另一个帖子,其中谈到有人升级了 puppeteer 版本,但它突然停止工作了。

我们根本没有对 puppeteer、 Node 或系统进行任何升级,但仍然无法正常工作。我在这个帖子的评论中采纳了非常简单的建议:Puppeteer script suddenly stopped working after upgrading Puppeteer

删除整个node_modules目录并重新安装puppeteer。
不知道到底为什么,但它确实有效。我希望那里有更多信息。幸运的是,安装速度很快。

关于javascript - 从 PHP 执行 Puppeteer 突然停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55974469/

相关文章:

javascript - 使用网络套接字检测页面退出

javascript - 不同 Array selectorID 中的动画图标

php - 如何处理来自 MySQL 的结果对象

node.js - 引用错误 : DATABASE_URL is not defined when trying to connect to heroku postgres db using Sequelize

Javascript:将四舍五入的数字格式化为 N 位小数

javascript - Angular 2 : Expression has changed after it was checked on accessing child component property

php - 在Linux上存储图像

php - 为 Doctrine 问题设置 utf8 字符集

node.js - 如何在 nodejs express 中提供图像

node.js - Node 、缓冲区、流式传输、保存到文件