IIS6+WINDOWS+PHP exec() shell_exec() No funciona.
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!' );
?>
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 :