Я пытаюсь использовать php-phantomjs с Laravel 5 под CentOS 7 и Windows 8.
Я выполнил инструкции в PHP Phantom установка (установка выполнена с успехом), после чего я получил эту ошибку при попытке выполнить код Basic Usage:
Ошибка при выполнении процедуры PhantomJs "по умолчанию" - файл не существует или не является исполняемым: bin/phantomjs (View: PATH_TO_PROJECT\resources\views\welcome.blade.php)
Основной код использования
use JonnyW\PhantomJs\Client;
$client = Client::getInstance();
/**
* @see JonnyW\PhantomJs\Message\Request
**/
$request = $client->getMessageFactory()->createRequest('http://google.com', 'GET');
/**
* @see JonnyW\PhantomJs\Message\Response
**/
$response = $client->getMessageFactory()->createResponse();
// Send the request
$client->send($request, $response);
if($response->getStatus() === 200) {
// Dump the requested page content
echo $response->getContent();
}
Я много искал, находил и пытался несколько решений, но безуспешно. Здесь, в Stackoverflow, я нашел один вопрос Любой, кто успешно использовал jonnyw php phantomjs с laravel, в ubuntu envirement?. Я могу видеть в последнем комментарии, что парень решил проблему с помощью:
$client->setBinDir('absolute_path/bin');
$client->setPhantomJs('phantomjs.exe');
Я тоже triyed, и он возвращает другую ошибку:
Файл не существует или не является исполняемым: phantomjs.exe(View: PATH_TO_PROJECT\resources\views\welcome.blade.php)
Но когда я пытаюсь:
echo file_exists('absolute_path/bin/phantomjs.exe');
Он возвращает 1, что означает, что PHP может найти файл с absolute_path
.
Я не знаю, что я делаю неправильно. Кто-нибудь уже успешно использовал "php phantomjs" с laravel, который может мне помочь?
ПРИМЕЧАНИЕ. Код, содержащийся в вопросе, - это код версии Windows, но я получаю ту же ошибку в обеих ОС.
ОБНОВЛЕНИЕ 1
После изменения absolute_path
на relative path
теперь кажется, что он знает phantomjs.exe
, но сталь поднимает ту же ошибку с помощью phantomloader
:
Файл не существует или не является исполняемым:../bin/phantomloader (View: PATH_TO_PROJECT\resources\views\welcome.blade.php)
Пробовал это решение, но ту же ошибку:
$client->setPhantomLoader('../bin/phantomloader');