т.е. заменить Apache на приложение PHP, которое отправило обратно html-файлы при отправке HTTP-запросов на .php-файлы?
Насколько это практично?
Это уже сделано, но если вы хотите знать, насколько это практично, я предлагаю вам установить и протестировать с помощью сканера Apache, чтобы увидеть результаты:
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)
Зачем изобретать колесо? У Apache или любого другого веб-сервера была много работы, вложенная в него множеством квалифицированных людей, чтобы быть стабильной и делать все, что вы хотели, чтобы она делала.
Помимо Nanoweb, существует также стандартный компонент PEAR для создания автономных приложений со встроенным веб-сервером:
http://pear.php.net/package/HTTP_Server
Аналогично, предстоящий выпуск PHP 5.4, скорее всего, будет включать внутренний мини-веб-сервер, который упрощает работу с файлами. https://wiki.php.net/rfc/builtinwebserver
php -S localhost:8000
Просто FYI, PHP 5.4 только что выпущен со встроенным веб-сервером . Теперь вы можете запустить локальный сервер с очень простыми командами, например –
$ cd ~/public_html $ php -S localhost:8000
И вы увидите запросы и ответы вроде этого –
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