Zdaję sobie sprawę, że "Running PhantomJS on Heroku" jest pokrewnym, ale nieco innym pytaniem, ponieważ próbuję użyć aplikacji węzła.Wdróż phantomJS w aplikację node.js?
Mam problem z wdrożeniem skryptu casperJS (w oparciu o phantomJS) dla aplikacji węzła. Próbowałem wdrażania do Heroku umieszczając PhantomJS 64-bitowy binarny w mojej aplikacji /bin
katalogu, ale pojawia się następujący komunikat o błędzie podczas próby uruchomienia PhantomJS:
phantomjs: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory
Z tego co czytałem to może być rozwiązany przez zainstalowanie biblioteki QtWebKit, ale Heroku nie ma tego zainstalowanego. Czy istnieje inny dostawca usług hostingowych, z którego mógłbym skorzystać, który będzie działał lub sposób zainstalowania tego pakietu na Heroku?
odpowiedni kod:
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);
}
});
});
ja zapisaliśmy się do beta-testów na Nodester ale ich dokumentacja jest wciąż dość ograniczone w tym momencie.
EDYCJA: Udało mi się uruchomić go po prostu kopiując folder lib PhantomJS do katalogu głównego aplikacji mojego węzła.