URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 6751
[ Назад ]

Исходное сообщение
"авторизация через mysql в apache22"

Отправлено Andrey , 27-Фев-10 09:13 
Хочу авторизацию через 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.



Содержание

Сообщения в этом обсуждении
"авторизация через mysql в apache22"
Отправлено Pahanivo , 27-Фев-10 10:26 
Лог следующий:
[error] (20014)Internal error: DBD: Can't connect to mysql
[error] (20014)Internal error: DBD: failed to initialise

ааа причем тут драйвер когда у тебя can't connect ?
sockstat -l
у тебя ваапще мускул то поднят?


"авторизация через mysql в apache22"
Отправлено Andrey , 27-Фев-10 11:02 
>Лог следующий:
>[error] (20014)Internal error: DBD: Can't connect to mysql
>[error] (20014)Internal error: DBD: failed to initialise
>
>ааа причем тут драйвер когда у тебя can't connect ?
>sockstat -l
>у тебя ваапще мускул то поднят?

конечно mysql поднят и работает


"авторизация через mysql в apache22"
Отправлено Pahanivo , 27-Фев-10 11:28 
>>Лог следующий:
>>[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
в студию


"авторизация через mysql в apache22"
Отправлено Andrey , 27-Фев-10 12:02 
>[оверквотинг удален]
>>>[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 ADDRESS

mysql    mysqld     1083  10 tcp4   *:3306                *:*
mysql    mysqld     1083  12 stream /tmp/mysql.sock


"авторизация через mysql в apache22"
Отправлено Pahanivo , 27-Фев-10 12:45 
гут

DBDParams Directive
Description: Parameters for database connection
Syntax: DBDParams param1=value1[,param2=value2]
Context: server config, virtual host
Status: Extension
Module: mod_dbd

As 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=..."
во-вторых: может попробовать указать порт?


"авторизация через mysql в apache22"
Отправлено Michael , 27-Фев-10 11:28 
DBDParams "host=localhost dbname=form_registration user=... password=..."
для начала попробуйте вручную подключиться к баще с этими параметрами

"авторизация через mysql в apache22"
Отправлено Andrey , 27-Фев-10 12:10 
>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.84

Type '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 -A

Database changed


"авторизация через mysql в apache22"
Отправлено Вячеслав , 24-Апр-12 17:57 
Хоть ответ и запаздалый, но для ищущих пойдёт.

Проблема связана с политиками SELinux. Ошибки валятся в файл /var/log/audit/audit.log, чтобы разрешить доступ к базе данных для скриптов и модулей Apache нужно выполнить следующую команду:
setsebool -P httpd_can_network_connect_db 1
А на будущее:
man httpd_selinux


"авторизация через mysql в apache22"
Отправлено Qwertovsky , 11-Май-12 19:24 
> DBDParams "host=localhost dbname=form_registration user=... password=..."

Попробуйте pass вместо password
DBDParams "host=localhost dbname=form_registration user=... pass=..."