[英]Deploy phantomJS to node.js app?
我意識到“在 Heroku 上運行 PhantomJS”是一個相關但略有不同的問題,因為我正在嘗試使用節點應用程序。
我在為節點應用程序部署 casperJS(基於 phantomJS)腳本時遇到問題。 我嘗試通過將 PhantomJS 64 位二進制文件放在我的應用程序的/bin
目錄中來部署到 Heroku,但是當我嘗試運行 PhantomJS 時出現以下錯誤:
phantomjs: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory
根據我的閱讀,這可以通過安裝 QtWebKit 庫來解決,但是 Heroku 沒有安裝這個。 有沒有我可以使用的另一個托管服務提供商,或者有什么方法可以在 Heroku 上安裝這個 package?
相關代碼:
app.get('/', function(request, response) {
var sys = require('sys')
var exec = require('child_process').exec;
var child;
//works but gives error while loading shared library libqtwebkit.so.4
child = exec("phantomjs --version | tr -d '\n'", function(error, stdout, stderr) {
sys.print('stdout: ' + stdout);
sys.print('stderr: ' + stderr + '\n');
response.header('Content-Type', 'application/json');
response.send('_testcb(stdout:' + stdout + '\nstderr:' + stderr + ')', 200);
if(error !== null) {
console.log('exec error: ' + error);
}
});
});
我已經報名參加 Nodester 的 Beta 測試,但此時他們的文檔仍然非常有限。
編輯:我能夠通過簡單地將 PhantomJS 的 lib 文件夾復制到我的節點應用程序的根目錄來讓它工作。
將 phantomjs 的 lib 文件夾復制到你的節點應用程序的根目錄你也可以嘗試在 bin 或 sbin 中放置一個符號鏈接關鍵是必須使用與節點運行相同的帳戶從終端運行。 此外,node-phantom 是一個很好的 npm 庫,一旦你開始工作,就可以利用 phantomjs。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.