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>