Archivo

Entradas Etiquetadas ‘IIS6’

IIS6+WINDOWS+PHP exec() shell_exec() No funciona.

Miércoles, 8 de julio de 2009 Jordi Sin comentarios

Solución al gran problema con IIS y ejecución de ficheros externos desde php mediante el comando exec() o shell_exec(). Suponiendo que se ha verificado que el safe_mode está en off y que la instalación de php es correcta. Cuando has descartado todas las posibilidades y sigue sin funcionar la función exec() desde tu php….

Suponiendo que trabajas en Windows Server 2003 , si has descartado la posibilidad de trabajar con Apache por los motivos que sean, y estas decidido a usar IIS6 haz el siguiente test final:

Crea un archivo test.php con el siguiente código:

<?php
echo exec ( 'cmd /c echo Test exec funcionando!' );
?>
Seguramente no funcionará. El problema está en la lista de control de acceso del fichero cmd.exe, y para solucionarlo tienes que usar el comando cacls:
Inicio, Ejecutar cmd

cacls %COMSPEC% /E /G %COMPUTERNAME%\IUSR_%COMPUTERNAME%:R

Con esto lo que hacemos es modificar la lista de control de acceso,  para conceder permiso de lectura al ejecutable cmd.exe a la cuenta de usuario anónimo de IIS6.

Ahora vuelve a ejecutar el archivo test.php y por fin funcionará.

Hay que vigilar en el uso de CACLS los permisos que damos para evitar que usuarios sin controlar accedan al sistema.

Para más información acerca de CACLS :

http://support.microsoft.com/kb/162786/es

Categories: IIS6 Tags: , , , ,