ROS catkin_init_workspace не найден, когда порожден как процесс PHP

Позвольте мне уточнить: я пытаюсь запустить catkin_init_workspace из PHP, используя proc_open следующим образом:

touch( "$dir/stderr.txt" ); chmod( "$dir/stderr.txt", 0755 ); $fp = fopen("$dir/stderr.txt", "w"); fclose($fp); $descr = array( 0 => array("pipe", 'r'), // stdin 1 => array("pipe", 'w'), // stdout 2 => array("file", "$dir/stderr.txt", "w")to file ); $pid = proc_open( "catkin_init_workspace", $descr, $pipes, $dir ); if (!is_resource( $pid) ) throw new Exception ( "`catkin_init_workspace` exec failed"); else if ( is_resource( $pid ) ) { fclose( $pipes[1] ); $retval = proc_close( $pid ); } 

Вышеупомянутый код работал с CMake, с GCC и другими приложениями. Однако, когда я пробую это с catkin_init_workspace, я получаю:

 sh: 1: catkin_init_workspace: not found 

Теперь, насколько я понимаю, catkin_init_workspace является скриптом python по адресу:

 /opt/ros/indigo/bin/catkin_init_workspace 

Я попытался использовать его напрямую, используя абсолютный путь, но это не сработало.

Как пользователь все работает нормально. Но не тогда, когда я выполняю через www-данные, настройку пользователя / группы для Apache2.

    Учебное пособие по ROS объясняет, что мне нужно настроить переменные среды, запустив

     source /opt/ros/indigo/setup.bash 

    Который я также пытался делать через PHP, прямо перед тем, как я вызываю proc_open, но безрезультатно. Я понимаю, что мне нужно правильно настроить переменные среды.

    дела

    экспорт | grep ROS

    показывает:

     declare -x ROSLISP_PACKAGE_DIRECTORIES="/home/alex/Projects/ros_ws/devel/share/common-lisp" declare -x ROS_DISTRO="indigo" declare -x ROS_ETC_DIR="/opt/ros/indigo/etc/ros" declare -x ROS_MASTER_URI="http://localhost:11311" declare -x ROS_PACKAGE_PATH="/home/alex/Projects/ros_ws/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks" declare -x ROS_ROOT="/opt/ros/indigo/share/ros" declare -x ROS_TEST_RESULTS_DIR="/home/alex/Projects/ros_ws/build/test_results" 

    Являются ли те переменные среды, которые мне нужно настроить для www-data, чтобы правильно вызвать catkin?

    Если да, то как мне передать массив env в proc_open PHP, эти переменные?

    Related of "ROS catkin_init_workspace не найден, когда порожден как процесс PHP"