我有一个使用 puppeteer 的 NodeJS 脚本。该脚本由 Laravel(一个 PHP 框架)启动。
在本地一切正常,因为 laravel 是在我当前的用户帐户下运行的,这意味着脚本也使用此帐户运行。
但是在我的服务器上,Laravel 使用 Apache 帐户(www-data)运行,因此 JS 脚本也是如此。
当脚本使用 puppeteer 时,我得到:
Error: Could not find Chrome (ver. 130.0.6723.58). This can occur if either
1. you did not perform an installation before running the script (e.g. `npx puppeteer browsers install chrome`) or
2. your cache path is incorrectly configured (which is: /var/www/.cache/puppeteer).
For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides/configuration.
at ChromeLauncher.resolveExecutablePath (file:///home/admin/node-twitterbot/node_modules/puppeteer-core/lib/esm/puppeteer/node/BrowserLauncher.js:266:27)
at ChromeLauncher.executablePath (file:///home/admin/node-twitterbot/node_modules/puppeteer-core/lib/esm/puppeteer/node/ChromeLauncher.js:202:25)
at ChromeLauncher.computeLaunchArguments (file:///home/admin/node-twitterbot/node_modules/puppeteer-core/lib/esm/puppeteer/node/ChromeLauncher.js:83:37)
所以我做到了:
sudo -u www-data npx puppeteer browsers install chrome chromium -- path=/var/www/.cache/puppeteer
在.cache文件夹中,有chrome和chromium。
但我还是遇到了例外。
有什么想法吗?
谢谢
我必须指定浏览器的位置:
const 浏览器 = 等待 puppeteer.launch({ 可执行路径:'/usr/bin/chromium' })