Хочу авторизацию через mysql. ось - фрибсд 8.0, apache-2.2.13.cat /usr/local/etc/apache22/httpd.conf | grep dbd
LoadModule authn_dbd_module libexec/apache22/mod_authn_dbd.so
LoadModule dbd_module libexec/apache22/mod_dbd.soКусок конфига:
DBDriver mysql
DBDParams "host=localhost dbname=form_registration user=... password=..."
DBDMin 1
DBDKeep 2
DBDMax 10
DBDExptime 60<Directory "/usr/local/home">
Dav On
Order Allow,Deny
Allow from all
CharsetDefault UTF-8
AuthType Basic
AuthName "WebDAV"
AuthBasicProvider dbd
Require valid-user# mod_authn_dbd SQL query to authenticate a user
AuthDBDUserPWQuery "SELECT password FROM users WHERE login = %s"
<Directory>Лог следующий:
[error] (20014)Internal error: DBD: Can't connect to mysql
[error] (20014)Internal error: DBD: failed to initialise
При установке апача из портов галочку на пункте MYSQL ставил. Поисковик пока толком не просветил.
На сайте httpd.apache.org касательно модуля mod_dbd.so есть в самом внизу фраза:Selects an apr_dbd driver by name. The driver must be installed on your system (on most systems, it will be a shared object or dll). For example, DBDriver mysql will select the MySQL driver in apr_dbd_mysql.so.
Поискал его:
find / -name apr_dbd_mysql.so
/usr/local/lib/apr-util-1/apr_dbd_mysql.so
То есть в системе он присутствует
Помогите плиз завести авторизацию в апач, используя mysql.
Лог следующий:
[error] (20014)Internal error: DBD: Can't connect to mysql
[error] (20014)Internal error: DBD: failed to initialiseааа причем тут драйвер когда у тебя can't connect ?
sockstat -l
у тебя ваапще мускул то поднят?
>Лог следующий:
>[error] (20014)Internal error: DBD: Can't connect to mysql
>[error] (20014)Internal error: DBD: failed to initialise
>
>ааа причем тут драйвер когда у тебя can't connect ?
>sockstat -l
>у тебя ваапще мускул то поднят?конечно mysql поднят и работает
>>Лог следующий:
>>[error] (20014)Internal error: DBD: Can't connect to mysql
>>[error] (20014)Internal error: DBD: failed to initialise
>>
>>ааа причем тут драйвер когда у тебя can't connect ?
>>sockstat -l
>>у тебя ваапще мускул то поднят?
>
>конечно mysql поднят и работаетsockstat -l
в студию
>[оверквотинг удален]
>>>[error] (20014)Internal error: DBD: failed to initialise
>>>
>>>ааа причем тут драйвер когда у тебя can't connect ?
>>>sockstat -l
>>>у тебя ваапще мускул то поднят?
>>
>>конечно mysql поднят и работает
>
>sockstat -l
>в студиюsockstat -l
USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESSmysql mysqld 1083 10 tcp4 *:3306 *:*
mysql mysqld 1083 12 stream /tmp/mysql.sock
гутDBDParams Directive
Description: Parameters for database connection
Syntax: DBDParams param1=value1[,param2=value2]
Context: server config, virtual host
Status: Extension
Module: mod_dbdAs required by the underlying driver. Typically this will be used to pass whatever cannot be defaulted amongst username, password, database name, hostname and port number for connection.
во-первых: я не вижу чтобы в доке параметры брались в ковычки
DBDParams "host=localhost dbname=form_registration user=... password=..."
во-вторых: может попробовать указать порт?
DBDParams "host=localhost dbname=form_registration user=... password=..."
для начала попробуйте вручную подключиться к баще с этими параметрами
>DBDParams "host=localhost dbname=form_registration user=... password=..."
>для начала попробуйте вручную подключиться к баще с этими параметрами#mysql -h localhost -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2735
Server version: 5.0.84 FreeBSD port: mysql-server-5.0.84Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use form_registration;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
Хоть ответ и запаздалый, но для ищущих пойдёт.Проблема связана с политиками SELinux. Ошибки валятся в файл /var/log/audit/audit.log, чтобы разрешить доступ к базе данных для скриптов и модулей Apache нужно выполнить следующую команду:
setsebool -P httpd_can_network_connect_db 1
А на будущее:
man httpd_selinux
> DBDParams "host=localhost dbname=form_registration user=... password=..."Попробуйте pass вместо password
DBDParams "host=localhost dbname=form_registration user=... pass=..."