Назад | Перейти на главную страницу

диагностика ошибок с помощью mod_auth_mysql

Итак, я установил mod_auth_mysql через следующее:

sudo apt-get install libapache2-mod-auth-mysql 
sudo a2enmod auth_mysql 
sudo /etc/init.d/apache2 restart

Я обновил свой .htaccess файл, чтобы он также подключился к БД, но он не работает. Вот что я получаю в журналах ошибок:

[Ср, 07 августа, 16:35:23 2013] [ошибка] [client xxx.xxx.xxx.xxx] имя пользователя не найдено: / admin /, referer: https: //www.domain.tld/

Имя пользователя определенно существует. Если я сделаю SELECT * FROM userTable WHERE userName = 'username' он подходит. Так что я немного растерялся.

Есть ли способ увидеть SQL mod_auth_mysql генерирует?

От моего .htaccess файл...

AuthBasicAuthoritative Off
AuthUserFile /dev/null
Auth_MYSQL On
Auth_MySQL_Host localhost
Auth_MySQL_User username
Auth_MySQL_Password password
Auth_MySQL_Authoritative On
Auth_MySQL_DB "dbname"
Auth_MySQL_Password_Table "apache_auth"
Auth_MySQL_Username_Field username
Auth_MySQL_Password_Field password
Auth_MySQL_Group_Field group
Auth_MySQL_Encryption_Types Plaintext

Любые идеи?

Чтобы узнать, какие запросы создает auth_mysql, лучше всего регистрировать запросы через журнал запросов mysql и осмотрите там, что именно происходит.

У меня были похожие проблемы, finnaly получил auth_mysql, работающий с использованием этой конфигурации:

AuthType                        Basic
AuthName                        "Access Authorization"
AuthUserFile                    /dev/null
AuthGroupFile                   /dev/null
AuthBasicAuthoritative          Off
AuthMYSQL                       On
AuthMySQL_Authoritative         On
AuthMySQL_Non_Persistent        On
AuthMySQL_Socket                /var/run/mysqld/mysqld.sock
AuthMySQL_DB                    my_database_name
AuthMySQL_User                  my_database_user_name
AuthMySQL_Password              my_database_user_pass
AuthMySQL_Group_Table           groups
AuthMySQL_Group_User_Field      user
AuthMySQL_Group_Field           project_group
AuthMySQL_Password_Table        users
AuthMySQL_Username_Field        name
AuthMySQL_Password_Field        pass
AuthMySQL_Empty_Passwords       off
AuthMySQL_Encryption_Types      Crypt_DES

require group admin #requirement on group, valid_user,...

и таблицы mysql:

CREATE TABLE `groups` (
 `user` varchar(48) NOT NULL,
 `project_group` varchar(255) NOT NULL,
 KEY `group` (`project_group`),
 KEY `user` (`user`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `users` (
 `name` varchar(48) NOT NULL,
 `pass` varchar(255) NOT NULL COMMENT 'Crypt_DES',
 `email` varchar(255) NOT NULL,
 `country_limits` varchar(255) DEFAULT NULL,
 PRIMARY KEY (`name`),
 KEY `pass` (`pass`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Надеюсь, это поможет.