El servidor web incluido en PHP 5.4

Posted by victor on January 27th, 2013
php-logoEntre las muchas mejoras que introdujo PHP 5.4, una de ellas fue la inclusión de serie de un servidor web embebido al estilo Python built in server. La intención es permitir realizar pruebas de nuestros proyectos y no es apto para entornos de producción. El servidor resuelve las peticiones de forma secuencial y es posible indicar el root document o directorio de trabajo. Además, también podemos proporcionar un script que hará de enrutador para las peticiones. La forma más sencilla de iniciar el servidor es la siguiente (desde la consola): $ php -S localhost:8000 El comando anterior levanta el servidor en el puerto 8000 y toma como root document el directorio actual:
PHP 5.4.11 Servidor de desarrollo iniciado en Domingo Enero 27 12:27:01 2013
Escuchando en localhost:8000
La raíz de documentos es /var/www-interno
Presione Ctrl-C para salir
Si queremos usar otro directorio de trabajo debemos añadir la opción -t: $ php -S localhost:8000 -t /home/yosymfony/html-publico El servidor es capaz de devolver el MIME type adecuado para los siguientes recursos: .css, .gif, .htm, .html, .jpe, .jpeg, .jpg, .js, .png, .svg, y .txt. Desde la versión 5.4.4 en adelante también soporta .htm y .svg. Si quisieramos agregar un nuevo tipo no soportado, usaríamos un script enrutador que se lanza con cada petición:
// router.php
$path = pathinfo($_SERVER["SCRIPT_FILENAME"]);
if ($path["extension"] == "ogg") {
    header("Content-Type: video/ogg");
    readfile($_SERVER["SCRIPT_FILENAME"]); // Se devuelve el contenido del fichero
}
else {
    return FALSE; // Continúa resolviéndose la petición
}
Y ahora solo queda levantar el servidor con los nuevos parámetros: $ php -S localhost:8000 -t /home/yosymfony/html-publico router.php   Más información: Servidor web embebido en PHP

Comments

comments powered by Disqus