No se ejecuta exec de PHP desde el Navegador
Publicado por llermo (3 intervenciones) el 02/08/2007 10:52:42
Saludos
He expuesto esta duda en el foro de PHP y me han remitido a que seguramente sea un tema de seguridad de Apache. A ver si entre todos, podemos ver qué ocurre.
Os muestro el fuente para que veais que todo está bien escrito:
<?php
//Ejecuta una aplicacion desde simbolo de comandos (MS DOS)
exec ("C:/WINNT/System32/Calc.exe");
?>
Esto lo que hace es sencillamente abrir la calculadora de windows y ya está.
Vale. Pues resulta que este código funciona perfectamente desde la línea de comandos. Si yo escribo:
php basura.php
Se abre la calculadora, perfectamente. Sin embargo si escribo:
http://localhost/basura.php
No se arranca ni de coña.
He probado otras formas: exec, system, fopen, ... todas con el mismo resultado. La que más se ha acercado al resultado es una que consiste en utilizar:
$WshShell = new COM("WScript.Shell");
$WshShell->Run("C:/PRUEBAS/calc.exe", 1, false);
Pero nada. La diferencia entre estas ejecuciones es que con esta ultima la consola se libera de la ejecución, mientras que con exec hasta que no se cierra la calculadora, no vuelves a tener acceso a la consola.
He leido que podía ser problema de seguridad de PHP (SafeMode, disable_functions) pero que ni por esas...
¿Alguien sabe como puedo hacerlo?
Muchas gracias
He expuesto esta duda en el foro de PHP y me han remitido a que seguramente sea un tema de seguridad de Apache. A ver si entre todos, podemos ver qué ocurre.
Os muestro el fuente para que veais que todo está bien escrito:
<?php
//Ejecuta una aplicacion desde simbolo de comandos (MS DOS)
exec ("C:/WINNT/System32/Calc.exe");
?>
Esto lo que hace es sencillamente abrir la calculadora de windows y ya está.
Vale. Pues resulta que este código funciona perfectamente desde la línea de comandos. Si yo escribo:
php basura.php
Se abre la calculadora, perfectamente. Sin embargo si escribo:
http://localhost/basura.php
No se arranca ni de coña.
He probado otras formas: exec, system, fopen, ... todas con el mismo resultado. La que más se ha acercado al resultado es una que consiste en utilizar:
$WshShell = new COM("WScript.Shell");
$WshShell->Run("C:/PRUEBAS/calc.exe", 1, false);
Pero nada. La diferencia entre estas ejecuciones es que con esta ultima la consola se libera de la ejecución, mientras que con exec hasta que no se cierra la calculadora, no vuelves a tener acceso a la consola.
He leido que podía ser problema de seguridad de PHP (SafeMode, disable_functions) pero que ni por esas...
¿Alguien sabe como puedo hacerlo?
Muchas gracias
Valora esta pregunta


0