2013-08-20 8 views
4

Я пытаюсь ограничить доступ к каталогу с использованием базовой аутентификации с помощью пароля пользователя, хранящегося в базе данных mysql. После запуска службы Apache с включенным mod_authn_dbd он создает около 60 - 70 процессов MySQL, все они имеют команду «sleep». Эти ошибки, однако появляются на протяжении журнала Apache, и в результате этой ошибки аутентификации периодически удается:Ошибка аутентификации Apache с использованием MySQL через mod_authn_dbd

[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-apr-util mysql и драйвером php mysql. Вы можете либо удалить php-mysql, если вы его не используете, либо, если хотите, вы можете понизить apr и apr-util до версии 1.3 или ниже.

Смежные вопросы