虚拟账号服务器Pureftp
Pureftp   简介
 
要想详细的了解pureftp是如何调用MySQL的要弄懂一下问题:
 
     1.MySQL必须告诉pureftp需要验证的数据库叫什么
     2.MySQL是在哪台机器上工作运行的
     3.MySQL的端口是多少,默认是3306
     4pureftp去访问MySQL的时候是以何种身份去访问
      5指明虚拟账号与本地账号的映射关系
        6要在lamp环境下实验,他们分别指的是linux  apache  MySQL  php
 
        使用 php页面来管理mysql数据库,在数据库中添加虚拟账号,当ftp客户端访问ftp服务器时,将mysql数据库中的虚拟账号映射为本地账号进而登录ftp服务器。
 
实现步骤:
1.新建挂载点,挂载光盘, 编辑yum工具
[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo
[rhel-server]
name=Red Hat Enterprise Linux server
baseurl=file:///mnt/cdrom/Server
enabled=1
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
 
2.安装以下软件包:httpd php php-mysql mysql mysql-server mysql-devel
[root@localhost ~]# yum install httpd php php-mysql mysql mysql-server mysql-devel -y
 
3.启动mysql数据库,并设置密码
[root@localhost ~]# service mysqld start
[root@localhost ~]# mysqladmin -u root -p password "123456"
 
4.需要使用以下软件包:
pure-ftpd-1.0.36.tar.gz pureftp主程序
ZendOptimizer-3.3.3-linux-hicode.tar.gz php加速工具
PureAdmin-0.3.tar.gz pureftp的管理工具
 
5.拆解pure-ftpd-1.0.36.tar.gz 包
[root@localhost ~]# tar -zxvf pure-ftpd-1.0.36.tar.gz -C /usr/local/src/
 
6. 检测预编译环境:
[root@localhost ~]# cd /usr/local/src/ pure-ftpd-1.0.36
./configure \
--prefix=/usr/local/pureftpd \
--with-mysql \
--with-shadow \
--with-pam \
--with-welcomemsg \
--with-uploadscript \
--with-cookie \
--with-virtualchroot \
--with-virtualhosts \
--with-diraliases \
--with-quotas \
--with-puredb \
--with-sysquotas \
--with-ratios \
--with-ftpwho \
--with-throttling \
--with-language=simplified-chinese
[root@localhost pure-ftpd-1.0.36]# make && make install
 
7. 切换到pureftp的安装目录,缺少etc目录,手工创建该目录
[root@localhost ~]# cd /usr/local/pureftpd/
[root@localhost pureftpd]# mkdir etc
 

虚拟账号pureftp_虚拟账号

 

虚拟账号pureftp_服务器_02

8.生成pureftp的配置文件
cp /usr/local/src/pure-ftpd-1.0.36/configuration-file/pure-ftpd.conf      /usr/local/pureftpd/etc/
 
9.将启动pureftp服务器的指令拷贝走
cp /usr/local/src/pure-ftpd-1.0.36/configuration-file/pure-config.pl       /usr/local/pureftpd/sbin/
# chmod 755 /usr/local/pureftpd/sbin/pure-config.pl
 
10.产生控制脚本
cd /usr/local/src/pure-ftpd-1.0.36/contrib
[root@localhost contrib]# chmod 755 redhat.init
[root@localhost contrib]# cp redhat.init /etc/init.d/pureftpd
 
11.编辑该控制脚本文件
vim /etc/init.d/pureftpd
$fullpath /usr/local/pureftpd/etc/pure-ftpd.conf --daemonize
pureftpwho=/usr/local/pureftpd/sbin/pure-ftpwho
fullpath=/usr/local/pureftpd/sbin/$prog
[root@localhost contrib]# service pureftpd restart
 
12.将pureftpd 加入chkconfig的管理之列
[root@localhost contrib]# chkconfig --add pureftpd
[root@localhost contrib]# chkconfig pureftpd on
[root@localhost contrib]# chkconfig --list |grep purftpd
pureftpd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
 
13. 配置虚拟用户登录环境(家目录)
新建本地用户virtualftp
[root@localhost ~]# useradd virtualftp -d /ftproot -s /sbin/nologin
[root@localhost ~]# chmod -R 777 /ftproot/
 
14.编辑pureftp的配置文件
[root@localhost ~]# vim /usr/local/pureftpd/etc/pure-ftpd.conf
NoAnonymous yes 禁止匿名登录
CreateHomeDir yes 为用户创建家目录(例:/ftproot/user1)
 
15.重启pureftpd
 

虚拟账号pureftp_虚拟账号_03

16.当ftp用户登录ftp服务器时,ftp根据自己的配置文件查找到mysql的配置文件,来
[root@localhost ~]# vim /usr/local/pureftpd/etc/pure-ftpd.conf
MySQLConfigFile /usr/local/pureftpd/etc/pureftpd-mysql.conf
 
17.将导入的pureftpd-mysql.conf 文件放到/usr/local/pureftpd/etc/下
[root@localhost ~]# cp pureftpd-mysql.conf /usr/local/pureftpd/etc/
 
18.编辑pureftpd-mysql.conf
[root@localhost ~]# vim /usr/local/pureftpd/etc/pureftpd-mysql.conf
MYSQLPassword tmppasswd
MYSQLCrypt md5
 
19. # wget http://www.yiyou.org/docs/PureAdmin_03_php/pureftp.sql
[root@localhost ~]# vim pureftp.sql
INSERT INTO admin VALUES ('admin',MD5('123')); 后台管理账号
 
20.导入该sql文件
 

虚拟账号pureftp_服务器_04

[root@localhost ~]# mysql -u root -p <pureftp.sql
21.进入mysql数据库,查看数据库使用情况
 

虚拟账号pureftp_Pureftp_05 

 

虚拟账号pureftp_服务器_06 

 

虚拟账号pureftp_Pureftp_07

22. 添加连接mysql用户
先用root登录mysql,执行
mysql>grant all privileges on ftpusers.* to ftp@localhost identified by 'tmppasswd';
mysql&gt;flush privileges;
mysql&gt;quit;
使用ftp账户测试登录:
# mysql -u ftp -p
Enter password:tmppasswd
 

虚拟账号pureftp_Pureftp_08

 
23.配置web管理界面Pureadmin
将压缩包释放到apache的站点主目录下
[root@localhost ~]# tar -zxvf PureAdmin-0.3.tar.gz -C /var/www/html/
24.进入/var/www/html/ 修改目录名字
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# mv PureAdmin-0.3 pureadmin
 
25.修改PureAdmin的配置文件
[root@localhost html]# cd pureadmin/dx
[root@localhost pureadmin]# vim config.php
 

虚拟账号pureftp_虚拟账号_09

 
26.重启httpd pureftpd
[root@localhost pureadmin]# service httpd restart
[root@localhost pureadmin]# service pureftpd restart
 
27 创建虚拟账号和本地账号的映射数据库
[root@localhost pureadmin]# vim /usr/local/pureftpd/etc/pure-ftpd.conf
PureDB /usr/local/pureftpd/etc/pureftpd.pdb
 
28.使用命令产生pureftpd.pdb 文件,可以使用/usr/local/pureftpd/bin/ 下的pure-pw命令来生成该文件,但是,需要每次都切换到该路径下来执行。可以使用环境变量
 

虚拟账号pureftp_虚拟账号_10

echo PATH=$PATH:/usr/local/pureftpd/bin &gt;&gt;/etc/profile
source /etc/profile 或 . /etc/profile 使环境变量生效,或者重新登录系统
 

虚拟账号pureftp_虚拟账号_11

 
29.新建讯账号test2 ,和本地账号virtualftp 映射
[root@localhost ~]# pure-pw useradd test2 -u virtualftp -g virtualftp -d /ftproot/test2 -m
建立用户数据库:
# pure-pw mkdb /usr/local/pureftpd/etc/pureftpd.pdb
 

虚拟账号pureftp_服务器_12 

 

虚拟账号pureftp_Pureftp_13

用户登录之前,家目录为空

虚拟账号pureftp_服务器_14

 

虚拟账号pureftp_Pureftp_15

 

虚拟账号pureftp_虚拟账号_16