我正在尝试为用户提供从他们的chroot内部提供的静态文件文件夹。以下代码在其他条件下工作(基本上没有包含DBDocRoot指令)但只是没有按预期执行。 mod_vhost_dbd是否与mod_rewrite不兼容?部分工作在于请求命中正确的python脚本然后执行其他一些东西并启动wsgi应用程序。
使用此代码,rewrite.log中不会记录任何内容。如果您注释掉DBDocRoot指令行的东西被记录,但当然重写规则不起作用,因为$ {ENV:username}是空字符串。从mysql控制台运行时,查询工作非常顺利。
LoadModule vhost_dbd_module /usr/lib/apache2/modules/mod_vhost_dbd.so
DBDExptime 5
<VirtualHost *:80>
ServerAlias *
RewriteEngine On
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 9
DBDriver mysql
DBDParams host=amysqlhost,user=abdbuser,pass=private,dbname=adbname
DBDocRoot "SELECT concat('/mnt/user_storage/webscripts/', username, '/user_script.py'), username from user, userdomain where user.id = userdomain.user_id and userdomain.domain_name = %s" HOSTNAME
RewriteCond /mnt/user_storage/homedirs/%{ENV:username}/var/www/static%{REQUEST_URI} -f
RewriteRule ^/(.*) /mnt/user_storage/homedirs/%{ENV:username}/var/www/static/$1 [L]
</VirtualHost>
是否有其他人成功使用此模块来设置环境变量? mod_vhost_dbd wiki上的注释说它可以完成。