Servidor web PHP en PHP?

es decir, para reemplazar Apache con una aplicación PHP que devolvió archivos html cuando se envían solicitudes http para archivos .php?

¿Qué tan práctico es esto?

Ya se ha hecho, pero si desea saber qué tan práctico es, le sugiero que instale y pruebe con el banco Apache para ver los resultados:

http://nanoweb.si.kz/

 Edit, A benchmark from the site: Server Software: aEGiS_nanoweb/2.0.1-dev Server Hostname: si.kz Server Port: 80 Document Path: /six.gif Document Length: 28352 bytes Concurrency Level: 20 Time taken for tests: 3.123 seconds Complete requests: 500 Failed requests: 0 Broken pipe errors: 0 Keep-Alive requests: 497 Total transferred: 14496686 bytes HTML transferred: 14337322 bytes Requests per second: 160.10 [#/sec] (mean) Time per request: 124.92 [ms] (mean) Time per request: 6.25 [ms] (mean, across all concurrent requests) Transfer rate: 4641.91 [Kbytes/sec] received Connnection Times (ms) min mean[+/-sd] median max Connect: 0 0 1.9 0 13 Processing: 18 100 276.4 40 2739 Waiting: 1 97 276.9 39 2739 Total: 18 100 277.8 40 2750 Percentage of the requests served within a certain time (ms) 50% 40 66% 49 75% 59 80% 69 90% 146 95% 245 98% 449 99% 1915 100% 2750 (last request) 

¿Por qué reinventar la rueda? Apache o cualquier otro servidor web ha tenido mucho trabajo puesto en él por mucha gente capacitada para estar estable y hacer todo lo que usted quería que hiciera.

Además de Nanoweb, también hay un componente PEAR estándar para crear aplicaciones independientes con un servidor web incorporado:
http://pear.php.net/package/HTTP_Server

Del mismo modo, es probable que la próxima versión de PHP 5.4 incluya un mini servidor web interno que facilita el servicio simple de archivos. https://wiki.php.net/rfc/builtinwebserver

 php -S localhost:8000 

Solo para su información, PHP 5.4 se acaba de lanzar con un servidor web incorporado . Ahora puede ejecutar un servidor local con comandos muy simples como:

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

Y verás las solicitudes y respuestas así.

 PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011 Listening on localhost:8000 Document root is /home/me/public_html Press Ctrl-C to quit. [Thu Jul 21 10:48:48 2011] ::1:39144 GET /favicon.ico - Request read [Thu Jul 21 10:48:50 2011] ::1:39146 GET / - Request read [Thu Jul 21 10:48:50 2011] ::1:39147 GET /favicon.ico - Request read [Thu Jul 21 10:48:52 2011] ::1:39148 GET /myscript.html - Request read [Thu Jul 21 10:48:52 2011] ::1:39149 GET /favicon.ico - Request read