apache配置支持mysql_Apache配合MySQL做访问认证

本文介绍了如何使用Apache内置的身份认证功能,结合MySQL数据库来实现网站访问的权限控制。通过安装必要的软件包,配置MySQL数据库存储用户信息,创建数据表并添加用户,然后在Apache配置文件中设置虚拟主机和身份验证规则,从而达到只有经过认证的用户才能访问网站的目标。
摘要由CSDN通过智能技术生成

介绍:

默认情况下,任何用户都可以访问由Apache所承载的网站,但如果网站管理员想要只有通过身份认证的用户才能访问网站要怎样做呢?

当然,这个需求可以使用动态网页设计语言来实现,但本篇文章中我来介绍下如何使用Apache内置的身份认证来满足此需求。

安装软件包:

# yum install -y mysql-server         //安装MySQL数据库,用于存放用户身份信息

# yum install -y httpd                //安装Apache

# yum install -y mod_auth_mysql     //为Apache安装mod_auth_mysql模块,使其可以使用MySQL中存放的用户信息做认证

MySQL配置部分:

启动mysql服务器。

# service mysqld start

修改默认root密码(此root用户是MySQL的管理员账户,而非Linux系统的root用户)。

# mysqladmin -u root -p password 123456

之后会弹出提示,要求输入原root密码,安装MySQL后默认为空,直接回车即可。

若是MySQL5.6及以上版本,默认root密码不为空而是一个随机字符串,存放在~/.mysql_secret文件中。

使用root用户登录MySQL服务器,回车后会要求键入root密码。

# mysql -u root -p

随后转到MySQL的命令提示符下,如下图。

cf506895426e2fe21422fc9bc3adce35.png

创建一个数据库:auth_db。

mysql>create database auth_db;

选中数据库。

mysql>use auth_db;

在其中新建一个数据表:user,其表结构如下图。

78a01526c2a1e9932fbbcdac87e2d7be.png

mysql>create table user(ID int,Name varchar(10),Birthday datetime,Sex char(8),Password char(64),primary key(ID));

查看刚刚添加的数据表的表结构。

mysql>desc user;

cc4f20bdcbfca1cafd5fa880474d8f01.png

向表中添加两位用户的数据,要求如下。

9942690613401069ae6062570bd33377.png

两位用户的口令与用户名相同。

mysql>insert into user values(0,'myuser1','1996-7-1','male','myuser1');

mysql>insert into user values(1,'myuser2','1997-9-1','female','myuser2');

查看刚刚添加的数据。

mysql>select * from user;

756f4fd2cc722744e5d51e2f3e17f09d.png

加密密码字段。

mysql>update user set password=encrypt(password);

查看加密后的密码字段。

906dc3d8a3ab5d9d8bef9361c63f4189.png

至此,MySQL配置部分完成。

Apache配置部分:

编辑Apache主配置文件,添加一个虚拟主机。

# vim /etc/httpd/conf/httpd.conf

转到最后一行,可以看到如下内容,取消其前方的注释,并删除多余行(是否删除看具体需求,此处为了演示方便,除了必要选项之外全部删除),同时对选项的参数进行适当修改。

2cb30093301af4cc921524b0d4beb39c.png

处理完后,如下。

8ca8ae26dbabdf99a8f07a27c64e01b9.png

上图中,DocumentRoot选项配置网站主目录,ServerName选项配置网站域名。注:此处的域名需使用DNS服务器解析到Apache服务器的IP上,否则无法使用域名访问。

创建网站首页文件。

# echo 'hello,world!' > /var/www/html/index.html

编辑Apache的auth_mysql.conf子配置文件,此配置文件必须是安装过mod_auth_mysql模块才会有。

# vim /etc/httpd/conf.d/auth_mysql.conf

转到第26行左右位置,可以看到如下内容,去掉其前方注释,并按实际情况修改各选项的参数。

24938fc4276ddd20c3c89564fe46fec6.png

本例中,修改后如下图。

1053d49046d69de30610df4a9a8f088f.png

保存并退出后,在保证防火墙和selinux均关闭的情况下重启Apache服务,使配置文件生效。

# service httpd restart

在客户机验证配置,访问网站域名后弹出认证提示框:

3e95b882452f9fb02d19fdef423795f9.png

正确输入账号名和密码后成功访问网站:

92aad939055f9b78d34fd9a2a4791db1.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值