静看光阴荏苒
不管不顾不问不说也不念

CentOS7安装Pure-FTPd并配置Chevereto外部存储

我说这是我人生当中第一次在Linux下手动搭建FTP你们信么2333。以前一直都是用SFTP,总感觉FTP这种东西对我而言没什么卵用,直到我发现Chevereto的外部存储以后。。。

Chevereto的外部存储支持AmazonS3、OpenStack、GoogleCloud、SFTP、FTP。很明显对于国人而言前三者都不适合,那就只有SFTP和FTP可选了。让我们冷静下来仔细想想,SFTP根本不可能适合做这种外部存储,虽然SFTP更安全,但是每一个用户上传图片都需要耗费那么多时间进行加密认证,显然是不妥的。所以只能采用FTP了。

在众多FTP软件中,我选择使用Pure-FTPd,所以先来把它安装一下,这里我采用编译安装最新版。

在开始之前,我们先创建一个用户和用户组。(非必须,只是我觉得让FTP的虚拟用户跑在root下不安全)

groupadd pure-ftpd
useradd pure-ftpd -g pure-ftpd -s /sbin/nologin

安装需要用到的组件和编译所需依赖:

yum -y install wget gcc gcc-c++ openssl-devel

下载解压然后编译并完成安装:

wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.47.tar.gz
tar -xzvf pure-ftpd-1.0.47.tar.gz
cd pure-ftpd-1.0.47
./configure --with-everything --with-language=simplified-chinese
make
make install

创建FTP用户目录:

mkdir -p /pureftpd/user/lala

修改目录的所有者为我们刚才创建的pure-ftpd用户:

chown -R pure-ftpd:pure-ftpd /pureftpd

创建一个用户名为lala的FTP账号:

pure-pw useradd lala -u pure-ftpd -d /pureftpd/user/lala

把账号信息加入到pureftpd数据库中,这一步很关键,不要漏掉:

pure-pw mkdb

编辑pure-ftpd.conf配置文件,或者用SFTP把这个文件下载到本地电脑编辑:

vi /etc/pure-ftpd.conf

修改NoAnonymous的值为yes,禁止匿名用户登录:

由于我们使用pure-ftpd自带的PureDB数据库文件,所以去掉PureDB前面的#号:

在这个配置文件内还有一些其他设置可根据自己的需要来更改,这里就不多说明了。

关闭CentOS7的防火墙:

systemctl stop firewalld.service
systemctl disable firewalld.service

这里还要关闭坑爹的SELinux(如果你的机器开启了的话)。使用如下命令检查:

/usr/sbin/sestatus -v

如图所示,我这台机器是开启了的:

编辑:

vi /etc/selinux/config

把如图中的SELINUX=后面的值改成disabled:

改完后要重启机器,切记!

reboot

开机后,现在可以尝试运行pure-ftpd了:

/usr/local/sbin/pure-ftpd /etc/pure-ftpd.conf

设置开机启动:

echo "/usr/local/sbin/pure-ftpd /etc/pure-ftpd.conf" >> /etc/rc.d/rc.local && chmod +x /etc/rc.d/rc.local

如果需要停止运行可以用下面的命令:

pkill -x pure-ftpd

这里也记录一下一些常用的pure-ftpd命令:

修改FTP用户密码

pure-pw passwd lala

删除FTP用户

pure-pw userdel lala

查看所有用户

pure-pw list

查看用户详细信息

pure-pw show lala

显示登录用户信息

pure-pw show

接下来我们还需要给搭建FTP的服务器安装一个Nginx。

新建一个repo:

vi /etc/yum.repos.d/nginx.repo

写入:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

用yum安装nginx:

yum -y install nginx

新建一个站点conf:

vi /etc/nginx/conf.d/pureftpd.conf

写入:

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /pureftpd/user/lala;
        index  index.html index.htm;
    }
}

注:server_name填写你的域名,root后面的值改成你的FTP路径。

启动nginx:

systemctl start nginx

接下来就是Chevereto这边的设置了。

在网站后台点击-设置-外部存储-添加存储:

按如图填写相应信息:

需要注意的:

1、路径这里直接填/号。

2、URL填写你Nginx上绑定的域名,我这里是写教程就直接用的IP。

稍等一会儿Chevereto验证成功后,就可以点击如下图箭头所指的“活动”按钮启动这个存储了:

试试看能不能正常使用:

可以看到图片能正常上传并显示,并且图片现在已经存储到这台FTP服务器了,而不再保存在我们的主站服务器。

通过FlashFXP登录我们的FTP也可以看到Chevereto是正常工作的,Chevereto按照年月日组织文件存储路径,并且把上传的图片分割成三个不同大小的尺寸:

至此,整个配置就大功告成了。

写在最后:

首先配置Chevereto的外部存储最大的好处就是可以减轻主站服务器带宽的压力,并且如果你的图床发展的特别壮大了,硬盘容量也将是一个瓶颈,通过配置外部存储,可以完美解决这类问题。

配置的时候遇到一些坑,这里记录一下:

1、关SELinux,关SELinux,关SELinux,重要的事情说三遍!

2、第一次配置的时候不知道为什么pure-ftpd死活就是登录不上,一直报530错误。没办法只能把系统重装了重新来一遍,然后就好了。玄学的是步骤完全一样为什么第一次就是不行,我也是很醉的。。。

赞(3)
未经允许不得转载:荒岛 » CentOS7安装Pure-FTPd并配置Chevereto外部存储
分享到: 更多 (0)

评论 3

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    博主你好,我的FTP直接是用的宝塔现成的,软件管理里面安装的,然后相册用外部存储的话,提示下面的东西。
    無法增加儲存空間 Error: Can’t change dir in CHV\Ftp::chdir
    用SFTP没事直接就ok了,但是确实速度太慢了!请问下这个怎么搞?谢谢!

    phfeifan6年前 (2018-08-11) Google Chrome 67.0.3396.99 Google Chrome 67.0.3396.99 Windows 7 x64 Edition Windows 7 x64 Edition回复
    • Chevereto后台“添加存储”里面的FTP“路径”直接填“/”。

      LALA6年前 (2018-08-12) Google Chrome 67.0.3396.99 Google Chrome 67.0.3396.99 Windows 10 x64 Edition Windows 10 x64 Edition回复

分享创造快乐

广告合作资源投稿