Воникла проблема, которую не могу решить. Установил apache+php в chroot'ной среде. Есть необходимость вызова внешних программ, точнее convert из ImageMagick. Залил эту прогу в чрутный каталог со всеми зависимотями. Но php отказывается ее выполнять (при вызове через shell_exec или passthru ноль эмоций, даже сообщений никаких не выдает). Протестил через chrootuid, прога в чтрутной среде фунциклирует. В чем может быть дело?
У меня была такая же проблем....
Все заработало, когда я прописал полный путь к convert
>У меня была такая же проблем....
>Все заработало, когда я прописал полный путь к convert
Что значит полный путь?
Пробовал я и полный относительно чрута, и абсолютный в системе. Нихрена не работает :(
>Что значит полный путь?
>Пробовал я и полный относительно чрута, и абсолютный в системе. Нихрена не
>работает :(Я использовал абсолютный путь
МОя проблема была вот в чем:
Когда я использовал passthru или system для вызова convert -- мне в качестве возвращаемой строки ничего не приходило, а в качестве состояния команды (второй параметр в обеих функциях) возвращало, если не ошибаюсь, код 127 (в норме возвращает 0).
При этом запуск из консоли отрабатывал нормально....
Но из консоли я запускал от другого пользователя, хотя из группы апача.
Как только я стал использовать абсолютный путь к convert'у в php все заработало.
>>Что значит полный путь?
>>Пробовал я и полный относительно чрута, и абсолютный в системе. Нихрена не
>>работает :(
>
>Я использовал абсолютный путь
>МОя проблема была вот в чем:
>Когда я использовал passthru или system для вызова convert -- мне в
>качестве возвращаемой строки ничего не приходило, а в качестве состояния
>команды (второй параметр в обеих функциях) возвращало, если не ошибаюсь, код
>127 (в норме возвращает 0).
>При этом запуск из консоли отрабатывал нормально....
>Но из консоли я запускал от другого пользователя, хотя из группы апача.
>
>Как только я стал использовать абсолютный путь к convert'у в php все
>заработало.
:( а у меня не работает, не /usr/local/bin/convert, не /chroot/httpd/usr/local/bin/convert. Все время 127.
Причем #chrootuid /chroot/httpd/ nobody /usr/local/bin/convert ~~bla-bla-bla~~ работает нормально (апач крутится под ноубади)
>:( а у меня не работает, не /usr/local/bin/convert, не /chroot/httpd/usr/local/bin/convert. Все время
>127.
>Причем #chrootuid /chroot/httpd/ nobody /usr/local/bin/convert ~~bla-bla-bla~~ работает нормально (апач крутится под ноубади)
>Тогда не знаю :-(
Надо искать, что означает код 127 у convert.....
Все, разобрался. 127 это command not found. Проблема была в следующем, забыл скопировать /bin/sh в chrooted environment. PHP вызывает внешние программы использую sh. После копирования все заработало.