Dabits

サーバサイドから運営まで何でもやるエンジニア系DJ

Redmineのアカウントを使って、Subversionの認証を行う on debian lenny

むちゃくちゃつまづきどころが多かったのでメモ。

mod_auth_mysqlのインストール

普通にコマンド入力してインストールします

www@admin:~$ sudo apt-get install libapache2-mod-auth-mysql

問題が、mod_auth_mysql.so が mod_auth_basic.so より先に読み込めないと、以下のエラーが出ちゃいます。

pcfg_openfile() called with NULL filename

ということで名前を変えて先に起動するようにセット

www@admin:~$ sudo cp /etc/apache2/mods-available/auth_mysql.load /etc/apache2/mods-available/auth_00mysql.load

各種モジュール有効化

www@admin:~$ sudo a2enmod auth_00mysql auth_basic auth_digest

で、設定したいsvnのconfに以下のように記述

<Location "/svn">
DAV svn
SVNParentPath /var/www/svn
     <LimitExcept GET PROPFIND OPTIONS REPORT>
       Auth_MySQL                      On
       Auth_MySQL_Socket               /var/run/mysqld/mysqld.sock
       Auth_MySQL_Host                 localhost
       Auth_MySQL_User                 [redmineのデータベースユーザ名]
       Auth_MySQL_Password             [redmineのデータベースパスワード]
       Auth_MySQL_DB                   [redmineのデータベース名]
       Auth_MySQL_Password_Table       users
       Auth_MySQL_Username_Field       login
       Auth_MySQL_Password_Field       hashed_password
       Auth_MySQL_Encryption_Types     SHA1Sum
       Auth_MySQL_Empty_Passwords      Off
       AuthType Basic
       AuthName "Authorization Realm"
       Require valid-user
     </LimitExcept>
</Location>

AuthMySQLのパラメータ名が違うのと、Encryption_TypesがSHA1Sumなのがコツ。 なんでsha1じゃねーんだ。。ヽ(`Д´)ノウワーン

パラメータ違うと、

Invalid command 'AuthMySQLEnable', perhaps misspelled or defined by a module not included in the server configuration

って出るし、SHA1Sumじゃないと

Unsupported encryption type: sha1

って出る。分かるかい!ヽ(`Д´)ノウワーン

ということで、

www@admin:~$ sudo /etc/init.d/apache2 reload

して無事にsvnが動くのでした。。疲れた。。

参考サイト: Subversion+Apache からredmineの認証を使う うにっくすさんの覚え書き - Apache2 - MySQL認証