Я пытаюсь запустить программу оболочки ROS на сервере через php на Ubuntu 14.04. Я пытался использовать система, Exec, shell_exec но ничего не происходит, и я не получаю вывод. Системный вызов выглядит следующим образом:
echo shell_exec("/opt/ros/indigo/bin/rosrun gazebo_ros spawn_model -database Part_A -gazebo -model Part_A");
Каковы ограничения использования система или же Exec запустить любую команду оболочки через php на сервере?
Меня не волнует как вывод команды, так и ее выполнение. Я думаю, что проблема связана с тем фактом, что PHP не имеет никакой PATH, как оболочка, поэтому он не может найти никаких приложений без указания точного местоположения. Как я могу сделать PHP себе такой же оболочка PATH?
Проблема заключалась в том, что пользователь apache и среда, в которой выполняются команды bash, настроены неправильно. Я следовал инструкциям из этого ответ но вместо «источника» я использовал «.» и вместо того, чтобы использовать source.bash файл, который я использовал source.sh файл. Я также установил все переменные окружения, которые были связаны с рос или беседкой, используя PutEnv () функция.
Других решений пока нет …