Итак, я установил 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;
Надеюсь, это поможет.