Я пытаюсь запустить PhantomJS с помощью PHP на веб-сервере Linux. Это в конечном итоге будет выполняться как задание cron, но пока я запускаю его через PHP-скрипт, который я загружаю через FTP на сервер.Запуск PhantomJS со стороны сервера PHP
PHP скрипт:
$cmd = '/usr/local/bin/phantomjs /home/accountname/public_html/myscript.js';
$result = exec($cmd);
var_dump($result);
(Обратите внимание, что я изменил имя учетной записи на пути выше «ACCOUNTNAME» на частную жизнь, но это правильно в моем реальном сценарии - и копируется из множества другие скрипты, которые все работают отлично)
содержание myscript.js:.
console.log('Hello, world!');
phantom.exit();
Полученный выход:
string(0) ""
Я пытался несколько примеров с сайта PhantomJS Я никогда не получаю никакого вывода - либо на экране, в консоли или примеров, которые создают скриншоты файлы PNG никогда не появляются в нужном месте - хотя я указываю точные пути.
Я попробовать возвращение версии PhantomJS и это возвратил правильный вариант:
$cmd = '/usr/local/bin/phantomjs --version';
$result = exec($cmd);
var_dump($result);
Возвращается:
string(5) "1.9.2"
Я знаю, что «Exec» не безопасный способ запуска вещи в PHP - но я просто пытаюсь проверить, что PhantomJS работает, чтобы начать работу, а затем мы настроим все, чтобы работать безопасно.
Любые идеи? Заранее спасибо.
Не совсем понятно. Вы запустили myscript.js напрямую и вывели правильную строку? На какой ОС/платформе вы работаете? –
Ну, myscript.js имеет специальный вызов PhantomJS «phantom.exit();» но если я выберу это и сразу вызову JS-файл, тогда да, это сработает. Если я запустил PHP, содержащий код, показанный в моем первоначальном примере, и запустил этот сценарий с использованием задания cron, тогда он отлично работает. Он просто выполняет его из браузера, что вызывает проблему. У меня возникла проблема, запустив регулярное задание cron и обновив PHP, чтобы ссылаться на таблицу MySQL, которая выступает в качестве очереди, чтобы передать ее JS-файл и планировать, когда эта задача требуется. Это управляемый хостинг-сервер под управлением CENTOS 5.11 –