2015-03-31 4 views
1

Я успешно создал скрипт, используя phantomjs-node в локальном, и хотел бы разместить на OpenShift.Ошибка в OpenShift: «phantomjs-node: у вас нет установленных phantomjs»

Дело в том, когда я бегу мой сценарий прошел, у меня была эта странная ошибка:

phantom stderr: execvp(): No such file or directory phantomjs-node: You don't have 'phantomjs' installed

Но как вы можете видеть, я ставлю зависимостей в package.json файле:

"dependencies": { 
    "express": "~3.4.4", 
    "phantom": "*", 
    "phantomjs": "*" 
}, 

Любой предложения?

Edit:

Это, как я инициализировать скрипт phantomjs:

var options = { 
    port: 16000, 
    hostname: "127.2.149.1", 
    path: "/phantom_path/" 
} 
phantom.create(function(ph) { 
    visitUrl(ph, 0, 0); 
}, options); 
+0

Я не уверен, что вы можете установить подобные phantomjs. Мне пришлось загрузить исполняемый файл phantomjs и установить его в каталог данных openshift отдельно для моего проекта python. –

+0

Возможно, этот вопрос поможет. http://stackoverflow.com/questions/11259818/is-it-possible-to-run-phantomjs-from-node-js-as-a-command-line-argument –

+0

Спасибо за ответ, но я уже использую phantomjs -узел. И он успешно работал на моей машине, но у меня есть это сообщение об ошибке, только когда я пытаюсь выполнить мой сценарий после размещения на OpenShift. –

ответ

2

Сообщение об ошибке You don't have 'phantomjs' installed является внутренняя ошибка из phantomjs-node модуля. Я столкнулся с этой ошибкой сам, и мне удалось исправить это следующим образом:

var phantom = require('phantom'); 

var options = { 
     path: '/usr/local/bin/' 
}; 

phantom.create(function (ph) { 
    ph.createPage(function (page) { 
     page.open("http://www.google.com", function (status) { 
      console.log("opened google? ", status); 
      page.evaluate(function() { return document.title; }, function (result) { 
       console.log('Page title is ' + result); 
       ph.exit(); 
      }); 
     }); 
    }); 
}, options); 

Обратите внимание на options передается методу phantom.create(). Параметр path должен быть полным путем к каталогу, содержащему ваш двоичный файл phantomjs.

0

Phantomjs-node ищет Phantomjs в PATH вашей среды Open Shift и не может его найти. Найдите способ добавления Phantomjs в этот PATH.

Смежные вопросы