17

I just found this awesome tip in the Apple SE:

Start a quick webserver from any directory:

python -m SimpleHTTPServer 8000

Is there a way to have this parse php scripts, or is this for html-only sites?

2 Answers 2

20

I just came across this answer from StackOverflow.

Basically, python's webserver is not configured to run php files by default, but instead of trying to reconfigure python's web server, you can simply run php's web server, which works almost exactly like python's simplehttpserver, with

php [options] -S <addr>:<port> [-t docroot]

Example:

php -S 127.0.0.1:80 -t .

or simply

php -S 127.0.0.1:80

to use the current working directory.

Edit: Forgot to mention, it appears to be necessary to run this as root if you need to use port 80, but this is not necessary if you specify a higher port number like 8080. Thanks for pointing that out, Mike Houston!

5
  • Apparently, good things do come to those who wait :) Didn't even realize php had that functionality. Thanks!
    – eykanal
    Jul 21, 2014 at 19:19
  • @eykanal It's a new feature in PHP 5.4. :-)
    – ceejayoz
    Jul 22, 2014 at 21:54
  • 1
    You need to run as root if you want to use port 80, but if you choose a higher port number (e.g. 8080) you should be fine as a standard user.
    – Kothar
    Dec 25, 2014 at 20:06
  • Didn't know we have php on OSX by default. This is great. Jan 4, 2015 at 12:08
  • 1
    It is also worth mentioning that the PHP web server is only for development purposes.. It does not have the extended features of say apache.. So for development yes.. For live sites NO!
    – Angry 84
    Jul 30, 2015 at 7:01
4

The SimpleHTTPServer python library, called in that way, will only serve files, and will not interpret PHP (or python, for that matter). However, you can get it to serve whatever you want (including PHP - check out CGIHTTPServer) with some custom python wrapped around it.

3

You must log in to answer this question.

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