0

i.e to replace Apache with a PHP application that sent back html files when http requests for .php files are sent?

How practical is this?

20
  • 1
    first result in google: Nanoweb is an HTTP server written in PHP nanoweb.si.kz Commented May 25, 2011 at 22:26
  • 7
    How practical is this? - only for self-learning. Commented May 25, 2011 at 22:27
  • 2
    As OZ_ said, it's ok for learning, but for real world use it's not practical. There are many limitations to PHP, you can't really compare its abilities with languages such as C/C++ when it comes to creating a multithreaded application that has to handle lots of data and serve everything fast. Commented May 25, 2011 at 22:31
  • Sending back HTML when HTTP requests for PHP files is exactly what the existing non-PHP webservers (e.g. Apache, lighthttpd, nginx, IIS, etc.) already do... Commented May 25, 2011 at 22:34
  • 1
    Sorry Alix, I'm still not sure I'm getting your point. What do you mean that the language acts as the server? Node.js is a C/C++ server running javascript applications, which still seems unconnected to the question of a PHP server running PHP applications; perhaps you can explain further? Commented May 26, 2011 at 2:41

3 Answers 3

4

It's already been done but if you want to know how practical it is, then i suggest you install and test with Apache bench to see the results:

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)
Sign up to request clarification or add additional context in comments.

Comments

2

Apart from Nanoweb, there is also a standard PEAR component to build standalone applications with a built-in webserver:
http://pear.php.net/package/HTTP_Server

Likewise the upcoming PHP 5.4 release is likely to include an internal mini webserver which facilitates simple file serving. https://wiki.php.net/rfc/builtinwebserver

php -S localhost:8000

1 Comment

And it will come as no particular surprise to most people here that the build in webserver is written in C, not PHP. That's a pretty nifty feature that they're adding though :)
0

Just FYI, PHP 5.4 just released with in-built webserver. Now you can run a local server with very simple commands like -

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

And you'll see the requests and responses like this -

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.