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

首頁 > 網站 > Apache > 正文

用Apache與MySQL整合實現基本身份認證

2024-08-27 18:26:04
字體:
來源:轉載
供稿:網友

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

這種實現要歸功于Apache本身出色的模塊化結構--以及開放的DSO方式,可以使開發人員完成大量的第三方模塊,并擴充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中應該有LoadModule 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函數來進行加密,用的是DES算法-這是和unix的password等同的算法-而不是mysql本身加密的password()函數。

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

以下為引用的內容:
authname "xingfei"
authtype basic
AuthMySQLHost localhost ---mysql主機名
authmysqluser root ---mysql用戶
authmysqlpassword abc ---mysql用戶的口令
AuthMySQLDB auth ---用戶所用的庫-也就是我們建的庫
AuthMySQLUserTable mysql_auth ---所用的表
AuthMySQLGroupField groups ---用戶組的字段名
require group xingfei
require user xingfei

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 镇赉县| 肥乡县| 金门县| 沁水县| 彰化县| 昔阳县| 于都县| 济源市| 阜平县| 东海县| 武夷山市| 宝兴县| 蒙自县| 疏附县| 虎林市| 阿鲁科尔沁旗| 双辽市| 巩留县| 湛江市| 辽宁省| 丹棱县| 金平| 阜宁县| 柳江县| 玉门市| 景谷| 上杭县| 新和县| 句容市| 兰溪市| 集安市| 元朗区| 永靖县| 武平县| 油尖旺区| 芦山县| 得荣县| 延川县| 霍州市| 临海市| 昌图县|