Я на Mac OS X 10.9.4
Я могу успешно запустить эту команду из командной строки, чтобы создать изображение или google.com
wkhtmltoimage http://www.google.com /Users/me/Sites/google.jpg
Но когда я попытался выполнить ту же команду изнутри моего сайта, используя команду php
$cmd='wkhtmltoimage http://www.google.com /Users/me/Sites/google.jpg';
shell_exec($cmd);
Я получаю следующую ошибку:
sh: wkhtmltoimage: command not found
Это проблема с разрешением? Если так, как я могу заставить это работать?
====
Я установил полный путь, как предложил @Mureinik, и теперь я добился некоторого прогресса.
Loading page (1/2)
[> ] 0%
[======> ] 10%
[=============> ] 23%
[==================> ] 31%
[===================> ] 33%
[========================> ] 41%
[=====================================> ] 62%
[=======================================> ] 65%
[========================================> ] 67%
[=========================================> ] 69%
[==========================================> ] 71%
[==============================================> ] 78%
[==================================================> ] 84%
[===================================================> ] 86%
[============================================================] 100%
Rendering (2/2)
[> ] 0%
[===============> ] 25%
Error: Could not write to output file
Error: Could not save image
[============================================================] 100%
Done
Exit with code 1, due to unknown error.
У меня сейчас проблема с разрешением?
====
Я изменил разрешение на файл к месту назначения, и это позаботилось об этом.
Проблема, вероятно, в том, что shell_exec
использует другой $PATH
тогда вы, и, следовательно, не можете найти wkhtmltoimage
,
Из собственной оболочки вы можете использовать which wkhtmltoimage
определить, где именно он установлен, а затем использовать shell_exec
с полным путем, например:
$cmd='/opt/wkhtmltoimage http://www.google.com /Users/me/Sites/google.jpg';
shell_exec($cmd);
Для всех, кто наткнулся на этот ответ, моя команда включала сохранение изображения в каталог и shell_exec
не было разрешений на запись для этого каталога. Я как пользователь сделал есть права, поэтому я смог выполнить запрос вручную успешно.
Поэтому я просто изменил права доступа к каталогу, чтобы в него можно было записывать.