正如我们已经提到的,在Apache上使用mod_auth易于安装并且效率很高。因为它将用户信息保存到一个文本文件中,因此对于拥有广泛用户群的繁忙网站,mod_auth的使用是不实际的。
幸运的是,使用mod_auth_mysql,将拥有使用mod_auth的易用性,同时又获得访问数据库的更快速度。该模块的工作方式与mod_auth非常类似,但是因为它使用MySQL数据库而不是文本文件,所以可以在大量用户中进行搜索。
要使用它,需要在系统中编译和安装该模块,或者请系统管理员安装它。
17.6.1 安装mod_auth_mysql
要使用mod_auth_mysql,需要首先安装Apache和MySQL,安装说明请参阅附录A,然后再完成几步额外的步骤。在Apache和MySQL软件包中附带的README和USAGE文件都给出了完善的安装说明,但是某些地方是针对以前版本的。
在这里,我们只给出总结。
1)获得模块的存档文件。它包含在随书附带的文件中,但是也可以从下列网址得到最新版本:http://sourceforge.net/projects/modauthmysql/
2)解压缩源代码。
3)切换到mod_auth_mysql目录,分别运行make和make install命令。必须在make文件(MakeFile)中告诉它MySQL的安装位置。
4)在httpd.conf文件中添加如下所示行,以便动态地将模块加载到Apache
LoadModule Mysql_auth_module libexec/mod_auth_mysql.so
5)创建数据库和包含身份验证信息的MySQL表。它并不需要是一个单独的数据库或表;可使用一个已有表,例如在本章前面的示例创建的auth数据库。
6)在httpd.conf文件添加mod_auth_mysql用来连接MySQL所需的参数,该指令如下所示:
Auth_MySQL_Info hostname user password
检查编译是否正常工作的最简单方法是查看Apache是否可以启动。要启动具有SSL支持类型的Apache,可以使用如下命令:
/usr/local/apache/bin/apachectl startssl
如果没有启用SSL支持类型,可以输入如下命令:
mod_auth_mysql was successfully added.
如果启动后在httpd.conf文件中有Auth_MySQL_Info指令,mod_auth_mysql模块就已经成功添加。