Я знаю, что это сводится к тому, что правильные значения env недоступны для php во время выполнения.
Вот мой тестовый скрипт
// Vagrant x64 Debian Wheezy
// Outputs lots of crap
echo passthru('ls -al /var/www/websites/');
// I get nothing with these
echo passthru('compass');
echo passthru('/usr/local/bin/compass');
// the gem actually exists here.
// But I still get nothing
echo passthru('/usr/local/rvm/rubies/ruby-1.9.3-p547/bin/compass');
// Permissions on the file are currently 777 to make sure the is not the problem
// If I execute "compass" via ssh I get the normal output
// If I add this before the script, my output works
putenv('PATH=/usr/local/rvm/rubies/ruby-1.9.3-p547/bin:/usr/bin');
Задача ещё не решена.
Других решений пока нет …