mod_python: what's going on here?

Steve Holden steve at holdenweb.com
Mon Sep 5 02:20:50 EDT 2005


Robert J. Hansen wrote:
> I'm not entirely certain comp.lang.python is the proper newsgroup for
> mod_python questions, but "comp.lang.python.web" doesn't seem to exist,
> so... my apologies in advance if this is considered off-topic.
> 
> I'm attempting to get mod_python 3.1.4/python 2.4.1 working on Apache
> 2.0.54 running under OS X.  Apache was compiled from source with a
> simple
> 
> /configure --enable-so --with-mpm=worker
> 
> ... followed by the make/make install dance.  mod_python was almost as
> simple:
> 
> ./configure --with-apxs=/usr/local/apache2/bin/apxs \
>   --with-python=/sw/bin/python2.4
> 
> ... followed by the requisite dance.
> 
> At this point, all's well.  The following bits were added to
> httpd.conf:
> 
> LoadModule python_module /usr/local/apache2/modules/mod_python.so
> <Directory "/usr/local/apache2/htdocs/test">
>        AddHandler mod_python .py
>        PythonHandler mptest
>        PythonDebug on
> </Directory>
> 
> ... one apachectl restart later, Apache was running fine and serving
> pages.  The version string at the bottom of some static pages listed
> mod_python as being present, so I reckoned that meant it was all
> installed all right.  However, any attempt to serve a mod_python
> script, mptest.py, from the test subdirectory results in a 500 Internal
> Server Error.  Nothing gets written to error_log, but access_log
> confirms the 500 was sent.
> 
> Does anyone have any experience with mod_python on OS X/Apache
> environments?  Can anyone shed some light on 500s that don't leave
> traces in the error logs, or what precise incantation I need to make
> mod_python start serving up scripts?
> 
> Also, if this is not appropriate for this group, does anyone know of a
> Python group for which this is more appropriate?
> 
You will probably get help on this newsgroup, but the mod-python list is 
pretty helpful, and there's a Python Web-Sig mailing list you can find 
out about at http://www.python.org/sigs/ if you want.

I'm afraid I am new to OS X (and 3,000 miles away from my Mac Mini), so 
I can't be any help directly with any Mac-dependent issues. But when I 
first started using mod_python someone (I'm afraid I don't remember who) 
advised me to use SetHandler rather than AddHandler.

Looking at my Windows httpd.conf (2.0.52, so close enough to yours) I see

#########################################################################
#									#
#	MOD_PYTHON TESTING AREA						#
#									#
#########################################################################
#
#	Request handler
#
<Directory "C:/apache/htdocs/modpy">
     AllowOverride FileInfo
     SetHandler mod_python
     PythonHandler mptest
     PythonDebug On
</Directory>
#
#	Filter handler
#
<Directory "C:/Apache/htdocs/test">
     AllowOverride All
     SetHandler mod_python
     #PythonHandler mptest1
     #PythonFixupHandler mptest1
     PythonLogHandler mptest1
     PythonOutputFilter mptest1 CAPITALIZE
     AddOutputFilter CAPITALIZE .txt .py
     PythonDebug On
</Directory>

This might at least be enough to start generating sensible error messages.

One further possibility is that Apache is using an older Python by 
default: byte codes vary from version to version, so something horrible 
might be happening as mod_python tries to execute, but that seems a bit 
far-fetched when you've got so far. I seem to remember that OS X doesn't 
supply 2.4 by default: have you added it or overwritten the default 
Python? Just another base to cover ...

regards
  Steve
-- 
Steve Holden       +44 150 684 7255  +1 800 494 3119
Holden Web LLC             http://www.holdenweb.com/




More information about the Python-list mailing list