|
Jorey Bump
list at joreybump.com
Sat Feb 26 01:01:32 EST 2005
Jorey Bump wrote:
> And possibly in the category of stupid apache/mod_python tricks:
>
> <Directory /var/www>
> <FilesMatch "foo">
> SetHandler python-program
> PythonHandler mod_python.publisher
> PythonDebug On
> </FilesMatch>
> </Directory>
On a practical note, this approach shows promise for "registering" your
published modules. For example, let's assume you have some modules
named holygrail.py, lifeofbrian.py and meaningoflife.py. Your config
could include this:
<FilesMatch "holygrail|lifeofbrian|meaningoflife">
The names are sophisticated enough to easily avoid accidental collisions
with other file names/types, and you can place the modules anywhere
within the specified directory, to any depth.
But the real fun begins when you use multiple directives to register
modules to specific subinterpreters (to support multiple developers, for
example):
<Directory /var/www>
PythonInterpPerDirective On
<FilesMatch "holygrail|lifeofbrian|meaningoflife">
SetHandler python-program
PythonHandler mod_python.publisher
PythonDebug On
PythonPath "['/home/monty/python'] + sys.path"
</FilesMatch>
<FilesMatch "jabberwocky|timebandits|brazil">
SetHandler python-program
PythonHandler mod_python.publisher
PythonDebug On
PythonPath "['/home/gilliam/python'] + sys.path"
</FilesMatch>
</Directory>
A configuration like this allows multiple developers to work somewhat
independently, yet reduces the risk of namespace collisions when
importing custom modules. Because these directives can be included in a
.htaccess file instead of a <Directory> container, coordination among
developers can be accomplished fairly easily.
Is there any way to reliably kill a child process associated with a
specific subinterpreter, so a developer could force his own
subinterpreter to restart without restarting apache?
|