一、安装及配置
推荐下载
    wget http://fossies.org/unix/misc/pure-ftpd-1.0.34.tar.gz
下载phpweb管理组件
    wget http://www.yiyou.org/docs/PureAdmin_03_php/PureAdmin-0.3.tar.gz  
mysql.conf 
解压编译及安装&常见问题排错
    tar zxvf pure-ftpd-1.0.34.tar.gz
    cd pure-ftpd-1.0.34/  
    ./configure --prefix=/usr/local/pureftpd --with-cookie --with-language=simplified-chinese --with-puredb --with-mysql --with-tls --with-virtualchroot

…………………………………………………………………………………………………
checking for mysql_init in -lmysqlclient... no
configure: error: libmysqlclient is needed for MySQL support
编译时候若出现上面的提示,则安装mysql和mysql-devel RPM包,这里为了简便,直接使用rpm方式解决
[root@server1 pure-ftpd-1.0.29]# yum -y install mysql mysql-devel
若编译方式安装mysql数据库,前面的编译选项可以改成"--with-mysql=/usr/local/mysql",并将/usr/local/mysql目录下的头文件和开发库文件加入ld.so.conf,该文件维护着系统的动态链接库
# echo "/usr/local/mysql/" >> /etc/ld.so.conf
# ldconfig
……………………………………………………………………………………………………

安装配置

    make && make install  
    cp configuration-file/pure-config.pl /usr/local/pureftpd/sbin/  
    chmod 755 /usr/local/pureftpd/sbin/pure-config.pl  
    mkdir -p /usr/local/pureftpd/etc/  
    cp configuration-file/pure-ftpd.conf /usr/local/pureftpd/etc/  
    cp contrib/redhat.init /etc/init.d/pureftpd

3、修改启动配置文件
    vi /etc/init.d/pureftpd
修改18/19行
        fullpath=/usr/local/sbin/$prog
        pureftpwho=/usr/local/sbin/pure-ftpwho
  为:
        fullpath=/usr/local/pureftpd/sbin/$prog
        pureftpwho=/usr/local/pureftpd/sbin/pure-ftpwho
修改24行
        $fullpath /etc/pure-ftpd.conf --daemonize
   为   $fullpath /usr/local/pureftpd/etc/pure-ftpd.conf --daemonize
   
或者用下面命令更改
    sed -i '18c\fullpath=/usr/local/pureftpd/sbin/$prog' /etc/init.d/pureftpd 
    sed -i '19c\pureftpwho=/usr/local/pureftpd/sbin/pure-ftpwho' /etc/init.d/pureftpd 
    sed -i '24c\$fullpath /usr/local/pureftpd/etc/pure-ftpd.conf --daemonize' /etc/init.d/pureftpd

    chmod 755 /etc/init.d/pureftpd 
    chkconfig --add pureftpd 
    chkconfig pureftpd on

4、修改配置文件
    vi /usr/local/pureftpd/etc/pure-ftpd.conf
其中可以修改最大连接数、空闲时间等,详细介绍见http://everspring.blog.51cto.com/497193/104618(本文章在文章最后又复贴)
其中有几项要修改:
chrootEveryone               yes            限定在自己的家目录
NoAnonymous                 yes            不允许匿名登录
CreateHomeDir                yes            允许用户登录后自动创建家目录   <必须>
PureDB                      /usr/local/pureftpd/etc/pureftpd.pdb  #如果没使用mysql存储用户的话,该文件必须,否则无法登录

6、配置虚拟用户登录环境
    mkdir /data/ftproot
    useradd virtualftp -d /data/ftproot -s /sbin/nologin   <创建接下来的虚拟用户对应的系统用户>
    chmod -R 777 /data/ftproot  #这不不做可以能会引起登录时报421错误>
    chown virtualftp:virtualftp /data/ftproot

7、设置环境变量
 
    echo PATH=$PATH:/usr/local/pureftpd/bin/ >>/etc/profile 
    source /etc/profile

8、常用操作用户命令(大写英文为用户自定义数值)
pure-pw useradd USER -u VirtualUSER -g VirtualGROUP -d HOMEDIRECTORY  添加一虚拟用户
pure-pw show USER                                     看用户的详细信息
pure-pw list                                          查看用户列表的
pure-pw passwd USER  -m                               修改用户的密码
pure-pw mkdb /usr/local/pureftpd/etc/pureftpd.pdb     创建虚拟用户数据库。(文件的存放位置以pure-ftpd.conf中的PureDB配置为准,每次添加用户都要执行上述操作)
pure-pw usermod                                       修改用户

9、启动pureftpd
    service pureftpd start  
或者
    /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
出现
Running: /usr/local/pureftpd/sbin/pure-ftpd -A -c50 -B -C8 -D -E -fftp -H -I5 -L10000:8 -m4 -s -U133:022 -u100 -j -k99 -Z
表示正常

开机启动
    chkconfig pureftpd on
   
检查端口监听状态
[root@localhost log]# netstat -tupln | grep 21
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      868/pure-ftpd (SERV
tcp        0      0 :::21                       :::*                        LISTEN      868/pure-ftpd (SERV

二、虚拟用户使用篇
1、用pureDB认证

<1>修改配置文件:
    vi /usr/local/pureftpd/etc/pure-ftpd.conf
修改126行为:
PureDB                        /usr/local/pureftpd/etc/pureftpd.pdb

<2>添加用户:
        mkdir /data/ftproot/user1
        chown -R virtualftp    /data/ftproot/user1
    pure-pw useradd user1 -u virtualftp -g virtualftp -d /data/ftproot/user1 -m 
   

说明:
user1是用户名,-u virtualftp是其实际的linux用户,-d指定起始目录,并锁定于该目录。如果不锁定,则用-D;如果需要不同的权限,可以建立新的linux用户与组
如果用的系统自带的ftp用户,这样的话还需修改配置文件pure-ftpd.conf中的MinUID为ftp用户的UID 14,否则登录时会出现530错误;所以这里建议创建另一个非系统自带的用户做映射

<3>建立用户数据库:
 
    pure-pw mkdb /usr/local/pureftpd/etc/pureftpd.pdb  #说明:今后每添加或修改用户数据库都应该执行一次mkdb

<4>虚拟用户的信息以每个用户一行的方式存放在相应的文件中,其格式如下所示:

:::::::::::::::::