|
Michael C. Neel
neel at mediapulse.com
Mon Feb 16 08:21:23 EST 2004
I don't know if this is fixed in the pending 3.1.3 or not, but there
seems to be a bug in 3.0.4 with directives...
With a conf like (instead of a snippet, so much is going on that could
be related I'm posting the whole server):
<VirtualHost 192.168.0.1>
ServerName beta.mysite.com
ServerAlias *.beta.mysite.com
DocumentRoot /home/sites/mysite.com/www_beta/htdocs
ScriptAlias /cgi-bin /home/sites/mysite.com/www_beta/cgi-bin
ErrorLog /home/sites/mysite.com/logs/www_beta_error_log
TransferLog /home/sites/mysite.com/logs/www_beta_access_log
Alias /assets /home/sites/mysite.com/assets
ErrorDocument 401 /error.html
ErrorDocument 403 /error.html
ErrorDocument 404 /error.html
ErrorDocument 500 /error.html
<Directory /home/sites/mysite.com/www_beta>
PythonDebug On
PythonPath
['/home/sites/mysite.com/www_beta/modules']+sys.path
PythonOption site_dir /home/sites/mysite.com/www_beta
PythonOption domain_dir /home/sites/mysite.com
PythonOption db_host db_server.mysite.com
PythonOption db_name mysite_beta
PythonOption db_user myuser
PythonOption db_pass mypass
PythonOption developer_email your at email.here
</Directory>
<Location />
Options None
SetHandler python-program
PythonHandler www
#PythonAuthenHandler www
AuthType Basic
AuthName "beta.mysite.com Site Login"
AuthUserFile
/home/sites/mysite.com/authfiles/www_beta_htpasswd
AuthGroupFile /dev/null
require valid-user
</Location>
<Location /cgi-bin>
SetHandler cgi-script
PythonOutputFilter www SKIN
AddOutputFilter SKIN cgi
Options ExecCGI
</Location>
</VirtualHost>
Inside the Location /, all the Python settings are seen from the
Directory block - but the outputfilter sees none of them, and infact
errors with cannot find the www module. If I add to the location block:
PythonPath ['/home/sites/mysite.com/www_beta/modules']+sys.path
It will then find the www module correctly and execute as expected (the
filter just skins the output of a cgi script). Now if I add:
PythonOption db_host db_server.mysite.com
It will see *all* of the PythonOptions from the Directory block, just as
the Location / block does. (this is confirmed by doing a
filter.write(str(filter.req.get_options())) in the output filter).
I'm able to use the above to work around the issue, but I need to know
wether FIlters are supposed to have their own "namespace" of
PythonOptions, or they are intended to inherit them just as a handler
would - I don't want to have to rework code for the next release =p
Mike
|