shell — Mac OSX cmd работает из командной строки, сбой php shell_exec ()

Я на 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.

У меня сейчас проблема с разрешением?

====

Я изменил разрешение на файл к месту назначения, и это позаботилось об этом.

1

Решение

Проблема, вероятно, в том, что shell_exec использует другой $PATH тогда вы, и, следовательно, не можете найти wkhtmltoimage,
Из собственной оболочки вы можете использовать which wkhtmltoimage определить, где именно он установлен, а затем использовать shell_exec с полным путем, например:

$cmd='/opt/wkhtmltoimage http://www.google.com /Users/me/Sites/google.jpg';
shell_exec($cmd);
5

Другие решения

Для всех, кто наткнулся на этот ответ, моя команда включала сохранение изображения в каталог и shell_exec не было разрешений на запись для этого каталога. Я как пользователь сделал есть права, поэтому я смог выполнить запрос вручную успешно.

Поэтому я просто изменил права доступа к каталогу, чтобы в него можно было записывать.

0