Por exigencias del guión, me he visto obligado a instalar LAMP (Linux Apache Mysql y Php) bajo Windows (es decir: escenas de cama no muy agradables).
La cuestión es que voy descargando, instalando y configurando rutinariamente la última versión disponible de cada cosa sin mayor complicación (ni punto de comparación son el maravilloso sudo apt-get install mysql-server php5-mysql ) hasta que termino.
Muy bien, todo listo y arrancado sin problemas, así que voy a probar el servidor, con lo que escribo un fichero “phpinfo.php” (típico) que contiene:
< ? phpinfo() ? >
Abro la página http://localhost/phpinfo.php y me encuentro con que está completamente en blanco.
Extrañado me pongo a buscar entre los logs, a apagar y a encender el ordenador, a desenchufar y enchufar el router, a llamar al servicio técnico… (bueno, eso es de otra película) hasta que se me ocurre la idea feliz de cambiar el fichero por:
< ? php phpinfo() ? >
El problema estaba en que una de las opciones de configuración del php.ini, short_open_tag (que indica si se permite o no el uso de “< ?” en lugar de la forma completa “< ?php”),y , que hasta ahora había tenido como valor por defecto verdadero (1) , ha pasado a ser por defecto falso (0), con lo que la etiqueta “< ?” ya no es reconocida por el módulo de php.
Esto es para evitar que no se puedan utilizar otras etiquetas que comiencen por ‘< ?’ como por ejemplo ‘< ?xml’ (aunque realmente si se podrían utilizar mediante < ? echo '< ?xml'; ? >
).
La recomendación es la de utilizar siempre la forma completa (< ?php) en el código si se quiere que éste sea portable, ya que cabe la posibilidad de que, en el futuro, el servidor tenga desactivada por defecto la opción short_open_tag.