因此我mod_auth_mysql
通过以下方式安装:
sudo apt-get install libapache2-mod-auth-mysql
sudo a2enmod auth_mysql
sudo /etc/init.d/apache2 restart
我更新了我的.htaccess
文件,使其也能连接到数据库,但不起作用。以下是我在错误日志中得到的信息:
[2013 年 8 月 7 日星期三 16:35:23] [错误] [客户端 xxx.xxx.xxx.xxx] 未找到用户名:/admin/,引荐来源: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
有任何想法吗?
答案1
要查看 auth_mysql 生成了哪些查询,最好 通过 mysql 查询日志记录查询并检查那里到底发生了什么。
我遇到了类似的问题,最终使用以下配置使 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;
希望这会有所帮助。