Скрипт не работает Phantomjs


Я запускаю этот скрипт на php:

<?
echo $result = shell_exec("phantomjs \script.js");
?>

Script.js :

var page = require("webpage").create();


page.open("http://livescore.in/", function (status) {
    if (status !== 'success') {
        console.log('Unable to load the address!');
        phantom.exit();
    } else {
        window.setTimeout(function () {
            console.log(page.content);
            phantom.exit();
        }, 5000);  
    }
});

Php-файл, phantom.js, script.js лежат в той же папке.

Версия PhantomJS - 2.2.1

В результате скрипт загружается на неопределенный срок.

Author: Rick Smith, 2016-03-22

1 answers

Причиной проблемы, скорее всего, являются неправильные пути к файлам. Самое простое решение в вашем случае - установить полные пути к двоичному файлу phantomjs и скрипту.

<?php
    echo $result = shell_exec("/path/to/work/folder/phantomjs /path/to/work/folder/script.js");
?>

Чтобы узнать полный путь: войдите на свой сервер, перейдите в рабочую папку и затем выполните команду

pwd

Выводом этой команды является путь, который необходимо использовать в shell_exec. Таким образом, вы не запутаетесь в путях, и скрипт всегда будет выполняться. Но я бы посоветовал вам воспользоваться моментом и почитать о абсолютные/относительные пути в Linux.

Это также должно работать, если все файлы находятся в одной папке:

<?php
echo $result = shell_exec("phantomjs script.js");
?>
 0
Author: Vaviloff, 2016-03-23 05:31:45