不好意思,請問一下
目前在centos7上裝了node與puppeteer,幾番測試後,
若透過主機執行,node test.js
const puppeteer = require('puppeteer');
async function runTest() {
try {
const browser = await puppeteer.launch({
executablePath: '/usr/bin/chromium-browser',
headless: true,
args: ['--no-sandbox'],
});
const page = await browser.newPage();
await page.goto('https://www.google.com.tw');
await page.screenshot({path: 'example2.png'});
await browser.close();
} catch (error) {
console.error('Error:', error);
}
}
runTest();
或是
php test.php
$command = 'node test.js';
shell_exec($command .' 2\>&1');
都可以正常產生png,
但若是透過瀏灠器來執行,http://192.168.0.55/puppeteer/test.php
則會回傳錯誤
Error: ErrorEvent {
[Symbol(kTarget)]: WebSocket {
_events: [Object: null prototype] { open: [Function], error: [Function] },
_eventsCount: 2,
_maxListeners: undefined,
_binaryType: 'nodebuffer',
_closeCode: 1006,
_closeFrameReceived: false,
_closeFrameSent: false,
_closeMessage: <Buffer >,
_closeTimer: null,
_extensions: {},
_paused: false,
_protocol: '',
_readyState: 3,
_receiver: null,
_sender: null,
_socket: null,
_bufferedAmount: 0,
_isServer: false,
_redirects: 0,
_url: 'ws://127.0.0.1:43327/devtools/browser/6d920376-454b-4a10-b07d-479af2d a9ca9',
_originalIpc: false,
_originalSecure: false,
_originalHostOrSocketPath: '127.0.0.1:43327',
_req: null,
[Symbol(kCapture)]: false
},
[Symbol(kType)]: 'error',
[Symbol(kError)]: Error: connect EACCES 127.0.0.1:43327 - Local (0.0.0.0:0)
at internalConnect (node:net:1041:16)
at defaultTriggerAsyncIdScope (node:internal/async_hooks:464:18)
at node:net:1134:9
at processTicksAndRejections (node:internal/process/task_queues:78:11) {
errno: -13,
code: 'EACCES',
syscall: 'connect',
address: '127.0.0.1',
port: 43327
},
[Symbol(kMessage)]: 'connect EACCES 127.0.0.1:43327 - Local (0.0.0.0:0)'
}
請問有人了解這個錯誤嗎,是跟防火牆有關嗎? 感謝回答 Orz
是在同一台本機上執行的哦。感謝你的回應.
由於資訊不太完全。
目前只能猜測與 127.0.0.1 有關係。
因為如果你是在你的SERVER機上跑。則請求的127.0.0.1也等同是你的SERVER機。
所以會有服務可以運行。
但如果是在其它機器上跑。其127.0.0.1是在其它機上的。但因為它並沒有相對的服務應用。
自然就跑錯誤出來了。
以上只是先猜測到的可能性。