2013-08-20 23 views
4

我試圖限制訪問使用用戶的基本身份驗證的目錄:存儲在mysql數據庫中的密碼。啓動mod_authn_dbd啓動Apache服務後,它會創建大約60到70個MySQL進程,它們都具有「睡眠」命令。然而,這些錯誤出現在整個Apache日誌,並作爲該錯誤的結果的認證間歇性失敗:通過mod_authn_dbd使用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> 

回答

2

好像你正在運行到Bug #45995 mod_authn_dbd conflict with php+mysql

related post中所述,這是由apache-util-mysql驅動程序和php-mysql驅動程序之間的衝突引起的。如果你不使用它,你可以卸載php-mysql,或者你可以將apr和apr-util降級到1.3或更低版本。