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...

Phil
  • 1,969
  • 6
  • 29
  • 33

3 Answers3

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.

David Z
  • 5,475
  • 2
  • 25
  • 22
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

kargig
  • 314
  • 1
  • 2
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.

rkthkr
  • 8,618
  • 28
  • 38
  • that's for making php script execute? very interesting, +1... – Phil Aug 27 '09 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 '10 at 04:55
  • It is possible to instantiate CGIHTTPServer directly, it will execute CGI scripts from the cgi-bin subdirectory by default. – halp Oct 22 '10 at 08:51