国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > Apache > 正文

用Apache與MySQL整合實現(xiàn)基本身份認證

2024-08-27 18:29:00
字體:
來源:轉載
供稿:網(wǎng)友

apache來實現(xiàn)基本的用戶身份認證有很多種方式,比如最常見的txt文本和dbm格式,但在負載很重的server上-這些都不是理想的方法,文本的形式是基于平面的,性能很差而且也不安全;dbm好些但在千或萬級用戶時還是力不從心,于是用database做后臺存儲則是很好的方法-比平面搜索更有效而且安全,用戶口令以des加密形式存儲在數(shù)據(jù)庫的表中。

這種實現(xiàn)要歸功于apache本身出色的模塊化結構--以及開放的dso方式,可以使開發(fā)人員完成大量的第三方模塊,并擴充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中應該有l(wèi)oadmodule 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函數(shù)來進行加密,用的是des算法-這是和unix的password等同的算法-而不是mysql本身加密的password()函數(shù)。

最后在要保護的目錄里建一個.htaccess(別忘了把allowoverride all打開)內容如下:

authname "xingfei"authtype basicauthmysqlhost localhost ---mysql主機名authmysqluser root ---mysql用戶authmysqlpassword abc ---mysql用戶的口令authmysqldb auth ---用戶所用的庫-也就是我們建的庫authmysqlusertable mysql_auth ---所用的表authmysqlgroupfield groups ---用戶組的字段名require group xingfeirequire user xingfei

可以把用戶都放在一個組里-只要是這個組里的用戶即可通過認證,也可require單個或多個用戶。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 正阳县| 荃湾区| 花莲县| 翼城县| 仁化县| 行唐县| 阜城县| 建阳市| 建瓯市| 新野县| 江西省| 徐汇区| 赞皇县| 黄陵县| 融水| 青神县| 封开县| 福州市| 沙雅县| 洛宁县| 化德县| 名山县| 清苑县| 武陟县| 连州市| 弥渡县| 怀仁县| 平江县| 芦山县| 什邡市| 金塔县| 方山县| 家居| 沁阳市| 昌黎县| 同仁县| 固镇县| 长白| 兴宁市| 南皮县| 宁乡县|