2012-04-10 11 views
7

"Running PhantomJS on Heroku"は、ノードアプリケーションを使用しようとしているのとはちょっと違う質問です。phantomJSをnode.jsアプリにデプロイしますか?

ノードアプリケーション用のcasperJS(phantomJSベース)スクリプトのデプロイに問題があります。私は私のアプリの/binディレクトリにPhantomJS 64ビットのバイナリを置くことによって、Herokuのにデプロイしようとしましたが、私はPhantomJSを実行しようとすると、私は次のエラーを取得する:

phantomjs: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory 

私はこれを読んだことに由来することができますQtWebKitライブラリをインストールすることで解決できますが、Herokuにはこれがインストールされていません。 Herokuにこのパッケージをインストールする方法や、それが使える他のホスティングプロバイダがありますか?

関連するコード:

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のベータテストのためにサインアップしてきましたが、そのドキュメントは、この時点ではまだかなり限られています。

EDIT:PhantomJSのlibフォルダを私のノードアプリケーションのルートディレクトリにコピーするだけで動作させることができました。あなたはまた、キーはそのノードが稼働するのと同じアカウントを使用して、端末から実行する必要がありますされているビンまたはsbinに でSYMのリンクを入れてみてください、あなたのノードアプリ のルートディレクトリに

答えて

3

コピーphantomjsのlibフォルダ。 また、node-phantomはphantomjsを利用するための良いnpmライブラリです。

関連する問題