Внедряване на phantomJS в приложението node.js?

Осъзнавам, че „Стартиране на PhantomJS на Heroku“ е свързан, но малко по-различен въпрос, тъй като се опитвам да използвайте приложение за възел.

Имам проблем с внедряването на casperJS (базиран на phantomJS) скрипт за приложение за възел. Опитах се да разположа в Heroku, като поставих 64-битовия двоичен файл на PhantomJS в директорията /bin на моето приложение, но получавам следната грешка, когато се опитам да стартирам 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, но тяхната документация все още е доста ограничена на този етап.

РЕДАКТИРАНЕ: Успях да го накарам да работи, като просто копирах папката lib на PhantomJS в основната директория на моето приложение за възли.


person user1071182    schedule 10.04.2012    source източник


Отговори (1)


Копирайте папката lib на phantomjs в главната директория на вашето приложение за възел Можете също да опитате да поставите сим връзка в bin или sbin. Ключът е, че трябва да се изпълнява от терминал, като се използва същият акаунт, на който работи възелът. Също така, node-phantom е добра npm библиотека за използване на phantomjs, след като я накарате да работи.

person Funkodebat    schedule 18.09.2012