Pureftpd和PostgreSQL联合使用

Pureftpd是一款在多种类Unix上使用并符合GPL协议的原代码开放的软件。那他和PostgreSQL联合使用是怎么样的看下文。

  首先,我们应该清楚PostgreSQL 是什么?PostgreSQL 是下一代 DBMS 的研究原型 POSTGRES 数据库管理系统的增强版。PostgreSQL 在保持 POSTGRES 的强大的数据模型和丰富的数据类型的基础上,用一个扩展了的 SQL 子集取代了原先的 PostQuel 查询语言。PostgreSQL 是自由的并且所有源代码都可以获得。

  PostgreSQL 的开发由参加 PostgreSQL 开发邮件列表的一个开发人员小组进行。目前的协调人是 Marc G. Fournier ([email protected] )。这个队伍现在负责 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,解压缩

 

  1.   # tar xzvf postgresql-8.1.5.tar.gz  
  2.  
  3.   # cd postgresql-8.1.5  

 

  按照快速安装方法安装

 

  1.   # ./configure  
  2.  
  3.   # gmake //一定要记得用 GNU make  
  4.  
  5.   # make install  
  6.  
  7.   # adduser postgres //同时也添加了postgres组  
  8.  
  9.   # mkdir /usr/local/pgsql/data  
  10.  
  11.   # chown postgres /usr/local/pgsql/data  
  12.  
  13.   # 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

  整体看起来应该是如下:

 

  1.   # .bash_profile  
  2.  
  3.   # 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 文件

 

  1.   # 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联合使用效果挺好的,希望对大家有帮助!

【编辑推荐】

  1. Pureftpd 命令语法
  2. Pureftpd配置之虚拟用户支持
  3. Pureftpd配置之系统真实用户
  4. Pureftpd配置之匿名用户登陆
  5. Pureftpd安装文档
  6. 中文解释PureFTPd配置文件

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/250465.html<

(0)
管理的头像管理
上一篇2025-04-28 12:47
下一篇 2025-04-28 12:49

相关推荐

  • 服务器SLA服务协议是什么有什么用,有哪些注意事项?

    服务器SLA服务协议是服务商与用户之间关于服务可用性、性能等方面的正式承诺,它直接决定了业务稳定性和运维成本,什么是服务器SLA服务协议服务器SLA(Service Level Agreement)是服务等级协议的缩写,在IDC和云服务领域,它是一份具有法律效力的合同附件,明确服务商必须提供的服务水平基准,这份……

    2026-07-26
    0
  • 站群服务器泛站和泛目录有什么区别?,怎么选

    泛站基于多个独立域名构建独立站点,泛目录则在同一域名下通过目录结构构建内容,这直接影响SEO权重分配和资源管理,什么是泛站和泛目录泛站模式泛站模式使用多个独立域名,每个域名部署独立网站,内容互不关联,这种结构下,每个站点各自积累SEO权重,适合需要大量外链或分散风险的场景,推广不同产品时,泛站能避免单一站点被处……

    2026-07-26
    0
  • 服务器防火墙硬件和软件哪个效果更好,怎么选

    在服务器防火墙的选型中,硬件防火墙与软件防火墙并非非此即彼,而是互补关系,对于追求高安全等级与稳定性的生产环境,采用硬件防火墙做网络层隔离,配合软件防火墙做主机层加固,是当前公认效果最好的组合方案,硬件防火墙与软件防火墙的核心差异性能与资源占用硬件防火墙依托专用ASIC芯片或FPGA处理数据包,转发延迟通常在微……

    2026-07-26
    0
  • 站群服务器做GEO的核心逻辑是什么?,怎么做

    站群服务器做SEO的核心逻辑,是通过独立IP和资源隔离,彻底切断站点间的关联性,让搜索引擎对每个网站进行独立评估,从而降低连带风险并提升整体排名效率,站群服务器的核心价值:独立性与隔离性IP独立性:为什么是命门搜索引擎在评估网站时,会记录IP地址,如果多个站点共享同一个IP,它们之间很容易被判定为同一主体控制……

    2026-07-26
    0
  • 弹性云服务器到底是什么意思怎么收费,多少钱一个月

    弹性云服务器(Elastic Cloud Server,ECS)是一种可随时调整计算资源的云服务器,收费方式以按需付费和包年包月为主,用户只需为实际使用的资源买单,什么是弹性云服务器弹性云服务器本质上是一台运行在云端、配置可以灵活调整的虚拟机,它不像物理服务器那样固定规格,你可以在业务高峰期快速增加CPU、内存……

    2026-07-26
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注