1

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のメモには、それが可能であると書かれています。

4

0 に答える 0