共計 3855 個字符,預計需要花費 10 分鐘才能閱讀完成。
丸趣 TV 小編給大家分享一下 Pureftpd 和 PostgreSQL 聯合怎么使用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Pureftpd 是一款在多種類 Unix 上使用并符合 GPL 協議的原代碼開放的軟件。那他和 PostgreSQL 聯合使用是怎么樣的看下文。
首先,我們應該清楚 PostgreSQL 是什么?PostgreSQL 是下一代 DBMS 的研究原型 POSTGRES 數據庫管理系統的增強版。PostgreSQL 在保持 POSTGRES 的強大的數據模型和豐富的數據類型的基礎上,用一個擴展了的 SQL 子集取代了原先的 PostQuel 查詢語言。PostgreSQL 是自由的并且所有源代碼都可以獲得。
PostgreSQL 的開發由參加 PostgreSQL 開發郵件列表的一個開發人員小組進行。目前的協調人是 Marc G. Fournier (scrappy@postgreSQL.org)。這個隊伍現在負責 PostgreSQL 的所有開發。
PostgreSQL 1.01 的作者是 Andrew Yu 和 Jolly Chen。還有許多其他人為移植,測試,調試和增強代碼做了大量貢獻。PostgreSQL 的最初起源 Postgres,是在加州大學伯克利分校的 Michael Stonebraker 教授的指導下,由許多研究生,本科生和編程職員完成的。
這個軟件最初在伯克利的名字是 Postgres。在 1995 年,當增加了 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 // 同時也添加了 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 // 啟動數據庫
$ /usr/local/pgsql/bin/createdb test // 創建一個數據庫 test
$ /usr/local/pgsql/bin/psql test // 用交互 psql 工具進入數據庫 test
$ 退出 psql,用 \q 命令
設置環境變量 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,并保存退出,執行
$ source .bash_profile
整體看起來應該是如下:
# .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 // 查看現有數據庫
$ psql // 進入 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, // 這個參數沒用上
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
這樣,數據庫就建立完成了,然后我們配置 pureftpd-pgsql.conf 文件
# vi /usr/local/pureftpd/etc/pureftpd-pgsql.conf
這個和我們前面看到的 mysql 的配置文件類似,修改也類似,我這里就不贅述了。
注意:在 pureftpd-pgsql.conf 中密碼加密我用的是
PGSQLCrypt md5
我沒有看到 crypt 或 encrypt 函數,如果大家有這方面知識的話,歡迎探討。
另外一個非常重要,你需要修改
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
格式,否則是不能認證的。
修改 pure-ftpd.conf 文件,和 mysql 一樣,就改一條
PGSQLConfigFile /usr/local/pureftpd/etc/pureftpd-pgsql.conf
重新啟動 pureftpd 程序后測試,和用 mysql 數據庫認證時的權限相同。
以上是“Pureftpd 和 PostgreSQL 聯合怎么使用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!