新聞中心
Pureftpd是一款在多種類(lèi)Unix上使用并符合GPL協(xié)議的原代碼開(kāi)放的軟件。那他和PostgreSQL聯(lián)合使用是怎么樣的看下文。

讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、網(wǎng)站空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、珠暉網(wǎng)站維護(hù)、網(wǎng)站推廣。
首先,我們應(yīng)該清楚PostgreSQL 是什么?PostgreSQL 是下一代 DBMS 的研究原型 POSTGRES 數(shù)據(jù)庫(kù)管理系統(tǒng)的增強(qiáng)版。PostgreSQL 在保持 POSTGRES 的強(qiáng)大的數(shù)據(jù)模型和豐富的數(shù)據(jù)類(lèi)型的基礎(chǔ)上,用一個(gè)擴(kuò)展了的 SQL 子集取代了原先的 PostQuel 查詢(xún)語(yǔ)言。PostgreSQL 是自由的并且所有源代碼都可以獲得。
PostgreSQL 的開(kāi)發(fā)由參加 PostgreSQL 開(kāi)發(fā)郵件列表的一個(gè)開(kāi)發(fā)人員小組進(jìn)行。目前的協(xié)調(diào)人是 Marc G. Fournier (scrappy@postgreSQL.org )。這個(gè)隊(duì)伍現(xiàn)在負(fù)責(zé) PostgreSQL 的所有開(kāi)發(fā)。
PostgreSQL 1.01 的作者是 Andrew Yu 和 Jolly Chen。還有許多其他人為移植,測(cè)試,調(diào)試和增強(qiáng)代碼做了大量貢獻(xiàn)。PostgreSQL 的最初起源 Postgres,是在加州大學(xué)伯克利分校的 Michael Stonebraker 教授的指導(dǎo)下,由許多研究生,本科生和編程職員完成的。
這個(gè)軟件最初在伯克利的名字是 Postgres。在 1995 年,當(dāng)增加了 SQL 功能后,它的名字改成 Postgres95。在 1996年末,才改名為 PostgreSQL。目前***的版本是8.1.5。
安裝PostgreSQL
我們先從www.postgresql.org下在***版本的PostgreSQL,postgresql-8.1.5.tar.gz,解壓縮
- # tar xzvf postgresql-8.1.5.tar.gz
- # cd postgresql-8.1.5
按照快速安裝方法安裝
- # ./configure
- # gmake //一定要記得用 GNU make
- # make install
- # adduser postgres //同時(shí)也添加了postgres組
- # mkdir /usr/local/pgsql/data
- # chown postgres /usr/local/pgsql/data
- # su - postgres
$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
$ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 & //啟動(dòng)數(shù)據(jù)庫(kù)
$ /usr/local/pgsql/bin/createdb test //創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)test
$ /usr/local/pgsql/bin/psql test //用交互 psql 工具進(jìn)入數(shù)據(jù)庫(kù)test
$ 退出 psql ,用 \q 命令
設(shè)置環(huán)境變量 LD_LIBRARY_PATH
$ vi .bash_profile
加入
LD_LIBRARY_PATH=/usr/local/pgsql/lib
并在PATH=$PATH:$HOME/bin后面加入
:/usr/local/pgsql/bin
在 export 后加入LD_LIBRARY_PATH,并保存退出,執(zhí)行
$ source .bash_profile
整體看起來(lái)應(yīng)該是如下:
- # .bash_profile
- # Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/usr/local/pgsql/bin
LD_LIBRARY_PATH=/usr/local/pgsql/lib
export PATH LD_LIBRARY_PATH
unset USERNAME
$ psql -l //查看現(xiàn)有數(shù)據(jù)庫(kù)
$ psql //進(jìn)入psql交互模式
=# CREATE USER pureftpd WITH PASSWORD ' pureftpd ';
=# CREATE DATABASE pureftpd WITH OWNER = pureftpd TEMPLATE = template0 ENCODING = 'EUC_CN';
=# \q
$ psql -l
List of databases
Name | Owner | Encoding
-----------+----------+----------
postgres | postgres | UTF8
pureftpd | pureftpd | EUC_CN
template0 | postgres | UTF8
template1 | postgres | UTF8
test | postgres | UTF8
(5 rows)
$ createlang plpgsql pureftpd
$ psql -U pureftpd
pureftpd=>
DROP TABLE users CASCADE;
DROP SEQUENCE users_id_seq CASCADE;
CREATE TABLE "users" (
id integer DEFAULT nextval('users_id_seq'::text) NOT NULL,
"User" character varying(16) NOT NULL default '',
status smallint default 0, //這個(gè)參數(shù)沒(méi)用上
"Password" character varying(64) NOT NULL default '',
"Uid" character varying(11) DEFAULT -1 NOT NULL,
"Gid" character varying(11) DEFAULT -1 NOT NULL,
"Dir" character varying(128) NOT NULL,
"comment" text,
ipaccess character varying(15) DEFAULT '*' NOT NULL,
"ULBandwidth" smallint default 0,
"DLBandwidth" smallint default 0,
"QuotaSize" integer DEFAULT 0,
"QuotaFiles" integer DEFAULT 0,
ULRatio smallint default 0,
DLRatio smallint default 0,
create_date timestamp with time zone DEFAULT now() NOT NULL,
modify_date timestamp without time zone DEFAULT now() NOT NULL
);
CREATE SEQUENCE users_id_seq;
CREATE INDEX users_index ON users (id,"User");
ALTER TABLE ONLY users ADD CONSTRAINT users_pkey PRIMARY KEY (id);
ALTER TABLE ONLY users ADD CONSTRAINT users_id_key UNIQUE (id, "User");
pureftpd=> \d
List of relations
Schema | Name | Type | Owner
--------+--------------+----------+----------
public | users | table | pureftpd
public | users_id_seq | sequence | pureftpd
(2 rows)
pureftpd=> INSERT INTO users VALUES (1, 'test', 1, md5('test'), '2000', '2000', '/var/ftp/test', '', '*', 0, 0, 0, 0, 0, 0, '2006-11-27 14:30:00', '2006-11-27 14:30:00');
這樣,數(shù)據(jù)庫(kù)就建立完成了,然后我們配置pureftpd-pgsql.conf 文件
- # vi /usr/local/pureftpd/etc/pureftpd-pgsql.conf
這個(gè)和我們前面看到的mysql的配置文件類(lèi)似,修改也類(lèi)似,我這里就不贅述了。
注意:在pureftpd-pgsql.conf中密碼加密我用的是
PGSQLCrypt md5
我沒(méi)有看到crypt或encrypt函數(shù),如果大家有這方面知識(shí)的話(huà),歡迎探討。
另外一個(gè)非常重要,你需要修改
PGSQLGetRatioUL SELECT ULRatio FROM users WHERE User='\L'
PGSQLGetRatioDL SELECT DLRatio FROM users WHERE User='\L'
為
PGSQLGetRatioUL SELECT "ULRatio" FROM "users" WHERE "User"='\L'
PGSQLGetRatioDL SELECT "DLRatio" FROM "users" WHERE "User"='\L'
格式,否則是不能認(rèn)證的。
修改pure-ftpd.conf 文件,和mysql一樣,就改一條
PGSQLConfigFile /usr/local/pureftpd/etc/pureftpd-pgsql.conf
重新啟動(dòng)pureftpd程序后測(cè)試,和用mysql數(shù)據(jù)庫(kù)認(rèn)證時(shí)的權(quán)限相同。
通過(guò)文章的描寫(xiě),我們不難發(fā)現(xiàn)Pureftpd和PostgreSQL聯(lián)合使用效果挺好的,希望對(duì)大家有幫助!
當(dāng)前文章:Pureftpd和PostgreSQL聯(lián)合使用
網(wǎng)頁(yè)網(wǎng)址:http://m.5511xx.com/article/codigie.html


咨詢(xún)
建站咨詢(xún)
