本文介绍如何在CentOS下通过源码编译的方式安装与配置Pureftpd,用户通过MySQL数据库来进行管理。

源码编译的好处在于应用可以自由定制,MySQL管理用户的方便性也远超pdb格式的文本数据库

一、安装PureFTPD

1、下载所需软件包

下载

ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.30.tar.gz

解压

tar zxvf pure-ftpd-1.0.30.tar.gz

2、编译安装

#安装到/usr/local/pureftpd支持所有功能,支持RFC2640(编码相关),语言简体中文

./configure --prefix=/usr/local/pureftpd --with-everything --with-rfc2640 --with-language=simplified-chinese

make && make install

用上面这个config安装并配置好mysql后启动pureftp提示是“421:未知的验证方式”,那也就是说–with-everything实际上并没有把mysql支持编译进去,于是更换一个config的方式,如下:

./configure --prefix=/usr/local/pureftpd --with-mysql --with-puredb --with-shadow  --with-pam --with-paranoidmsg --with-welcomemsg --with-uploadscript --with-cookie --with-virtualchroot --with-virtualhosts --with-diraliases --with-quotas --with-sysquotas --with-ratios --with-ftpwho --with-throttling --with-everything --with-rfc2640 --with-language=simplified-chinese
make && make install

configfure后注意查案提示,我运行这个命令的时候出现pam未找到,去掉–with-pam后顺利通过

二、安装PureFTPD

安装完毕,处理相关配置文件

cp pureftpd-mysql.conf /etc/
cp configuration-file/pure-ftpd.conf /etc/
cp configuration-file/pure-config.pl /usr/local/pureftpd/sbin/
chmod u+x /usr/local/pureftpd/sbin/pure-config.pl

编辑redhat.init文件:

vim contrib/redhat.init

修改下面两行的内容:

fullpath=/usr/local/pureftpd/sbin/$prog
pureftpwho=/usr/local/pureftpd/sbin/pure-ftpwho  

将pure-ftpd加到系统服务

cp contrib/redhat.init /etc/init.d/pure-ftpd
chmod +x /etc/init.d/pure-ftpd
chkconfig --add pure-ftpd  

修改pure-ftpd配置文件:

vim /etc/pure-ftpd.conf

修改下面一行的内容:

MySQLConfigFile               /etc/pureftpd-mysql.conf

如果启用了iptables,还必须修改下面这一行:

PassivePortRange          30000 50000

保存退出。

如果启用了iptables,还需要开启相关端口,否则将无法连接FTP服务器,运行下面的命令:

iptables -I INPUT -p tcp --dport 21 -j ACCEPT
iptables -I INPUT -p tcp --dport 30000:50000 -j ACCEPT
/etc/rc.d/init.d/iptables save   

至此,pure-ftpd安装完毕。

三、安装FTP管理程序

安装之前,我们先建立专门用于登录FTP的用户组和用户:

groupadd ftpgroup
useradd ftpuser -g ftpgroup -s /sbin/nologin

再将网站文件目录所属的用户和用户组改为刚创建的用户和用户组:

chown -R ftpuser /var/www/html/
chgrp -R ftpgroup /var/www/html/

如果你的网站文件不是放在/var/www/html/中,请修改对应的值。

回到用户目录,下载ftp管理程序:

cd  ~
wget http://machiel.generaal.net/files/pureftpd/ftp_v2.1.tar.gz

解压缩:

tar zxvf ftp_v2.1.tar.gz

将解压缩出来的文件目录转移到web目录下,这里是直接转移到服务器根目录下:

cp -a ftp /var/www/html/

接下来,就可以在浏览器中安装了。打开『IP or Domain』/ftp/install.php,会出现下图(以下图片均可点击放大):

如果全部为”OK”,则点击“Step2”按钮继续:

点击“New installation”,进入下一步:

输入mysql数据库的主机名、root帐户的密码后,点击“Connect”,如果可以连接服务器,则如下图所示:

点击“Continue”进入下一步:

如图所示,安装程序会自动建立一个名为ftpusers的数据库,同时还创建了一个用户名为ftp,密码为tmppasswd的mysql帐户,如果需要修改mysql中ftp帐户的密码,在修改后,将新密码填入“Password”字段,再点击“Refresh”按钮,如果全部是“OK”字样,则点击“Step4”进入下一步:

在这里修改FTP管理程序的配置文件,可以将“FTP Addrss”中的myipaddress.com换成服务器的域名或者IP地址;将“Default user ID”改成之前创建的ftpuser的数字ID;将“Default group ID”改成之前创建的ftpgroup的数字ID。修改完毕后,记得点击“save”按钮更新配置文件。点击“Step5”进入下一步:

在这里设置FTP管理员帐号密码,这里的帐号密码是用于管理FTP帐号,不是用来登录FTP,输入密码后点击“Change”按钮,然后点击“Step6”进入下一步:

按照上图的说明修改pure-ftpd的相关配置文件,如果按照之前的pure-ftp安装说明安装,pureftpd-mysql.conf是保存在/etc/pureftpd-mysql.conf中,而不是上图说明中的usr/local/etc/pureftpd-mysql.conf,而且这里的值在之前已经修改过了,因此,步骤A可以跳过。然后,编辑/etc/pureftpd-mysql.conf,修改上图红色文字部分的值,修改完毕后,保存退出,再点击“Step7”按钮:

当出现这个画面的时候,说明FTP管理程序成功安装,记得把install.php改名或者删除。

最后,重启ftp服务使相应配置生效:

/etc/init.d/pure-ftpd restart

四、管理FTP帐号

输入之前FTP管理程序网址:IP/ftp/,出现登录界面:

输入对应的密码点击“Login”登录:

这就是FTP用户管理页面了,在上方会列出已经创建的FTP用户,其中, “Configuration”一栏中的四个图标从左到右的功能依次是:修改用户/删除用户/锁定用户(锁定后改用户无法登录FTP)/使用该用户连接FTP。

点击“New user”创建新用户,点击“Homedir”右侧的按钮会出现目录选择下拉列表,点击相应目录名可以进入相应目录并设置该用户的主目录为该目录,如图所示:

创建FTP用户的操作很简单,就不多说了。这里还有一个小问题,每次创建用户的时候,可能都需要修改Homedir(主目录)、UL Bandwidth(上传带宽限制)和DL Bandwidth(下载带宽限制),比较麻烦,可以用下面的办法可以修改它们的默认值:

编辑ftp目录下的index.php文件,修改这几个地方:

$dir              = "/var/www/html/";
$ulbandwidth      = "";
$dlbandwidth      = "";

这样,每次创建新用户的时候,默认就在/var/www/html/下,可以节省很多点击次数,另外,默认取消了上传和下载带宽的限制。

本文来源:http://www.fishnote.net/?p=248