我正在尝试通过Ubuntu 14.04上的php在服务器上运行ROS shell程序。我尝试使用系统, exec , shell_exec ,但没有任何反应,我也没有得到任何输出。系统调用如下:
echo shell_exec("/opt/ros/indigo/bin/rosrun gazebo_ros spawn_model -database Part_A -gazebo -model Part_A");
使用系统或 exec 在服务器上通过php运行任何shell命令有什么限制?
我并不关心命令的输出和执行的命令。我认为问题与PHP没有像shell这样的任何PATH的事实有关,所以如果没有指定确切的位置它就找不到任何应用程序。如何让PHP与PATH shell相同?
答案 0 :(得分:1)
问题是apache用户和运行bash命令的环境未正确设置。我按照answer的说明进行操作,但不使用“来源”,而是使用“。”而不是使用 source.bash 文件我使用 source.sh 文件。我还使用 putenv()函数设置了与ros或gazebo有关的所有环境变量。