0

このハウツーに従って、SVN の認証バックエンドとして MySQL を使用するために、Apache 2.4.10 と MySQL 5.5.50 で Debian 8 サーバーをセットアップしようとしました。内部サーバー エラーが発生しましたが、その理由がわかりません。

最初に、ファイル /etc/apache2/conf-available/dbd_mysql.conf を追加しました。

<IfModule mod_dbd.c>
    DBDriver        mysql
    DBDParams       "host=localhost user=THEUSER pass=THEPASS"
    DBDMin          2
    DBDKeep         4
    DBDMax          10
    DBDExptime      300
</IfModule>

もちろんそれに続く

a2enconfig dbd_mysql

基本的に2つの重要な列「ユーザー名」と「パスワード」を持つテーブル「mysql_auth」を含むMySQLデータベース「authdb」をセットアップしました。特定のデータベースには、SELECT 権限を持つ「THEUSER」と呼ぶユーザーがアクセスできます。

次に、/etc/apache2/site-available/svn.conf にサイト固有の構成を追加しました。

DBDParams "dbname=authdb"

<Location /svn/private/>

    DAV svn
    SVNParentPath /svn/private/
    AuthzSVNAccessFile /svn/auth/accesslist_private

    SSLRequireSSL
    AuthUserFile /dev/null
    AuthName "SVN"
    AuthType Basic
    <IfModule mod_authn_dbd.c>

            AuthBasicProvider dbd
            AuthDBDUserPWQuery "SELECT password FROM mysql_auth WHERE username = %s"
            Require valid-user

    </IfModule>
</Location>

このサイト構成は既に有効になっているため、Apache を再起動したところ、ログ ファイルにまったく理解できない何かが見つかりました。

[dbd:error] [pid 15225] (20014)Internal error: AH00629: Can't connect to mysql: Access denied for user 'A LOCAL SYSTEM USER'@'localhost' (using password: NO)
[dbd:error] [pid 15225] (20014)Internal error: AH00633: failed to initialise
[authn_dbd:error] [pid 15225] [client XX.XX.XX.XX:XYZ] AH01653: Failed to acquire database connection to look up user 'some_user'

このエラーは、SVN リポジトリにアクセスしようとするたびに繰り返されます。

これについて本当に奇妙なのは、ログ ファイルに、ここで見つかるとはまったく予想していないユーザーが存在することです。MySQLもApacheも関係ないシステムユーザーです。このユーザーは、SSH でのログインにのみ使用されます。どの点が欠けていますか? どんな助けでも大歓迎です!

4

1 に答える 1

0

最後に問題を理解しました。明らかに、構成ファイルのコンテンツは、サイト定義のコンテンツの後にロードされました。

解決策は次のとおりです。コンテンツを dbd_mysql.conf から /etc/apache2/site-available/svn.conf の -Definition の直前に移動し、conf を無効にし、Apache をリロードすると、すべてが機能しました。

まだ理解していないのは、以前の構成に依存するサイト定義の前に構成が読み込まれると予想していたため、構成に問題がある場合です。

于 2016-09-06T14:13:23.200 に答える