4

mysql データベースに保存されている user:password による基本認証を使用して、ディレクトリへのアクセスを制限しようとしています。mod_authn_dbd を有効にして Apache サービスを開始すると、約 60 から 70 の MySQL プロセスが作成され、それらすべてに「スリープ」コマンドがあります。ただし、これらのエラーは Apache ログ全体に表示され、このエラーの結果、認証が断続的に失敗します。

[Mon Aug 19 21:38:15 2013] [error] (20014)Internal error: DBD: failed to initialise
[Mon Aug 19 21:38:15 2013] [crit] (20014)Internal error: DBD: child init failed!
[Mon Aug 19 21:38:15 2013] [error] (20014)Internal error: DBD: Can't connect to mysql

MySQL 接続制限と DBD パラメータを調整してこれを修正しようとしましたが、成功しませんでした。

これは、機密情報を削除した現在の構成です。

<IfModule mod_authn_dbd.c>
  DBDriver mysql
  DBDParams "host=localhost port=3306 dbname=SITE_USERS user=DBUSER pass=DBPASS"
  DBDExptime 300
  DBDMin 1
  DBDMax 10
</IfModule>

<Directory "/home/mysite/public_html/protected">
  AuthCookieName CookieAuth
  AuthCookieBase64 On
  AuthType Basic
  AuthName "Registered User"
  AuthBasicProvider dbd
  AuthDBDUserPWQuery "SELECT password FROM users WHERE username = %s"
  Require valid-user
  AllowOverride None
  Order allow,deny
  Allow from all
</Directory>
4

1 に答える 1

2

Bug #45995 mod_authn_dbd conflict with php+mysql が発生しているようです。

関連記事で説明したように、これは apache apr-util mysql ドライバーと php mysql ドライバーの間の競合が原因です。php-mysql を使用していない場合はアンインストールできます。使用している場合は、apr および apr-util をバージョン 1.3 以下にダウングレードできます。

于 2013-08-20T03:20:59.120 に答える