Intento de ejecutar shell ubuntu con php

Hola amigos, estoy intentando que mi localhost pueda ejecutar desde php algunos comandos de la terminal de ubuntu.

Con mis intentos consegui hacer esto:

<?php
$outPut = shell_exec("ls");
echo "<pre>$outPut</pre>";
?>


Ese funciona bien pero cuando cambio el "ls" por "audacious -p" no hace nada...

Estoy pensando en que puede ser problema de permisos o algo? No se mucho sobre este tema pero me interesa bastante y no lo puedo conseguir

Una ayudita please [beer]
Ten en cuenta que si estás ejecutando ese php en un servidor web (apache o lo que sea) los comandos no se ejecutan con tu usuario. Es como si un usuario diferente se hubiese conectado a tu máquina con su cuenta y hubiese ejecutado el comando en una TTY.

Esto implica dos cosas:
- Permisos, que serán los del usuario con el que corra el php.
- Si lanzas aplicaciones gráficas éstas no se conectarán con tu sesión de X (y de hecho fallarán porque el usuario de php no tendrá ningún display asociado).
kornshell escribió:Ten en cuenta que si estás ejecutando ese php en un servidor web (apache o lo que sea) los comandos no se ejecutan con tu usuario. Es como si un usuario diferente se hubiese conectado a tu máquina con su cuenta y hubiese ejecutado el comando en una TTY.

Esto implica dos cosas:
- Permisos, que serán los del usuario con el que corra el php.
- Si lanzas aplicaciones gráficas éstas no se conectarán con tu sesión de X (y de hecho fallarán porque el usuario de php no tendrá ningún display asociado).



Gracias por la respuesta amigo. ¿Se podria cambiar el usuario del php por el que uso normalmente? Lo que quiero hacer es abrir el reproductor desde la web php.
Tal vez cambiando el usuario con que corre Apache, no estoy seguro. Aun así no te garantiza que vaya a funcionar porque no se si de todas formas se conectará a las X.

Si quieres controlar la música desde una web es más sencillo usar un reproductor como MPD, que se puede controlar desde la línea de comandos.
kornshell escribió:Tal vez cambiando el usuario con que corre Apache, no estoy seguro. Aun así no te garantiza que vaya a funcionar porque no se si de todas formas se conectará a las X.

Si quieres controlar la música desde una web es más sencillo usar un reproductor como MPD, que se puede controlar desde la línea de comandos.


Claro eso es lo que hago. Audacious puede controlarse desde la terminal pero no consigo hacerlo funcionar la verdad. Seguiré investigando :D
4 respuestas