javascript - 从 PHP 执行 Puppeteer 突然停止工作
问题描述
我们最近没有进行任何升级。
我们正在尝试运行此 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 脚本。我们已经验证了节点实际上已安装。
我们尚未升级 PHP、Node 或任何其他更新。我们尝试过更改文件和目录的权限。没有什么变化。在这里把我们的头撞到墙上。
解决方案
在继续挖掘并发现越来越多的人遇到这个问题后,几乎没有修复。我在 stackoverflow 上发现了另一个线程,该线程谈到有人升级了他们的 puppeteer 版本,但它突然停止工作。
我们根本没有对 puppeteer、node 或系统进行任何升级,但仍然无法正常工作。我在这个帖子的评论中接受了非常简单的建议:升级 Puppeteer 后 Puppeteer 脚本突然停止工作
删除整个 node_modules 目录并重新安装 puppeteer。
不知道为什么,但它已经奏效了。我希望那里有更多的信息。幸运的是,它是一个快速安装。
推荐阅读
- shell - 使用 wget 排除域和文件类型
- c# - “CS0103:当前上下文中不存在名称‘模型’”错误仅在服务器上
- windows - gnu grep --include 文件扩展名区分大小写
- python - Python 2:比较两个时间点之间的时间戳
- python - 尝试更新 MultiSelect 小部件时散景生成 PropertyValueList 错误
- mysql - 如何在mysql中启用only_full_group_by的情况下获取group by语句的单个值
- java - 如何在 Java 中显示数组中的某些数字?
- hyperledger-fabric - Hyperledger Composer 身份发布
- javascript - SVG 和 HTML:getBBox 和 getBoundingClientRect 与将鼠标悬停在检查器中的节点上时不同
- node.js - 要在渲染中进行比较的 firebase 数据