PureFtp的安装与配置

PureFTPd由Troll-FTPd发展而来,Troll-FTPd是Arnt Gulbrandsen于1995年到1999年在Trolltech工作时所作。Gulbrandsen停止维护Troll-FTPd项目后,Frank Denis于2001年开始维护并将其改名为PureFTPd,目前的开发维护者是由Denis领导的团队。

pureftpd的后台实现就需要依赖于lamp环境,首先HTTP服务会在监听端口监听ftp协议的服务从而打开一个pureaftpadmin的管理页面(基于php),管理页面会调出后台的数据库服务,这是后台管理的共作模式,在前台会直接以ftp协议来访问,然后在接受到ftp请求后会启动pureftpd服务,共同点是前后台都要访问数据库,访问数据库的接口文件叫pureftp-mysql,数据库中账号其实是映射到本地用户上的(所以要针对本地账号设置权限)

PureFtp的安装与配置的具体步骤:(后台服务器管理)

[root@bogon ~]# cd ./pureftpd/

[root@bogon pureftpd]# ll

total 10780

-rw-r--r--. 1 root root    29148 Feb 15 22:06 PureAdmin-0.3.tar.gz

-rw-r--r--. 1 root root   578781 Feb 15 22:06 pure-ftpd-1.0.36.tar.gz

-rw-r--r--. 1 root root     4718 Feb 15 22:06 pureftpd-mysql.conf

-rw-r--r--. 1 root root     2105 Feb 15 22:06 pureftp.sql

所要用到的有关压缩包和文件

# wget http://www.yiyou.org/docs/PureAdmin_03_php/pureftp.sql

# wget http://www.yiyou.org/docs/PureAdmin_03_php/PureAdmin-0.3.tar.gz

因为pureftp要用到后台的数据库,所以就要完成与数据库的连接和进行数据库的有关配置,为了简化配置步骤,我们将所要用到的有关命令,写入到一个文件中来完成一次性导入。而在实际操作中会发现这个文件有一些错误及需要改正的地方,具体操作如下所示

说明:

在数据库5.5之前的MySQL数据库使用inodb引擎,而在5.5之后的数据库引擎中使用的是MYISAM,所以如果是使用5.5之前的版本或5.6的源码包安装,需改动pureftp.sql中的如下字段,如果类型还是不通过就用手工 的方法,输入那些创建指令

插入到数据库(ftpuser)表(admin)中一行名为“admin”(指后台管理员的账号表)的字段,并对表中的值values进行MD5加密,此为上步操作的含义

另外在导入时还发现这个文件存在一个不足的地方,即如下所示的红线部分应该有一个空格,但是没有,所以要手工加入空格。

pureftp.sql该文件还指明了在数据库中创建了一个名为ftpusers的数据库,在user库中创建可一个“ftp”用户,密码为tmppasswd,如下图:

[root@bogon ~]# mount /dev/cdrom /media/cdrom

mount: block device /dev/sr0 is write-protected, mounting read-only

[root@localhost ~]# yum --disablerepo=\* --enablerepo=c6-media install httpd mysql-server mysql php php-gd php-mysql pam-devel mysql-devel

[root@bogon ~]# service mysqld start

Starting mysqld:                                           [  OK  ] #初始化操作会慢一点

[root@bogon ~]# chkconfig mysqld on

[root@bogon ~]# service httpd start

Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName

[  OK  ]

(该处可以修改配置文件的主机名字段,也可以不修改,因为这不算错误)

[root@bogon ~]# chkconfig httpd on

[root@localhost ~]# mysqladmin -u root -p password '123'

Enter password:     #此处无密码

[root@localhost pureftpd]# mysql -u root -p <pureftp.sql

Enter password:           #导入需要数据库管理员MySQLadmin的密码,123

数据库中的有关信息如下图所示

安装后台的登录页面

[root@localhost pureftpd]# tar -zxvf PureAdmin-0.3.tar.gz -C /var/www/html

[root@localhost pureftpd]# cd /var/www/html/

[root@localhost html]# ll

total 4

drwxr-xr-x. 4 root 80 4096 Mar 22  2009 PureAdmin-0.3

[root@localhost html]# mv PureAdmin-0.3/ pureadmin

因为我们的php要完成与MySQL的连接,所以谁可以连接,怎么连接这些问题都要指明,所以在页面目录下(PureAdmin-0.3)有这样一个config.php来专门指明这些问题

[root@localhost pureadmin]# vim config.php

修改的内容如下:

[root@localhost pureadmin]# chmod -R o+rw /ftproot/

这些配置如ul(上传),dl(下载)值在页面显示时都会以默认值的形式出现,后期可以修改

修改完之后我们就可以进行页面测试,如图

登录后出现连接错误,如图

原因为会话不允许,然后我们回到服务端修改防火墙规则,(所以,这也提醒我们,以后再进行测试前要先记得修改防火前)

[root@localhost pureadmin]# setenforce 0

[root@localhost pureadmin]# service iptables stop

iptables: Flushing firewall rules:                         [  OK  ]

iptables: Setting chains to policy ACCEPT: filter          [  OK  ]

iptables: Unloading modules:                               [  OK  ]

重新测试

新建一个本地映射用的账号,然后就可以在后台进行用户的登记注册了

[root@localhost pureadmin]# useradd -d /ftproot ftpaccount

[root@localhost pureadmin]# ll -d /ftproot/

drwx------. 4 ftpaccount ftpaccount 4096 Feb 16 00:45 /ftproot/

[root@localhost pureadmin]# chmod -R o+rw /ftproot/

新建用户,(此时就可以看到前面配置文件的默认参数了)

从后台的数据库中也可以看到正常的反馈信息了

搭建前台的服务器

[root@localhost ~]# cd ./pureftpd/

[root@localhost pureftpd]# tar -zxvf pure-ftpd-1.0.36.tar.gz -C /usr/local/src

[root@localhost pureftpd]# cd /usr/local/src/

[root@localhost src]# ll

total 4

drwxr-xr-x. 10 root root 4096 Feb 16 00:58 pure-ftpd-1.0.36

[root@localhost src]# cd ./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 src]# ll /usr/local/pureftpd/

total 12

drwxr-xr-x. 2 root root 4096 Feb 16 01:11 bin

drwxr-xr-x. 2 root root 4096 Feb 16 01:11 sbin

drwxr-xr-x. 3 root root 4096 Feb 16 01:11 share

如果在安装完成之后的share文件中找不到有关的配置文件或控制脚本,那么我们要们可以自己创建,还可以去解压释放的目录下找到样本文件

同样的,在接受到请求之后就要完成身份的验证,要验证就要完成与MySQL的连接,所以谁可以连接,(账户)怎么连接(方式),怎么样验证(验证),这些问题都要指明,所以也需要一个来专门的连接(或接口)文件来指明这些问题

新建配置文件,可利用./configure --help |less来查看配置参数,找到配置和脚本目录

[root@localhost pure-ftpd-1.0.36]# mkdir /usr/local/pureftpd/etc

[root@localhost contrib]# cp redhat.init /etc/init.d/pureftpd

[root@localhost contrib]# chmod a+x /etc/init.d/pureftpd

[root@localhost contrib]# pwd

/usr/local/src/pure-ftpd-1.0.36/contrib  #在这样一个目录下我们可以搜索到所需要的支持文件

[root@localhost pure-ftpd-1.0.36]# cd ./configuration-file/

[root@localhost configuration-file]# cp pure-ftpd.conf /usr/local/pureftpd/etc/

[root@localhost configuration-file]# pwd

/usr/local/src/pure-ftpd-1.0.36/configuration-file

[root@localhost configuration-file]# vim /etc/init.d/pureftpd

修改内容如下

[root@localhost configuration-file]# cp pure-config.pl /usr/local/pureftpd/sbin/pure-config.pl

[root@localhost configuration-file]# chmod a+x /usr/local/pureftpd/sbin//pure-config.pl

启动服务并查看端口情况:

[root@localhost configuration-file]# service pureftpd start

Starting pure-config.pl: Running: /usr/local/pureftpd/sbin/pure-ftpd --daemonize -A -c50 -B -C8 -D -fftp -H -I15 -L10000:8 -m4 -s -U133:022 -u100 -k99 -Z

[root@localhost configuration-file]# netstat -tupln |grep 21

tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      20030/pure-ftpd (SE

tcp        0      0 :::21                       :::*                        LISTEN      20030/pure-ftpd (SE

[root@localhost configuration-file]# chkconfig --add pureftpd

[root@localhost configuration-file]# chkconfig pureftpd on

[root@localhost configuration-file]# vim /usr/local/pureftpd/etc/pure-ftpd.conf

修改内容如下

[root@localhost ~]# cd /usr/local/pureftpd/etc/

[root@localhost etc]# ll

total 12

-rw-r--r--. 1 root root 11244 Feb 16 01:52 pure-ftpd.conf

[root@localhost etc]# cp /root/pureftpd/pureftpd-mysql.conf ./

[root@localhost etc]# ll

total 20

-rw-r--r--. 1 root root 11244 Feb 16 01:52 pure-ftpd.conf

-rw-r--r--. 1 root root  4718 Feb 16 01:57 pureftpd-mysql.conf

[root@localhost etc]# vim pureftpd-mysql.conf

修改如下的三项内容:

因为前面我们已经新建本地用户用于映射虚拟用户,而虚拟账号是存放在数据库中的,它和本地账号存在一种映射,本地账号存放在本地的passwd文件中,如下图,(接下来就是产生映射文件)

然后在文件配置好后,用相关命令产生pureftpd.passwd映射文件

[root@localhost etc]# pwd

/usr/local/pureftpd/etc

[root@localhost etc]# ../bin/pure-pw useradd user1 -u ftpaccount -g ftpaccount -d /ftproot/user1 -m

Password:       #此处为本地的ftpaccount用户的密码,它可以有也可以无,视创建时而定

Enter it again:

说明:

user1是用户名,-u virtualftp是其实际的linux用户,-d指定起始目录,并锁定于该目录。如果不锁定,则用-D;如果需要不同的权限,可以建立新的linux用户与组

如果用的系统自带的ftp用户,这样的话还需修改配置文件pure-ftpd.conf中的MinUID为ftp用户的UID 14,否则登录时会出现530错误;所以这里建议创建另一个非系统自带的用户做映射

[root@localhost etc]# ll

total 28

-rw-r--r--. 1 root root 11244 Feb 16 01:52 pure-ftpd.conf

-rw-r--r--. 1 root root  4714 Feb 16 02:01 pureftpd-mysql.conf

-rw-------. 1 root root    80 Feb 16 02:06 pureftpd.passwd

-rw-------. 1 root root  2146 Feb 16 02:06 pureftpd.pdb

[root@localhost etc]# service pureftpd restart #重启服务并测试

Stopping pure-config.pl:

Starting pure-config.pl: Running: /usr/local/pureftpd/sbin/pure-ftpd --daemonize -A -c50 -B -C8 -D -fftp -H -I15 -lmysql:/usr/local/pureftpd/etc/pureftpd-mysql.conf -lpuredb:/usr/local/pureftpd/etc/pureftpd.pdb -L10000:8 -m4 -s -U133:022 -u100 -j -k99 -Z

[root@localhost etc]# cd /ftproot/

[root@localhost ftproot]# ll

total 4

drwxr-xr-x. 2 1000 1000 4096 Feb 16 02:16 user2

[root@localhost etc]# ll /ftproot/

total 8

drwxr-xr-x. 2 1000 1000 4096 Feb 16 02:26 user2

drwxr-xr-x. 2 1000 1000 4096 Feb 16 02:31 user3

浏览器端测试匿名账号

[root@localhost etc]# mkdir -pv /var/ftp

mkdir: created directory `/var/ftp'

[root@localhost etc]# touch /var/ftp/f1.pub

浏览器端测试非匿名账号

然后测试,用户的相关权限是否正常,正常测试如图:

新建

更改

而且能够删除

测试正常.

转载于:https://blog.51cto.com/blackhwak/1359730

PureFtp的安装与配置相关推荐

  1. Maven安装与配置(最实用!!!)eclipse中配置maven

    Maven安装与配置 一.需要准备的东西 JDK Eclipse(本章主要是在eclipse中进行配置maven) Maven程序包 二.下载与安装 1. 前往maven下载最新版的Maven程序: ...

  2. Portainer 安装与配置

    文章目录 Portainer 安装与配置 一.介绍 二.安装使用 1.单机运行 2.基于swarm集群方式运行 Portainer 安装与配置 一.介绍 ​ Portainer 是一个开源.轻量级Do ...

  3. Myeclipse安装、配置、测试

    Myeclipse安装.配置.测试(win7_64bit) 目录 1.概述 2.本文用到的工具 3.安装与激活 4.JavaSE开发测试(确保JDK已正确安装) 5.JavaEE开发测试(确保服务器和 ...

  4. [网摘学习]在Ubuntu上安装和配置OpenStack Nova之二

    再收藏一份Openstack的文章,这两天的操作与此相同.但其中出现的问题还需要查找原因.待个人继续学习研究. 原文参考:http://www.linuxde.net/2011/11/1599.htm ...

  5. centos6.5 php5.2,Linux中PHP安装与配置(CentOS-6.5:php-5.2.13)

    1 PHP简介     PHP(PHP: Hypertext Preprocessor的缩写,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸收了C语言.Java和Per ...

  6. java jdk 1.8 安装_下载、安装、配置 java jdk1.8

    近期配置react native的开发环境,所以就从配置环境开始.rn的环境配置有那么几项,其中重要的一个就是java jdk(Java Development Kit 的缩写),那么以下就是下载.安 ...

  7. mysql安装好需要优化配置一下_Mysql的安装、配置、优化

    Mysql的安装.配置.优化 安装步骤 1.先单击中的安装文件,如果是win7系统,请选择以管理员的方式运行. 2.大概需要30秒的时间,开始进入安装界面.请先把标红的打勾,好进行下一步的动作. 3. ...

  8. windows下opencv安装及配置(vs2010环境)

    opecv下载 前往官方下载地址 https://opencv.org/releases/ opencv安装及配置 解压,会得到一个opencv文件夹,可将提取出的文件移动到任意位置,我将其放在F盘. ...

  9. Elasticsearch 6.3.1、Head插件 安装及配置

    安装Elasticsearch Elasticsearch下载地址:https://www.elastic.co/cn/downloads/elasticsearch 也可以直接使用wget下载到某目 ...

最新文章

  1. 漫画:对象是如何被找到的?句柄 OR 直接指针?
  2. 《互联网运营智慧》进展
  3. JavaScript中函数文档注释
  4. Android直连SQLServer
  5. 处理:/var/redis/run/redis_6379.pid exists, process is already running or crashed
  6. linux dhcp解释,教会你Suse Linux DHCP服务器配置详解
  7. C/C++入门易错点及常用小技巧
  8. [签名算法]DSA 算法
  9. mysql5.7.21备份脚本_Shell脚本使用汇总整理——mysql数据库5.7.8以后备份脚本
  10. 苹果CMS v10一键采集芒果tv官方直链地址插件
  11. Axure高保真学校后台管理作品管理教师管理资源审核学生管理家长管理权限管理资源管理web端后台模板管理教师审核统计分析教育后台管理系统学校后台管理系统校园后台管理系统
  12. python网页数据处理_python 处理html页面爬虫数据
  13. 教你如何在Linux中通过expect工具实现脚本的自动交互
  14. 深度学习结合SLAM的研究思路/成果整理之(二)语义SLAM 端到端
  15. proof-carrying data from accumulation schemes学习笔记
  16. Adobe reader update 无法将数值disableexceptionchainvaliddation写入键/sofeware...请验证您对该有足够
  17. a1a2b1b2c1c2语言级别区分,西班牙语 | 西班牙语的等级是怎么划分的?(A1/A2、B1/B2、C1/C2)...
  18. python 保存数据单文件_python3.6 单文件爬虫 断点续存 普通版 文件续存方式
  19. Unity Editor Built-in Icons (Unity version: 2018.3.0f2)
  20. 计算机维修工(4级)试题,计算机维修工 (初级) 上机动手排除故障试题【优质】.doc...

热门文章

  1. pip更新后怎么还是旧版本_微信号不能修改第二次怎么办?微信更新后还是不能修改微信号怎么办?...
  2. c++读取utf8文件_在MySQL中你是否使用过utf8,有没有遇到这样的bug那就要注意了...
  3. 如何通过yum安装mysql数据库_CentOS 7通过yum安装MySQL数据库例子
  4. python mobilenetssd android_MobileNetV2-SSDLite运行
  5. 74hc595级联c语言程序,74hc595级联程序范例
  6. 微信小程序php java_PHP实现微信小程序用户授权的工具类示例
  7. 20191015:基数排序法
  8. FSO对象新建、打开、保存文件
  9. 谷歌EfficientNet缩放模型,PyTorch实现出炉,登上GitHub热榜丨Demo可用
  10. 超详细深度学习debug指南,国外小哥手把手教你如何调试模型 | 附PPT