◉◡◉ 您好,欢迎到访伊成个人站!

centos7下安装fastDFS

准备工作

环境 : centos7

下载fastDFS

1
2
3
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
wget http://jaist.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz
wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz

下载完成之后可以更改tar包的名字,更改完成之后如下
image

下载nginx

1
http://nginx.org/en/download.html

安装

安装libevent

1
yum -y install libevent

image

接着 找到 fastDFS 目录下的 libfastcomm-1.0.7.tar.gz 对其解压

1
tar -zxvf libfastcommon-1.0.7.tar.gz

解压完成之后,进入解压后的文件

1
cd libfastcommon-1.0.7/

查看一下里面有什么文件
image

接着 运行make.sh 进行编译

1
./make.sh

等待编译完成,然后对其安装,执行如下命令

1
./make.sh install

安装完成之后,切换到 usr/lib64 目录

1
cd /usr/lib64/

执行如下命令

1
ll libfast*

image

找到lbfastcommon.so 这个文件,需要将它复制到 usr/lib 目录下
执行命令

1
cp libfastcommon.so /usr/lib/

安装 tracker

切换到 fastdfs-5.05.tar.gz 所在的目录
image

解压 fastdfs-5.05.tar.gz

1
tar -zxvf fastdfs-5.05.tar.gz

解压完成之后,切换到目录里面进行编译
image
执行命令

1
./make.sh

等编译完成之后,执行安装命令

1
./make.sh install

安装完成之后,有一部分的配置文件会在 /usr/bin/ 目录下,接着切换到 /usr/bin/ 目录进行查看
image
还有一部分配置文件存在于 /etc/fdfs/
image
接着切换到 fastdfs-5.05/conf/ 目录

1
cd /home/tar/fastDFS/fastdfs-5.05/conf/

需要把里面的配置文件复制到/etc/fdfs/ 目录
image
切换到 /etc/fdfs/ 进行查看
image

修改配置文件 tracker.conf

1
vim tracker.conf

image

修改了 base_path,然后退出保存。

退出之后,在根目录下创建刚刚修改的base_path 里面定义的目录,命令如下

1
mkdir /fastdfs/tracker -p

image
查看是否创建成功
image
在 fastdfs 下继续创建两个文件夹,后续会使用到的

1
2
mkdir storage
mkdir client

image

做完这一步操作之后,回到 /usr/bin/ 目录
image

在这里找到fdfs_trackerd文件,而这个文件就是用来启动tracker的文件。
执行启动命令

1
fdfs_trackerd /etc/fdfs/tracker.conf

假如你的tracker.conf 配置文件发生了变化,那么至需要在这个命令后面加一个restart 即可

1
fdfs_trackerd /etc/fdfs/tracker.conf restart

到此为止,fastDFS中的 tracker服务 已经OK了。

安装storage

切换目录到 /etc/fdfs/ 上面我们已经修改了tracker.conf,接着找到storage.conf文件
image

1
2
3
4
group_name=group1 // 组织名,改成你想要的即可
store_path0=/home/yuqing/fastdfs//图片存储路径
tracker_server=192.168.209.121:22122//IP配置为你当前的服务器ip,端口是默认的可不做修改
base_path=/fastdfs/storage // 这个目录路径在前面已经创建过的,在这里就直接写这个即可

这个文件就需要该这几个配置项,改为就直接保存退出。
切换到 /usr/bin/目录可以用来启动 storage 服务
image

找到 fdfs_storaged
执行命令

1
fdfs_storaged /etc/fdfs/storage.conf

如果storage.conf 有改动,可以重启storage服务就直接在上面的命令后面加一个 restart

1
fdfs_storaged /etc/fdfs/storage.conf restart

启动完成之后可以查看一下

1
ps aux | grep storage

image

到此为止,fastDFS中的 storage服务也已经OK了。

以上 storage服务和tracker服务都启动了,接着做个小测试。
在做这测之前,还需要几件事

配置client

首先切换到 /etc/fdfs/ 目录
image

修改 client.conf 配置文件

1
2
base_path=/fastdfs/client //这个目录也是之前已经创建好了的
tracker_server=192.168.1.10:22122 // IP修改为你的服务器IP 端口默认的可不做修改

修改完成之后,退出保存

测试

下面就可以做测试了。
首先还是要切换目录到 /usr/bin/
image

找到 fdfs_test 这个服务就可以做相应的测试,记得事先准备一张测试图片。
我这里事先准备了一张图片在根目录下
切换到 home 目录查看
image

执行命令

1
/usr/bin/fdfs_test /etc/fdfs/client.conf upload zhu.png

看见如下就代表上传成功了
image

说明:
上图可以看见我们曾配置的 组织名 group_name
还有文件名,以及访问图片的URL。

到这一步虽然有了这个图片的url 但是我们还是访问不到这个图片的,因为我们并没有配置对应的web服务器,接下来会配置nginx 。

思考一个问题,由上面的图片已经上传成功了,那这图片到底存储在哪里了呢?
这个取决于你的配置文件里面的配置,我这里是在这个路径下

1
/fastdfs/storage/data/00/00

image

异常情况
如果上传失败一般都是你的配置文件修改的有误,这里附上一个常见的错误场景
image

解决方法,参考这个链接
https://blog.csdn.net/egbertasd/article/details/90762478

修改完配置文件,记得重启对应的服务!

配置nginx

切换到目录 /home/tar/fastDFS/
找到对应的 fastdfs-nginx-module_v1.16.tar.gz
对其解压

1
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

解压完成之后 进入到 fastdfs-nginx-module
在进入到 里面的 src
修改 config 文件
image

删掉标红的三个 local ,因为和我们配置的路径不一致。

修改完成之后,保存退出。
操作完以上步骤之后,切换目录到 nginx 的tar包下
image

在安装nginx 之前要先安装必要的一些库

1
2
3
4
1. yum install gcc-c++
2. yum install pcre prce-devel
3. yum install zlib zili-devel
4. yum install openssl openssl-devel

接着解压 nginx

1
tar -zxvf nginx-1.12.2.tar.gz

进入 nginx
image

接下来需要运行一段配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=(这里填写你的fastdfs-ngix-module的路径)

复制在 nginx 下回车就可以运行
image

接着make 编译一下

1
make

编译完成之后,执行安装命令

1
make install

image

安装完成之后,在 /usr/local/ 目录下就会存在一个nginx文件夹
image

做到这一步,还需要一个fast和nginx的 “桥梁配置文件” 切换目录到

1
cd /home/tar/fastDFS/fastdfs-nginx-module/src

image

找到 mod_fastdfs.conf 文件
把它复制到 /etc/fdfs/

1
cp mod_fastdfs.conf /etc/fdfs/

进入 /etc/fdfs/ 目录进行查看并且使用 vim 修改这个文件

1
2
# the base path to store log files
base_path=/fastdfs/tmp

修改完成保存,然后在 fastdfs 下面创建 tmp 文件夹
image

在此 进入到 /etc/fdfs/ 目录
继续修改 mod_fastdfs.conf 文件

1
2
3
tracker_server=192.168.1.10:22122 //配置你的服务器ip
group_name=yicheng // 和之前配置的组织名要一致
url_have_group_name = true // 默认为关闭的 这里修改为true

修改完成之后保存退出。

接着到 /usr/local/nginx/conf 目录
修改nginx.conf文件
添加以下内容在 nginx.conf 文件

1
2
3
4
5
6
7
8
9
server{
listen 88;
server_name 192.168.1.10;

location /yicheng/M00 {
ngx_fastdfs_module;
}

}

接着可以进入sbin目录进行nginx的启动了
执行命令先检查一下

1
./nginx -t

image

在这里提示 /var/temp/nginx/ 目录不存在
执行以下命令

1
mkdir /var/temp/nginx -p

再次执行 ./nginx -t
image

发现没问题了,就可以直接启动nginx 了,执行命令

1
./nginx

image

打开浏览器输入IP访问试试
image
说明 nginx 已经成功启动了!!!

接着找一下开始上传成功的那个图片路径,复制到浏览器中访问一下。
image
突然发现还是访问不了这张图片,因为现在我们使用的是nginx 的服务器,上文中有一个fastDFS和nginx 的桥梁配置文件,里面没有配置存放路径。
进入 /etc/fdfs/ 目录,找到 mod_fastdfs.conf 文件,修改它

1
store_path0=/fastdfs/storage

保存退出。

接着重启 tracker , storage
image
重启 nginx
image

在浏览器刷新刚刚的url 进行查看!
image

到此,全文结束!

支付宝打赏 微信打赏

如果本文对你有所帮助,请打赏 1元就足够感动我 :)