分享
 
 
 

mod_auth_mysql 在 Apache 2.0 下的安装和使用

王朝mysql·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

mod_auth_mysql 是一款很好的基于数据库对 Apache 用户认证的模块,目前已经加入 Apache 模块库,而且最新版本支持 Apache 2.0。

这款软件已经在 FreeLAMP.com 上实施,现把实施过程作简要介绍。

这款软件的作者是 Ueli Heuer,其主页位于

http://www.heuer.org/mod_auth_mysql/.

安装说明十分简单,其英文原文可以看下面的连接:

http://www.heuer.org/mod_auth_mysql/INSTALL

这个模块目前只支持 Apache 2.0 ,安装采用 DSO 方式:

假设 Apache 2.0.36 安装于 /opt/httpd-2.0.36 ,那么运行的命令是:

/opt/httpd-2.0.36/bin/apxs -c -L /usr/local/mysql/lib/mysql mod_auth_mysql.c

/opt/httpd-2.0.36/bin/apxs -i mod_auth_mysql.la

你只要下载主页上的那个 mod_auth_mysql.c 就可以了。

然后在你的 MySQL 数据库上建立一个新的数据库,实际上使用原来存在的数据库也没有关系,只要新建的表名不和原来的表名重复就可以,但是为了安全考虑,建议建立单独的数据库。

建立数据库后,可以把下载主页上的那个 htpasswd.sql 导入到新的数据库,这个 SQL 文件建立了三个表:

user_info:用户信息

user_group:用户的组

host_info:主机信息

#

# Table structure for table `host_info`

#

# the fields created, updated, and isadmin are not needed by the module!

# they may help you creating a php-htpasswd frontend

#

CREATE TABLE host_info (

id int(14) NOT NULL auto_increment,

host char(255) NOT NULL default '',

host_group int(14) NOT NULL default '0',

created timestamp(14) NOT NULL,

updated timestamp(14) NOT NULL,

PRIMARY KEY (id),

KEY host (host)

) TYPE=MyISAM PACK_KEYS=1;

# --------------------------------------------------------

#

# Table structure for table `user_group`

#

CREATE TABLE user_group (

id int(14) NOT NULL auto_increment,

user_name char(50) NOT NULL default '',

user_group char(20) NOT NULL default '',

host_group int(14) default NULL,

created timestamp(14) NOT NULL,

updated timestamp(14) NOT NULL,

PRIMARY KEY (id),

KEY host_group (host_group),

KEY user_group (user_group)

) TYPE=MyISAM PACK_KEYS=1;

# --------------------------------------------------------

#

# Table structure for table `user_info`

#

CREATE TABLE user_info (

id int(14) NOT NULL auto_increment,

user_name char(30) NOT NULL default '',

user_passwd char(20) NOT NULL default '',

host_group int(14) NOT NULL default '0',

created timestamp(14) NOT NULL,

updated timestamp(14) NOT NULL,

isadmin tinyint(4) NOT NULL default '0',

PRIMARY KEY (id),

UNIQUE KEY user_name (user_name,host_group)

) TYPE=MyISAM PACK_KEYS=1;

从以上三个表的结构,我们可以看到,其中最主要的就是 host_group 的一致,

user_info 的 host_group 和 host_info 的 host_group 要对应起来,user_info 的其他字段,例如 isadmin,created,updated 等都还没有使用,用于以后扩展。

因此,一个简单的插入数据的例子就是:

insert into host_info (host) values ("www.freelamp.com");

insert into user_info (user_name,user_passwd) values ("albertxu",encrypt("my_log_passwd"));

然后修改 httpd.conf 加入:

LoadModule auth_mysql_module modules/mod_auth_mysql.so

AuthType Basic

AuthMySQLHost localhost ;连接数据库的主机地址,一般用本地连接,所以为 localhost

AuthMySQLUser apache_auth ;连接数据库的用户名

AuthMySQLPassword my_secret_pass ;连接数据库的口令

AuthMySQLDB apache ;数据库的名字

AuthSQLAuthoritative On

AuthSQLKeepAlive off

需要认证的目录下的 .htaccess 文件,要把 AuthUserFile 这项去掉。其他可以保持不变。

Authname "FreeLAMP.com Log Detail"

Authtype Basic

Require user albertxu

这样一个可以针对大型虚拟主机的认证系统就建立起来了。

最后需要特别说明的是:user_info 表中的 user_passwd 字段是采用 mysql 的 encrypt() 加密的,而不是 password() ,更不是明码。这个在文档上面没有说明,我电子邮件给 Ueli Heuer 先生,便很快得到了回答:

======================================================================

On Mon, 27 May 2002 23:20:30 +0800

"Xu" wrote:

Hi Albert,

The problem are the clertext passwords in the db. You need to encrypt this with the

encrypt() function from mysql or with the unix password crypt() function.

Did you check the errorlog form apache? mod_auth_mysql writes some hints if somethings

fails (e.g. dbconenction fails, host is not in the db, and so on

as an example:

[Mon May 27 17:52:04 2002] [error] [client 192.168.1.39] password mismatch on

deadeye.maillink.ch: http://test:versuch@deadeye.heuer.org/

Hope it helps

Greetz

Ueli

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有