现在有很多人购买VPS都是自用,上面只有自己的网站,大部分人可能都没有安装FTP服务器程序,都是用SFTP传输文件,甚至直接使用root帐 户传输,这样就带来了一些麻烦和安全问题,虽然在之后可以用chown、chgrp命令来改变文件属性,但是总归是要登录服务器进行这些操作,浪费时间和 精力,而且个人感觉SFTP的速度没有FTP快,所以,架设一个FTP服务器还是很有必要的。推荐使用pure-ftpd,它可以使用mysql数据库来 管理帐户,有web管理界面,简单方便。?
废话少说,接下来就介绍如何安装pure-ftpd。
一、安装环境
本文主要是介绍在CentOS下的安装,其他系统也可以参考。除了httpd、php、mysql-server、php-mysql、mysql-devel等基本上必装的组件,还需要用到的组件有:gcc和pam-devel。
如果缺少这些组件,可以用yum命令安装。
二、安装pure-ftpd
切换到用户目录,下载所需文件:
cd ~
下载pure-ftpd源文件:
wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.29.tar.gz
解压缩:
tar zxvf pure-ftpd-1.0.29.tar.gz
运行下列命令安装:
cd pure-ftpd-1.0.29 ./configure --prefix=/usr/local/pureftpd --with-mysql --with-puredb --with-shadow --with-pam --with-paranoidmsg --with-welcomemsg --with-uploadscripq --with-cookie --with-virtualchroot --with-virtualhosts --with-diraliases --with-quotas --with-sysquotas --with-ratios --with-ftpwho --with-throttling make make install
安装完毕,处理相关配置文件:
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/
接下来,就可以在浏览器中安装了。打开http://之前转移所在目录使用的域名或IP/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管理程序网址:http://之前转移所在目录使用的域名或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/下,可以节省很多点击次数,另外,默认取消了上传和下载带宽的限制。(完)
from http://www.fishnote.net/?p=248