我们最近没有进行任何升级。
我们正在尝试运行此 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/