1

I started python -m SimpleHTTPServer on one computer on lan and used wget to download php files from it to another. As far as i see, they seem to be downloaded correctly - i got php sources instead of html layout. Why? Is this because this server doesn't execute php? When i was downloading i was worried that i'll download just html layout results instead of php source...

3 Answers 3

4

Yep, a simple server like Python's doesn't execute PHP. Even something like Apache wouldn't execute PHP either, unless you specifically told it to (which involves installing mod_php).

Technically, as far as the web server is concerned, everything is just a downloadable file unless you (the configurator) tell it otherwise.

3

SimpleHTTPServer module just serves files. To parse the php files you need one of the "big" http servers, for example apache or lighttpd, with the proper module (mod_php) or cgi to parse the php code and give you the html output of it

3

This may work :)

#!/usr/bin/env python
from BaseHTTPServer import HTTPServer
from CGIHTTPServer import CGIHTTPRequestHandler
serve = HTTPServer(("",8080),CGIHTTPRequestHandler)
serve.serve_forever()

php file:

#!/usr/bin/php
<? phpinfo(); ?>

dont forget to chmod +x on the php script.

3
  • that's for making php script execute? very interesting, +1...
    – Phil
    Aug 27, 2009 at 19:00
  • Didn't get it. Where do I write this script? I've done a lot of PHP CGI, but no python CGI, so please tell me how to do it. Thanks.
    – 0fnt
    Aug 25, 2010 at 4:55
  • It is possible to instantiate CGIHTTPServer directly, it will execute CGI scripts from the cgi-bin subdirectory by default.
    – halp
    Oct 22, 2010 at 8:51

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .