Когда я делаю в консоли /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
Какая разница в этом пути?
Ваш код 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);
Других решений пока нет …