Pureftp+mysql环境配置
如果你在一个大公司工作,可能你的ftp服务器要为许多的员工每人分配一个ftp帐号,如果我们使用本地帐号的话,无疑是很麻烦的,并且也是不安全的,那么我们可以使用虚拟帐户来管理,但是,大量的用户信息,会让管理员花费大量的精力,且管理很麻烦,这时我们可以使用数据库mysql来分类存放用户信息,并且还可以使用web界面,为员工分配虚拟帐户,这里我们使用:pureftp+mysql+PureAdmin+php的方法来实现。
1.安装mysql数据库,因为图形界面pureadmin需要php的支持,所以我们把php与apache也一起安装
[root@localhost ~]# yum install mysql mysql-devel mysql-server php-mysql httpd php
安装之后对php与mysql的连接进行测试,测试结果要正确之后才能进行下面的实验
2.源码安装pureftp
下载pureftp主文件pure-ftpd-1.0.36.tar.gz 并且解压缩到/usr/local/src/下。
[root@localhost pureftp]# tar -zxvf pure-ftpd-1.0.36.tar.gz -C /usr/local/src/
进入目录对pureftp进行安装(请自行安装开发库)
[root@localhost pureftp]# cd /usr/local/src/pure-ftpd-1.0.36/
[root@localhost 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
[root@localhost pure-ftpd-1.0.36]# make
[root@localhost pure-ftpd-1.0.36]# make install
3.生成pureftpd的服务脚本
查看sbin文件
[root@localhost pure-ftpd-1.0.36]# ll /usr/local/pureftpd/sbin
总计 588
-rwxr-xr-x 1 root root 16934 12-20 06:07 pure-authd
-rwxr-xr-x 1 root root 429262 12-20 06:07 pure-ftpd
-rwxr-xr-x 1 root root 48418 12-20 06:07 pure-ftpwho
-rwxr-xr-x 1 root root 21457 12-20 06:07 pure-mrtginfo
-rwxr-xr-x 1 root root 33332 12-20 06:07 pure-quotacheck
-rwxr-xr-x 1 root root 34881 12-20 06:07 pure-uploadscript
修改
[root@localhost configuration-file]# chmod a+x pure-config.pl
[root@localhost configuration-file]# cp pure-config.pl /usr/local/pureftpd/sbin/
4.我们查看一下安装文件的目录
[root@localhost configuration-file]# ll /usr/local/pureftpd/
总计 12
drwxr-xr-x 2 root root 4096 12-20 06:07 bin
drwxr-xr-x 2 root root 4096 12-20 06:11 sbin
drwxr-xr-x 3 root root 4096 12-20 06:07 share
可以发现并没有etc目录,在出于习惯,我们经常把配置文件放在etc目录下,我们也建立一个etc目录
5.[root@localhost configuration-file]# mkdir /usr/local/pureftpd/etc
为了方便启动pureftp,我们可以让pureftp加入启动服务,可以直接使用service pureftpd start来启动
[root@localhost configuration-file]# cd ..
[root@localhost pure-ftpd-1.0.36]# cp contrib/redhat.init /etc/init.d/pureftpd
并修改其中内容
为此服务添加可执行权限
[root@localhost pure-ftpd-1.0.36]# chmod 755 /etc/init.d/pureftpd
配置虚拟用户登录
[root@localhost html]# mkdir /ftproot
[root@localhost html]# chmod -R 777 /ftproot
[root@localhost html]# useradd virtualftp -d /ftproot -s /sbin/nologin -M
设置环境变量
[root@localhost html]# echo PATH=$PATH:/usr/local/pureftpd/bin/ >> /etc/profile
[root@localhost html]# source /etc/profile
6.配置mysql 认证
创建配置文件
[root@localhost html]# cp /usr/local/src/pure-ftpd-1.0.36/configuration-file/pure-ftpd.conf /usr/local/pureftpd/etc/
修改配置文件
[root@localhost html]# vim /usr/local/pureftpd/etc/pure-ftpd.conf
导入pureftp.sql (这个文件需要自己下载)
在导入时会出现这个错误:[root@localhost pureftp]# mysql -u root -p < pureftp.sql
Enter password:
ERROR 1064 (42000) at line 15: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-------------------------------------------------------
可以如下修改:[root@localhost pureftvim pureftp.sql .sql
再次进行导入操作,就可导入成功,导入成功之后对ftp用户进行授权操作,让ftp用户密码为”abc”
mysql> grant all privileges on ftpusers.* to ftp@localhost identified by 'abc';
Query OK, 0 rows affected (0.08 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
在导入之后,最好看一下这个文件内容,它里面包含进入web页面的帐号与密码
[root@localhost pureftp]# vim pureftp.sql 可以找到下面一行内容
admin就是登录web界面的用户名,passwd为密码
7.配置web界面程序
[root@localhost pureftp]# tar -zxvf PureAdmin-0.3.tar.gz -C /var/www/html
[root@localhost html]# cd /var/www/html
[root@localhost html]# mv PureAdmin-0.3 pureadmin
修改pureadmin的配置文件
[root@localhost html]# cd /var/www/html/pureadmin/
[root@localhost pureadmin]# vim config.php
8.下载pureftpd-mysql.conf文件,并对其进行修改
[root@localhost pureftp]# cd /usr/local/pureftpd/etc/
[root@localhost etc]# vim pureftpd-mysql.conf
27 MYSQLUser ftp
32 MYSQLPassword abc
37 MYSQLDatabase ftpusers
45 MYSQLCrypt md5
9.现在可以在浏览器中输入ip地址与目录,进行对web界面的访问
进入后台,再创建一个用户
虽然现在已经创建了一个用户,但是,你如果查看/ftproot目录时,你是不能看到生成的user目录的,这需要我们使用这个用户登录一次FTP才能够生成这个目录
C:\Users\guodong>ftp 192.168.2.10
连接到 192.168.2.10。
220---------- Welcome to Pure-FTPd [privsep] ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 23:15. Server port: 21.
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
用户(192.168.2.10:(none)): user //用户名
331 User user OK. Password required
密码: //输入密码
230-OK. Current restricted directory is /
230 0 Kbytes used (0%) - authorized: 102400 Kb
ftp>
现在可以查看一下/ftproot目录
[root@localhost sbin]# ll /ftproot/
总计 4
drwxr-xr-x 2 1000 1000 4096 12-20 23:15 user
虚拟目录创建成功。