Estoy tratando de ejecutar un programa de shell ROS en el servidor a través de php en Ubuntu 14.04. He intentado usar system , exec , shell_exec pero no pasa nada y no obtengo ningún resultado. La llamada al sistema es la siguiente:
echo shell_exec("/opt/ros/indigo/bin/rosrun gazebo_ros spawn_model -database Part_A -gazebo -model Part_A");¿Cuáles son las limitaciones de usar system o exec para ejecutar cualquier comando de shell a través de php en un servidor?
No me importa tanto la salida del comando como su ejecución. Creo que el problema tiene que ver con el hecho de que PHP no tiene ninguna RUTA como Shell, por lo que no puede encontrar ninguna aplicación sin especificar la ubicación exacta. ¿Cómo puedo hacer que PHP tenga el mismo PATH shell?
El problema era que el usuario de apache y el entorno en el que se ejecutan los comandos bash no están configurados correctamente. Seguí las instrucciones de esta respuesta pero en lugar de usar "fuente" usé "." y en lugar de usar el archivo source.bash , usé el archivo source.sh . También configuré todas las variables de entorno que tenían que ver con ros o gazebo usando la función putenv() .