Foros del Web » Programando para Internet » PHP »

Ejecutar comandos de Linux en PHP

Estas en el tema de Ejecutar comandos de Linux en PHP en el foro de PHP en Foros del Web. Hola, Estoy realizando una aplicación en PHP que requiere ejecutar algunos comandos en linux. Los comandos a ejecutar no son los comandos stándard sino los ...
  #1 (permalink)  
Antiguo 13/07/2008, 22:18
 
Fecha de Ingreso: julio-2008
Mensajes: 2
Antigüedad: 16 años, 4 meses
Puntos: 0
Ejecutar comandos de Linux en PHP

Hola,

Estoy realizando una aplicación en PHP que requiere ejecutar algunos comandos en linux. Los comandos a ejecutar no son los comandos stándard sino los de una API que he instalado. Los comandos en si, ejecutados desde la línea de comandos funcionan sin problemas, pero me encuentro que ejecutándolos desde PHP no funciona (no obtengo respuesta alguna).

El PHP se ejecuta bajo un usuario que tiene permisos para ejecutar dicho archivo y el comando sería el siguiente:

exec('ec2-describe-instances',$salida,$ret);

Alguien sabe a que se puede deber este error?

Muchas gracias !

Proph
  #2 (permalink)  
Antiguo 14/07/2008, 01:24
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 8 meses
Puntos: 62
Respuesta: Ejecutar comandos de Linux en PHP

puede ser que no tengas puesto en el path la carpeta donde tienes los comandos, prueba a ejecutarlos poniendo la ruta completa o añadiendo la carpeta donde tienes los ejecutables al path.
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #3 (permalink)  
Antiguo 14/07/2008, 18:11
 
Fecha de Ingreso: julio-2008
Mensajes: 2
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Ejecutar comandos de Linux en PHP

Hola,

Muchas gracias por tu respuesta, pero no, desgraciadamente no es esto. El path contiene el directorio pero también he probado de ejecutarlo usando la ruta completa... (sin suerte). Alguna otra sugerencia? Ya no se que hacer...

Hay alguna forma de tratar con comandos de linux ya sea mediante PHP o algún otro tipo de lenguaje como por ejemplo javascript?

Muchas gracias,

Ivan
  #4 (permalink)  
Antiguo 15/07/2008, 14:56
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 8 meses
Puntos: 62
Respuesta: Ejecutar comandos de Linux en PHP

puede ser cuestion de permisos, ya que al ejecutar desde web utiliza el usuario de apache, puede ser el www-data y esos archivos puede que no tengan permisos de ejecucion de ese usuario en concreto, de todas maneras puedes utilizar shell_exec y guardar el resultado en una variable:
Código PHP:
<?php
$output 
shell_exec('ls -lart');
echo 
"<pre>$output</pre>";
?>
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #5 (permalink)  
Antiguo 16/07/2008, 09:14
Avatar de IngDiego  
Fecha de Ingreso: marzo-2008
Ubicación: Bogotá
Mensajes: 63
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: Ejecutar comandos de Linux en PHP

Hola a mi me pasa lo mismo...pero con esto:

$var01=shell_exec('sudo /sbin/service smb status');
echo"<pre>$var01</pre>";

y tampoco se me ejecuta o me visualiza nada, oye si te sale algo me avisas te lo agredeceria y si te ayudan estare pendiente de la pregunta, pues a mi si me salen cosas como ifconfig, ls -la, who y otros, pero vuelvo y repito con service squid, httpd, smb, status no me visualiza nada, gracias
  #6 (permalink)  
Antiguo 16/07/2008, 12:06
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 8 meses
Puntos: 62
Respuesta: Ejecutar comandos de Linux en PHP

creo que el comando sudo pide contraseña por primera vez, por lo tanto esa sentencia no creo que te valga,lo que tienes que hacer es darle permisos a apache para ejecutar dicho archivo.
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:09.