downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Configuración INI> <Consola interactiva
[edit] Last updated: Fri, 25 May 2012

view this page in

Servidor web embebido

Desde PHP 5.4.0, la CLI SAPI provee un servidor web embebido.

Este servidor web está diseñado solamente para propósitos de desarrollo, y no debería ser utilizado en ambientes en producción.

Las peticiones de URI se sirven desde el actual directorio de trabajo donde PHP se inició, a menos que la opción -t sea utilizada para especificar una raíz de documentos explícita.

Si una petición de URI no especifica un fichero, entonces index.php o index.html se devuelven en el directorio proporcionado. Si ninguno de los ficheros existen, entonces se devuelve una respuesta con código 404.

Si un fichero PHP proporcionado en la línea de comandos cuando el servidor web es iniciado este es tratado como un script "enrutador" por el servidor web. El script es ejecutado al inicio de cada petición HTTP. Si este script devuelve FALSE, entonces el recurso requerido es devuelto tal cual está. De otra manera la salida del script es devuelta al navegador.

Ejemplo #1 Iniciando el servidor web

$ cd ~/public_html
$ php -S localhost:8000

La terminal mostrará:

PHP 5.4.0 Servidor de desarrollo iniciado en Jueves Julio 21 10:43:28 2011
Escuchando en localhost:8000
La raíz de documentos es /home/usuario/html_público
Presione Ctrl-C para salir

Después de una petición de una URI para http://localhost:8000/ y http://localhost:8000/mi_script.html la terminal mostrará algo similar a:

PHP 5.4.0 Servidor de desarrollo iniciado en Jueves Julio 21 10:43:28 2011
Escuchando en localhost:8000
La raíz de documentos es /home/usuario/html_público
Presione Ctrl-C para salir.
[Thu Jul 21 10:48:48 2011] ::1:39144 GET /favicon.ico - Petición leída
[Thu Jul 21 10:48:50 2011] ::1:39146 GET / - Petición leída
[Thu Jul 21 10:48:50 2011] ::1:39147 GET /favicon.ico - Petición leída
[Thu Jul 21 10:48:52 2011] ::1:39148 GET /mi_script.html - Petición leída
[Thu Jul 21 10:48:52 2011] ::1:39149 GET /favicon.ico - Petición leída

Ejemplo #2 Iniciando con una raíz de documentos específica

$ cd ~/html_público
$ php -S localhost:8000 -t foo/

La terminal mostrará:

PHP 5.4.0 Servidor de desarrollo iniciado en Jueves Julio 21 10:50:26 2011
Escuchando en localhost:8000
La raíz de documentos es /home/usuario/html_público/foo
Presione Ctrl-C para salir

Ejemplo #3 Utilizando un Script enrutador

Las peticiones a las imágenes se mostrarán, pero las peticiones a ficheros HTML mostrarán "Bienvenido a PHP"

<?php
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/'$_SERVER["REQUEST_URI"]))
    return 
false;    // servir la petición tal cual es.
else {
    echo 
"<p>Bienvenido a PHP</p>";
}

?>
$ php -S localhost:8000 router.php

Después de varias peticiones de URI la terminal mostrará algo similar a:

PHP 5.4.0 Servidor de desarrollo iniciado en Jueves Julio 21 10:53:19 2011
Escuchando en localhost:8000
La raíz de documentos es /home/usuario/html_público
Presione Ctrl-C para salir.
[Thu Jul 21 10:53:45 2011] ::1:55801 GET /mi_logo.jpg - Petición leída
[Thu Jul 21 10:53:52 2011] ::1:55803 GET /abc.html - Petición leída
[Thu Jul 21 10:53:52 2011] ::1:55804 GET /favicon.ico - Petición leída


add a note add a note User Contributed Notes Servidor web embebido
Stefano F. Rausch 09-Mar-2012 12:25
To develop / deploy websites in 3 stages, i.e. ( 1 ) locally, ( 2 ) with an access controlled dedicated beta / test website in the www and ( 3 ) the production site, you can have ( 1 ) & ( 2 ) using the same domain name - port free - as follows:

- look up the IP address of the beta.web.site

and edit the hosts file to reflect:

- <IP> beta.web.site
- 127.0.0.1 beta.web.site

Start the built-in web server to work locally with:

- sudo php -S beta.web.site:80

and just hit http://beta.web.site as usual. Switching back and forth between ( 1 ) and ( 2 ) is as easy as telling the php engine not to fake a server any more :) Nice!

Happy PHP'ing.

 
show source | credits | stats | sitemap | contact | advertising | mirror sites