Apache-2.2.4+mod_auth_mysql3.0.0+mysql4.0.x的配置

王朝mysql·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

千辛万苦Google后,终于把Apache 2.2.x + mod_auth_mysql配置出来了。记录下来.

本来看文档使用modules.apache.org推荐的mod_auth_mysql 1.9.1 应该是可以的。但貌似文档没提到支持

plain text密码。而这个系统需要密码是plain text.只好使用这个mod_auth_mysql 3.0.0了。

需要软件和补丁的下载地址附后.

OS:Redhat ES 3.0

apache-2.2.4,mysql-4.0.x 早已经安装完成。

打补丁mod_auth_mysql

首先需要打补丁使mod_auth_mysql 支持apache 2.2.x:

wget http://cvs.mandriva.com/cgi-bin/viewvc.cgi/SPECS/apache-mod_auth_mysql/mod_auth_mysql-3.0.0-apr1x.patch

patch -p0 < mod_auth_mysql-3.0.0-apr1x.patch

注意:这个是非官方的patch,官方的patch据参考地址2说有,我没有找到。另外一个google到的patch我用了后,编译没问题,访问时会出段错误。

编译安装mod_auth_mysql:

apxs -c -L/usr/lib/mysql -I/usr/include/mysql -lmysqlclient -lm -lz mod_auth_mysql.c

apxs -i mod_auth_mysql.la

配置mod_auth_mysql

add the following directive to httpd.conf:

LoadModule mysql_auth_module modules/mod_auth_mysql.so

在httpd.conf中配置需要认证的目录

<Directory "/var/www/testmysqlauth">

Options FollowSymLinks

AllowOverride AuthConfig

Order allow,deny

Allow from all

</Directory>

/var/www/testmysqlauth/.htaccess中内容:

AuthName "MySQL Auth Testing"

AuthType Basic

AuthUserFile /dev/null

AuthBasicAuthoritative off

AuthMySQLEnable On

AuthMySQLHost localhost

AuthMySQLPort 3306

AuthMySQLSocket /tmp/mysql.sock

AuthMySQLUser myuser

AuthMySQLPassword mypass

AuthMySQLDB mydb

AuthMySQLUserTable usertable

##AuthMySQLUserCondition

AuthMySQLNameField username

AuthMySQLPasswordField password

AuthMySQLNoPasswd Off

AuthMySQLPwEncryption none

## AuthMySQLPwEncryption none | crypt | scrambled | md5 | aes | sha1

AuthMySQLSaltField <>

AuthMySQLGroupTable usertable

###AuthMySQLGroupCondition

AuthMySQLGroupField username

##AuthMySQLKeepAlive Off

AuthMySQLAuthoritative On

##AuthMySQLCharacterSet

<limit GET POST>

require valid-user

</limit>

此配置使用了localhost 上mysql 的数据库mydb中的usertable表,其中有2个字段username,password.

password字段密码是明文。

至此,配置成功.restart apache .测试通过。

注意问题:

注意红色字体部分AuthUserFile /dev/null

如果没有这行,apache的error_log中会出现这样的错误:

[error] Internal error: pcfg_openfile() called with NULL filename

[error] [client ip] (9)Bad file descriptor: Could not open password file: (null)

如果没有AuthBasicAuthoritative off

会出现错误:

[error] [client ip] user yourusername not found:

相关地址:

Apache 2.2.3/2.2.4编译

ubuntu 6.10 安装后记(六)- MySQL 5.0.x,Apache 2.2.3/2.2.4,Firebird ,PHP 5.2.0/5.2.1 的安装

下载地址

Apache 下载地址:

http://httpd.apache.org

mod_auth_mysql 下载地址:

http://sourceforge.net/projects/modauthmysql

Mysql下载地址:

http://www.mysql.com

参考地址1:

http://oldtimeynerd.net/index.php/Error_Messages_and_Answers

参考地址2:

http://www.vhcs.net/new/modules/newbb/viewtopic.php?topic_id=5028&start=10

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航