针对Apache2.x的MySQL用户认证模块的安装

本文介绍mod_auth_mysql模块的安装、配置过程及其在整合现有用户表的应用场景。通过详细配置示例,展示了如何实现基于MySQL数据库的Apache认证,特别适用于需要结合多种应用的电子商务环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mod_auth_mysql 有好几种版本,而且文档几乎都是残缺不全的。本文下载的程序来自 sourceforge.net (sf.net)

http://modauthmysql.sourceforge.net/

目前的版本为 2.9.0 ,下载后,建立目录 mod_auth_mysql ,然后进入该目录解压。(不要直接在 /usr/local/src 下解压) ,根据 BUILD 文件的指示,安装步骤如下:

apxs -c -lmysqlclient -lm -lz mod_auth_mysql.c
apxs -i mod_auth_mysql.la

然后把下面这行加入 httpd.conf
LoadModule mysql_auth_module modules/mod_auth_mysql.so


实际上编译和安装并不困难,配置才是比较大的挑战,特别是要已经现有的用户表结合起来。我的 plog 数据库的用户表是 plog_users ,我设置的配置如下:


<IfModule mod_auth_mysql.c>
<Location />
AuthType Basic

# 连接数据库的主机地址,一般用本地连接,所以为 localhost
AuthMySQLHost localhost
AuthMySQLPort nnnn
# 数据库的名字
AuthMySQLDB plog
# 连接数据库的用户?
AuthMySQLUser plogdb_user
# 连接数据库的口令
AuthMySQLPassword password
# none: not encrypted (plain text)
# crypt: UNIX crypt() encryption
# scrambled: MySQL PASSWORD encryption
# md5: MD5 hashing
# aes: Advanced Encryption Standard (AES) encryption
# sha1: Secure Hash Algorihm (SHA1)`
AuthMySQLPwEncryption md5
AuthMySQLEnable On
AuthMySQLUserTable plog_users
AuthMySQLNameField user
AuthMySQLPasswordField password
AuthMySQLGroupTable plog_users
AuthMySQLGroupField user_group
</Location>
</IfModule>

从以上配置可以知道,这个模块实际上对用户表没有特别的要求,只要能找到 用户名和对应的口令即可,如果需要对一个组作验证,那么需要 group 那个列。

由于公司内部所有的用户都具有相同的组,所以,在验证时一般采用组用户来验证,因此要在 plog_user 表添加列: user_group ,并把所有行的 user_group 列 update 为某固定值,例如 mygroup 。

在这里 groupTable 和 UserTable 是同一张表,如果需要一个用户属于多个 group ,那么必须另外建立 group 表。

做好以上工作后,在需要加密的目录添加 .htaccess 文件如下:

Authname "请用管理博客的口令和密码登陆"
Authtype Basic
Require group mygroup

这样一个外挂的验证系统部署完毕,这种部署对于电子商务应用中,多个不同应用的用户表整合具有很好的效果。修改的代码不多。

修改用户口令可以用 PHP 的  $_SERVER["PHP_AUTH_USER"] 来判断用户名,然后作相应的判断。

采用这种认证措施后,用户的浏览记录都能在 Apache 日志中保留下来,利用 awstats 等日志统计软件,都可以查看到用户的浏览量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值