I've been playing around with my own webserver (Apache+Ubuntu) and python. From what I've seen there are 3(?) main ways of doing this:
- Apache configured to handle .py as cgi
- Apache configured to use mod_python that is now outdated(?)
- Apache configured to use mod_wsgi
I recall reading that Django prefers mod_wsgi, and I'm kinda interested in learning Django (I've heard their official tutorial is rather excellent).
What is the 'recommended' setup? I presume there's really no reason to use mod_python anymore, but what are the differences between handling .py as cgi, and mod_wsgi? Is it possible to run them in tandem (and would you want to?), or is that just a ridiculous idea and I should stop thinking such crazy things?
I guess really I'm just looking for a primer on Apache+Python (links are also good) - nothing I've come across so far has been terribly informative - they were mainly just how-to's.
mod_python is dead, so using mod_python probably isn't a good idea for new projects. Personally, I prefer to use mod_wsgi over CGI (or FastCGI). It's dead-simple to set up, and much more efficient.
Don't use CGI. It's inefficient. Spawning a new process for each request. No thanks
Dont't spend much time with mod_python
Use mod_wsgi.
If you want to write CGI-like stuff without a framework, use mod_wsgi anyway. The WSGI standard (PEP 333) is essential for creating web applications in an easy, interchangeable, reusable, plug-and-playable way.
I would go with mod_wsgi too.
If you want a deeper understanding about the question, have a look at this:
- Apache, FastCGI and Python, by Ferry Boender
Good stuff!
Mod_Python
mod_python is alive and well. See here: http://modpython.org/. Furthermore, here's the documentation for the latest release, 3.5.0, with support for Python 3: http://modpython.org/live/current/modpython.pdf. Currently I use it.
Mod_WSGI
mod_wsgi thinks of itself as not to be used barebones, but with a framework, such as Flask.