Foros del Web » Administración de Sistemas » Unix / Linux »

Comando Shell_exec de PHP en Ubuntu.

Estas en el tema de Comando Shell_exec de PHP en Ubuntu. en el foro de Unix / Linux en Foros del Web. Hola a todos, tengo el siguiente código con el cual le puedo hacer un ping a un pc cualquiera dentro de mi red e identificar ...
  #1 (permalink)  
Antiguo 18/10/2012, 05:48
 
Fecha de Ingreso: junio-2008
Ubicación: Osorno
Mensajes: 155
Antigüedad: 15 años, 10 meses
Puntos: 3
Pregunta Comando Shell_exec de PHP en Ubuntu.

Hola a todos, tengo el siguiente código con el cual le puedo hacer un ping a un pc cualquiera dentro de mi red e identificar si esta o no respondiendo.
Este código funciona bien en windows, pero necesito que funciones en ubuntu, e leído por Internet que hay que dar permisos al usuario de apache "www-data" lo hice pero no se porque sigue sin funcionar mi código me podrían ayudar por favor.

Código PHP:
<?php
$ip = "10.70.1.129";
$output = shell_exec("ping $ip");
if (strpos($output, "recibidos = 0")) {
$estado='Desconectado';
echo $estado;
}
else{
$estado='Conectado';
echo $estado;
}
?>
  #2 (permalink)  
Antiguo 18/10/2012, 07:48
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Comando Shell_exec de PHP en Ubuntu.

No creo que el usuario de apache tenga nada que ver, porque no interviene en el ping.

Quizás no tengas permisos para hacer ping como usuario normal, ¿qué tal si lo ejecutas desde la línea de comandos? Otra posibilidad es que necesites escribir la ruta completa a ping en vez de solamente el nombre (problemas de $PATH)

Es difícil saberlo si no nos pones el error que recibes (de seguro hay alguno, si no lo ves prueba activar error_reporting.


Saludos.
  #3 (permalink)  
Antiguo 18/10/2012, 15:17
 
Fecha de Ingreso: junio-2008
Ubicación: Osorno
Mensajes: 155
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Comando Shell_exec de PHP en Ubuntu.

Hola AlvaroG, muchas gracias por responder, active el error_reporting tal y como tu lo dices péro al ejecutar el codigo no muetra nada, también modifique mi código porque en algunas paginas salia que los comandos Shell_exec abia que enviarlos de otra manera en linux, pero sigo sin tener resultados. ahora mi codigo es el siguiente.

Código PHP:
<?php
ini_set
('display_errors''On');
ini_set('display_errors'1);
set_time_limit(3600);
error_reporting(E_ERROR E_WARNING E_PARSE E_NOTICE);
error_reporting(E_ALL);
error_reporting(-1);
    
$ip "10.70.1.129";
    
$output shell_exec("echo 'clave_root' | sudo -u root -S ping $ip");
    if (
strpos($output"recibidos = 0")) {
    echo  
$estado;
    }else{
    
$estado='Conectado';
        echo  
$estado;

    }
    
?>
ojala alguien me pueda ayudar.
  #4 (permalink)  
Antiguo 19/10/2012, 09:11
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Comando Shell_exec de PHP en Ubuntu.

¿Por qué tenés tantas líneas de display_errors y error_reporting? ¿Qué hace la última (error_reporting(-1))?

Código PHP:
ini_set('display_errors'1);
error_reporting(E_ALL); 
debería ser suficiente, y funcionar. Ni idea de lo que haga error_reporting(-1), podría estar volviendo a ocultar el error.

Tampoco creo que funcione echo "clave" | sudo, sería un problema de seguridad. Para terminar, sudo normalmente requiere la contraseña del usuario que lo ejecuta, no la contraseña de root.

Etiquetas: comando, ip, permisos, php, red, ubuntu
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 09:33.