Что:
php -r 'print getenv("PATH");'
дает вам?
Вероятно, оболочка, которую порождает PHP (вероятно, sh
вместо bash
), не получает ту же среду, в которойу вас в командной строке.Вы не говорите, как выполняете команду exec
.
Это покажет вам, какая оболочка запущена:
php -r 'echo shell_exec("echo $0");'
Возможно, вам придется использовать команду putenv
или определить, нужно ли задавать путь в /etc/profile
, ~/.profile
или ~/.bashrc
для того, чтобы его забрали.