Получить другой результат, если сделать одну и ту же команду в консоли и exec ()

Когда я делаю в консоли /home/..myserver_path../.local/bin/gocr -i '/home/..myserver_path../runtime//tmp/135_45_ca4b78115a191517c9e356d34deb000c.jpg' 2>&1 это работает хорошо.

Но когда я делаю в php скрипт

exec("/home/..myserver_path../.local/bin/gocr -i '/home/..myserver_path../runtime//tmp/135_45_ca4b78115a191517c9e356d34deb000c.jpg' 2>&1", $out);

Я получаю ошибки:

sh: 1: djpeg: не найдено

ОШИБКА pnm.c L328: неожиданный EOF

Какая разница в этом пути?

0

Решение

Ваш код PHP синтаксически неверен. Вы должны избегать одинарных кавычек, используемых в команде.

Изменить: После исправления синтаксиса, я бы предположил, что djpeg отсутствует в вашем пути для PHP, но находится на пути в вашей оболочке. Что вы получаете, когда бежите which djpeg из твоей раковины?

Изменить: Согласно обсуждению ниже, похоже, что это так. Чтобы решить эту проблему, попробуйте этот код PHP:

exec("export PATH=\$PATH:/home/..myserver_path../.local/bin/; /home/..myserver_path../.local/bin/gocr -i '/home/..myserver_path../runtime//tmp/135_45_ca4b78115a191517c9e356d34deb000c.jpg' 2>&1", $out);
1

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

Других решений пока нет …

По вопросам рекламы [email protected]