lala.im:CentOS7安装Pure-FTPd并配置Chevereto外部存储

運維技術·lala.im · 2018-03-23 · 179 人浏览

原文地址:https://lala.im/3046.html,請支持原作者!該處僅作轉載。

我说这是我人生当中第一次在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错误。没办法只能把系统重装了重新来一遍,然后就好了。玄学的是步骤完全一样为什么第一次就是不行,我也是很醉的。。。

運維技術 網盤 lala.im
Theme Jasmine by Kent Liao