请选择 进入手机版 | 继续访问电脑版
贠老师培训群:150322713    贠老师QQ:767708506

贠老师office培训-excel学习网

 找回密码
 立即注册
点击咨询贠老师
查看: 242|回复: 11

[mysql] Apache与MySQL整合实现基本身份认证

[复制链接]

607

主题

604

帖子

1909

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1909
发表于 2016-2-21 22:40:20 | 显示全部楼层 |阅读模式

Apache来实现基本的用户身份认证有很多种方式,比如最常见的txt文本和DBM格式,但在负载很重的server上-这些都不是理想的方法,文本的形式是基于平面的,性能很差而且也不安全;DBM好些但在千或万级用户时还是力不从心,于是用database做后台存储则是很好的方法-比平面搜索更有效而且安全,用户口令以DES加密形式存储在数据库的表中。

这种实现要归功于Apache本身出色的模块化结构--以及开放的DSO方式,可以使开发人员完成大量的第三方模块,并扩充Apache的功能。我在本文中只写了用Mysql做后台存储--此外还可用Postgresql,Oracle等来完成,原理一样-都是用各自的模块。

让我们开始吧--先去modules.apache.org找到mod_auth_mysql--会有两个我们要用DSO那个-事实上直接去ftp://ftp.kcilink.com/pub/下一个mod_auth_mysql.c.gz就行-好-把它解开是一个mod_auth_mysql.c-好-我们用apxs来生成DSO模块(前题是你用DSO模式编译的Apache)--apxs -c -i -a -L/usr/local/lib/mysql -lmysqlclient >-lm mod_auth_mysql.c即可--这里注意一定要这么写---L/usr/local/lib/mysql是mysql的客户库位置,我假定mysql是用的缺省安装)---如果不加在起动Apache时会报错-无法装载此模块。

好了看看httpd.conf中应该有LoadModule mysql_auth_module libexec/mod_auth_mysql.so和AddModule mod_auth_mysql.c这两句了,重起Apache也不应该有问题。

然后我们进入mysql,mysql>create database auth;

mysql>use auth;
mysql> create table mysql_auth (
-> user_name char(20) not null,
-> user_passwd char(25),
-> groups char(25),
-> primary key (username) );

注意字段名一定是user_name和user_passwd这个。再插入几条记录:

mysql> insert into mysql_auth values
('xingfei2',encrypt("abcde"),'xingfei');
Query OK, 1 row affected (0.00 sec)
mysql> insert into mysql_auth values
('xingfei',encrypt("abcde"),'xingfei');
Query OK, 1 row affected (0.00 sec)

这里abcde是口令-用encrypt函数来进行加密,用的是DES算法-这是和unix的password等同的算法-而不是mysql本身加密的password()函数。

最后在要保护的目录里建一个.htaccess(别忘了把AllowOverride all打开)内容如下:

authname "xingfei"
authtype basic
AuthMySQLHost localhost ---mysql主机名
authmysqluser root ---mysql用户
authmysqlpassword abc ---mysql用户的口令
AuthMySQLDB auth ---用户所用的库-也就是我们建的库
AuthMySQLUserTable mysql_auth ---所用的表
AuthMySQLGroupField groups ---用户组的字段名
require group xingfei
require user xingfei

可以把用户都放在一个组里-只要是这个组里的用户即可通过认证,也可require单个或多个用户。


想要了解更多更全面的web前段知识,css样式,html教程,数据库教程,word教程,excel教程等等,就到excel学习网www.excelxue.com

回复

使用道具 举报

1

主题

880

帖子

7

积分

注册会员

Rank: 2

积分
7
发表于 2016-3-9 13:26:19 | 显示全部楼层
赞赞
回复 支持 反对

使用道具 举报

0

主题

775

帖子

783

积分

高级会员

Rank: 4

积分
783
发表于 2016-3-13 12:53:34 | 显示全部楼层
抱走~老好人
回复 支持 反对

使用道具 举报

2

主题

975

帖子

83

积分

注册会员

Rank: 2

积分
83
发表于 2016-3-25 14:01:16 | 显示全部楼层
请问大家有什么看法?我绝对喜欢这个帖子
回复 支持 反对

使用道具 举报

0

主题

918

帖子

45

积分

注册会员

Rank: 2

积分
45
发表于 2016-4-8 10:13:12 | 显示全部楼层
好东西一定要看看!
回复 支持 反对

使用道具 举报

2

主题

964

帖子

108

积分

注册会员

Rank: 2

积分
108
发表于 2016-12-19 21:00:16 | 显示全部楼层
顶顶
回复 支持 反对

使用道具 举报

1

主题

1066

帖子

76

积分

注册会员

Rank: 2

积分
76
发表于 2016-12-20 20:22:44 | 显示全部楼层
谢谢您的分享!
回复 支持 反对

使用道具 举报

0

主题

878

帖子

6

积分

注册会员

Rank: 2

积分
6
发表于 2017-2-14 12:11:03 | 显示全部楼层
写的不错,支持一下哟
回复 支持 反对

使用道具 举报

4

主题

1034

帖子

195

积分

注册会员

Rank: 2

积分
195
发表于 2017-10-30 15:50:09 | 显示全部楼层
顶楼主,帮你顶个贴,我挣个积分
回复 支持 反对

使用道具 举报

1

主题

1045

帖子

69

积分

注册会员

Rank: 2

积分
69
发表于 2018-5-8 15:22:29 | 显示全部楼层
不错的平台,以后需要经常光顾!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



陕ICP备15003731号  

贠老师培训 GMT+8, 2018-12-14 23:19 , Processed in 0.251374 second(s), 33 queries .

快速回复 返回顶部 返回列表