2015-02-04 2 views
0

Работа над небольшой концепцией создания скриншотов веб-сайта по URL-адресу сейчас. Ссылаясь на количество сайтов, используемых wkhtmltoimage. В настоящее время используется Mac. Установленный wkhtmltoimage успешно, также провереноСкриншот веб-сайта с использованием PHP

wkhtmltoimage www.google.com ggss.png 

в терминале. Он успешно выводит скриншот веб-сайта. Но когда я пытаюсь выполнить вышеуказанную команду с помощью PHP, я не вижу выходного изображения или каких-либо ошибок. Ниже код я попытался

<?php 
$output = shell_exec('wkhtmltoimage http://www.bbc.com bbc.jpg'); 
?> 

Любая помощь будет оценена

+0

Просмотрите системный error_log, чтобы узнать, что может произойти. – scottcarmich

ответ

0

Ok, наконец, выполнил команду оболочки через PHP через браузер. Так что я думал, что могу поделиться, может быть полезно кому-то. Таким образом, реальной проблемой является разрешение.

Так что, когда я использовал whoami команду на выходе терминала был macuser. Но когда я попытался выполнить команду с использованием shell_exec в php-выходе, никто не был. Это потому, что у apache не было разрешения. Таким образом, я сделал следующее, чтобы выполнить команду оболочки с помощью PHP

найдите файл httpd.conf в/и т.д., и найти

Пользователь никто Группа nogroup

изменить никто на имя пользователя вы хотите для установки в качестве пользователя, которого вы хотите выполнить. Для меня его пользовательский macuser

Затем выполните следующие команды. (Для того, чтобы убедиться, что я казнил их, как су в терминале)

  • кд/каталог/из/HTDOCS (для меня кд/Applications/XAMPP/xamppfiles/HTDOCS)
  • находкой. -exec chown macuser: macuser {} \;
  • кд ..
  • Чаун MacUser HTDOCS

теперь, когда я выполнить следующий код работает

<?php 
$output = shell_exec('/usr/local/bin/wkhtmltoimage http://www.google.com /Applications/XAMPP/xamppfiles/htdocs/demotasks/google.jpg'); 
?> 

Благодаря boulderapps!

0

Попробуйте указать полный путь к повелевать wkhtmltoimage.

EDIT

, чтобы получить команду wkhtmltoimage полный путь запустить эту команду: whereis wkhtmltoimage

Таким образом, вы должны это нравится:

<?php 
$output = shell_exec('/full_path_to_wkhtmltoimage_here/wkhtmltoimage http://www.bbc.com /full_path_to_img_here/bbc.jpg'); 
?> 
+0

его не ответчик, используйте комментарий для этого – Saqueib

+0

@Saqueib Этот вопрос похож: http://stackoverflow.com/questions/28211963/failed-to-call-dwebp-in-php. Я думаю, проблема в полном пути – stepozer

+0

попробуйте дать пример и ответьте на аналогичный ответ – Saqueib