荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: cycker (TryToDoEverythingOnLinux), 信区: Linux
标  题:  proftpd+mod_sql+mod_quota安装手记zz
发信站: 荔园晨风BBS站 (Sun May 25 19:36:05 2003), 站内信件

http://www.linuxforum.net/forum/showflat.php?C
at=&Board=web&Number=337635&page=0&view=collapsed&sb=5&o=&fpart=1&vc=1

我使用的操作系统是FreeBSD 4.2,在安装的过程中针对FreeBSD增加了
--enable-force-setpassent 请根据自己的情况确定。

1、安装前的准备

从http://www.proftpd.org下载proftpd的最新版proftpd-1.2.6,
将下载后的软件解开,如果扩展名是
.tar.gz用tar zxf xxx.tar.gz,如果.tar.bz2用命令tar xjf xxx.tar.bz2。
从ftp://pooh.urbanrage.com/pub/c/下载mod_quota.c,放在modules/下
(proftpd.1.2.6没有mod_quota.c)

2、编译安装
根据自己的需要增加选项,我的选项是:
./configure --prefix=/var/proftpd --with-modules=mod_sql:mod_sql_mysql \
--enable-force-setpassent
这个时候您一定疑惑,怎么没有--with-modules=mod_quota呢,我安装的时候尝试
了很多的方法都不将两个模块一起选中,只有这样办了。
vi Make.modules
MODULES=mod_core.o后边加入mod_quota.o
BUILD_MODULES=modules/mod_core.o后边加上modules/mod_quota.o
然后开始编译
make
make install

如果找不到mysql.h或者libmysqlclient.so等,请检查是否安装了mysql-devel
或者从完整的mysql代码编译的,如果不是,请安装mysql-devel或者从
[url=www.mysql.com/Downloads/MySQL-3.23/mysql-3.23.52.tar.gz]
http://www.mysql.com/Downloads/MySQL-3.23/mysql-3.23.52.tar.gz[/url]
下载安装最新的mysql-3.23.52
./configure的使用指定头文件的路径和联结库的路径,如
--with-includes=/usr/include \
--with-libraries=/usr/lib/mysql
也可以设置环境变量
INCS=-I/usr/local/mysql/include/mysql
export INCS
LIBS="-L/usr/local/mysql/lib/mysql -lmysqlclient -lz"
export LIBS
CPPFLAGS=-I/usr/local/mysql/include/mysql
LDFLAGS=-L/usr/local/mysql/lib/mysql
export CPPFLAGS
export LDFLAGS
将其加入/etc/profile里。


3、建立数据库

#建立数据库proftpd
CREATE DATABASE proftpd;

#建立组表
DROP TABLE IF EXISTS `groups`;
CREATE TABLE `groups` (
`groupname` varchar(255) binary NOT NULL default '',
`gid` int(11) NOT NULL default '0',
`members` text NOT NULL,
PRIMARY KEY (`groupname`)
)TYPE=MyISAM;

#建立用户表
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`userid` varchar(255) binary NOT NULL default '',
`passwd` varchar(255) binary NOT NULL default '',
`uid` int(11) default NULL,
`gid` int(11) default NULL,
`homedir` varchar(255) default NULL,
`shell` varchar(255) default NULL,
`count` int(11) default NULL,
`used` double(10,1) default '0.0',
`quota` double(10,1) default '10000000.0',
PRIMARY KEY (`userid`)
) TYPE=MyISAM;

#如果表已经存在,不想删除,可以使用以下命令更改表的结构
alter table users add column used double(10,1) default '0.0';
alter table users add column quota double(10,1) default '10000000.0';


4、配置proftpd.conf
在这里我把我的proftpd.conf贴出来,并给以相应的注释,仅供参考
# This is a basic ProFTPD configuration file (rename it to
# 'proftpd.conf' for actual use. It establishes a single server
# and a single anonymous login. It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.

ServerName "FTP.BJSING.NET"
ServerType standalone
DefaultServer on
ServerIdent on "BJSING.NET: ftp.bjsing.net is ready. Please you login."
ServerAdmin xiaojb@868cn.com

Port 2121
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 002

#允许尝试3次登录
MaxLoginAttempts 3

#关于超时
TimeoutLogin 120
TimeoutIdle 600
TimeoutNoTransfer 900
TimeoutStalled 3600

#限制连接数
MaxClients 10 "最大允许10个用户同时访问"
MaxClientsPerHost 1 "对不起,一台主机只允许一个连接"

#不使用SHELL
RequireValidShell no

#允许断点续传
AllowOverwrite no
AllowStoreRestart on

#不使用反解析
UseReverseDNS off

#磁盘配额限制
Quotas on
QuotaCalc on
QuotaType soft
#默认的配额
DefaultQuota 100000
#这里默认的是一子节为单位,我改成了K
QuotaBlockSize 1024
QuotaBlockName "K bytes"


MultilineRFC2228 on
SystemLog /var/proftpd/log/proftpd.log

#MySQL的信息写入了另一个文件中
Include /var/vmysql.conf

#连接时的MSG
DisplayConnect /var/proftpd/etc/connect.msg
DisplayGoAway /var/proftpd/etc/goway.msg
#输入quit命令后的MSG
DisplayQuit /var/proftpd/etc/quit.msg

#Disable Ident protecol(RFC 1413)
IdentLookups off

#configation手册中说这是一种安全的上传模式
HiddenStor on

DisplayLogin welcome.msg
DisplayFirstChdir .message
AllowOverwrite yes

# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30

# Set the user and group that the server normally runs at.
User nobody
Group nogroup

PathDenyFilter "(\.ftpaccess)|(\.htaccess)$"
# Normally, we want files to be overwriteable.
<Directory /*>
AllowOverwrite on
</Directory>
#删除了anonymous登录的设置

vmysql.conf的内容
#mod_sql的设置
###############DATABASE@SERVER:PORT MySQL-User passwd
SQLConnectInfo proftpd@localhost root xxxxxx
SQLAuthenticate users*
#密码未加密
SQLAuthTypes Plaintext
#用户表信息
############表名 user字段名 pass uid gid 用户目录 SHELL
SQLUserInfo users userid passwd uid gid homedir shell
#组表信息
#############表名 组名字段 组值字段 成员字段
SQLGroupInfo groups groupname gid members

####用户登录后,将用户的登录次数+1
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1 WHERE userid='%u'" users
#####用户登录后,显示已经登录过的次数(特别说明,已经登录过的次数
,不算当前的连接
SQLNamedQuery count SELECT "count FROM users WHERE userid='%u'"
SQLShowInfo PASS "230" "You've logged on %{count} times, %u"

###如果用户目录不存在,自动创建目录
SQLHomedirOnDemand on

#mod_quota的相关设置
#Quota信息的表名
SQLQuotaTable users
#MySQL的连接参数#Server User Password 数据库
SQLQuotaInfo localhost root xxxxxxx proftpd
#保存用户名的字段名
SQLQuotaName userid
#保存用户已经使用空间的字段名
SQLQuotaUsed used
#保存用户磁盘配额的字段名
SQLQuotaQuota quota

5、测试proftpd
启动proftpd看看吧。然后根据出现的情况作出修改。

本文仅供参考、讨论用,欢迎提出宝贵意见。

大庆石油学院北极星BBS站 jieer
[url=bjsing.net hebxiaojb@yahoo.com]http://bjsing.net hebxiaojb@yahoo.com[/url]
2002年9月24日

--

Welcome to CYCKER'S LINUX_SOFT FTPD ftp://192.168.36.220

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.36.220]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店