注:如果还没开始安装,请根据本教程完整走完,每个教程都有差异,拼拼凑凑更容易出问题。本教程各个包的版本都是亲自试过没问题的,熟练的半小时内即可安装好。
由于在学习阶段,看了许多别人的教程和视频,但是拼拼凑凑的会出很多问题,故自己整理了一套安装方法,给自己参考
FastDFS(Fast Distributed File System)是一个开源的分布式文件系统,主要用于文件的存储与访问。它支持海量文件存储,并能实现高效的文件上传和下载。它可以通过多台服务器扩展存储容量,提供海量、高可靠的文件存储服务。
FastDFS 的原理是将一个大文件切分成多个小文件,分散地存储在多个服务器上,再通过一些元数据进行索引和管理,实现文件的访问。
具体地,FastDFS 主要由 Tracker Server 和 Storage Server 两个组成部分,Tracker Server 用于管理 Storage Server ,也就是负责元数据管理,而 Storage Server 负责对文件进行实际存储。客户端上传文件时先向 Tracker Server 发送上传请求,Tracker Server 会选择一个空闲的 Storage Server,将文件传输到 Storage Server 上进行存储,最后将存储路径和文件信息返回给客户端,客户端以后可以通过这个路径直接访问文件。
fastdfs是c语言开发,要先安装gcc环境
yum -y install gcc-c++

安装完毕后会提示

注:linux配置环境可能会存在需要其他依赖问题,yum命令能够帮你搞定其他的依赖关系,不需要找其他的依赖,只需要输入你需要的环境,帮你一步到位
配置libevent环境
yum -y install libevent

本人已经安装过了,提示已安装

上传安装文件
链接:https://pan.baidu.com/s/1LeDSYUW9o1RGqOlFrlbnCg?pwd=1234
提取码:1234
上传到/usr/local/fastdfs

注:建议新手同学可以配合xftp7一起使用,新建文件不执行命令,右键即可新建!
安装libfastcommon

输入解压命令
unzip libfastcommon-1.0.36.zip
如果提示为找到该命令

只需
yum -y install zip unzip
完成解压后进入解压后的文件夹
cd libfastcommon-1.0.36/

执行
./make.sh
出现该页面即完成

再执行
./make.sh install

现需要将文件拷贝出来
cd /usr/lib64/
cp libfastcommon.so /usr/lib/
#查看是否拷贝成功,出现文件目录即代表成功
find /usr/lib/ -name libfastcommon.so
至此,libfastcommon安装成功
安装fastdfs-5.11
返回原目录
cd /usr/local/fastdfs/
#删除已解压的包
rm -rr libfastcommon-1.0.36.zip
#解压
tar -zxf fastdfs-5.11.tar.gz
#进入解压后的目录
cd fastdfs-5.11/
#执行安装
./make.sh
完成后执行
./make.sh install

进入文件
cd /usr/local/fastdfs/fastdfs-5.11/conf/
cp * /etc/fdfs/
cd /usr/local/fastdfs/fastdfs-5.11/tracker/
vim /etc/fdfs/tracker.conf
修改

执行启动
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

安装Storage
cd /usr/local/fastdfs/fastdfs-5.11/storagevim /etc/fdfs/storage.conf
修改:


改成当前服务器地址

注意:本人是本机连接其他电脑的虚拟机系统,故要增加了一个端口映射操作!!
所以此处应该写的是宿主机的IP
在其他电脑的虚拟机上配置22122端口号!!

启动:
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
启动成功后,可以看到在/usr/local/fastdfs/fastdfs-5.11/storage目录下生成了一个Date文件。
本人在安装时,没有自动生成Data文件,查看日志后发现启动失败

开启22122端口号即可。
测试是否成功(配置客户端)
cd /usr/local/fastdfs/fastdfs-5.11/client/
cp libfdfsclient.so /usr/lib
vim /etc/fdfs/client.conf
修改这个两个地方

测试,先写一篇文章,随便写什么内容
vim /root/hi.html
保存文件测试
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /root/hi.html

成功后,会返回一个路径
到此为止,fastdfs内部就已经OK了,但是目前还不能通过外部访问。
为了使其能够通过外部访问,我们需要安装nginx和nginx插件
安装nginx和nginx插件
客户端浏览器不能访问我们fastdfs的原因就是fastdfs不能够处理http协议,所以我们安装nginx的目的是让fastdfs具有http访问的能力。
Nginx和Fastdfs本来之间是没有联系的,但是通过Nginx和Fastdfs组合的一个插件就可以处理。
逻辑为:客户端发送http请求->Nginx(http服务器)->Nginx+FastDfs插件->FastDfs
#安装PCRE
yum install -y pcre pcre-devel
#安装zlib
yum install -y zlib zlib-devel
#安装openssl
yum install -y openssl openssl-devel
#一步到位
yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget
解压
cd /usr/local/fastdfs/
tar -zxf fastdfs-nginx-module_v1.16.tar.gz
cd fastdfs-nginx-module/
修改配置文件
cd src/
vim config
替换整个文档
ngx_addon_name=ngx_http_fastdfs_moduleif test -n "${ngx_module_link}"; thenngx_module_type=HTTPngx_module_name=$ngx_addon_namengx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"ngx_module_libs="-lfastcommon -lfdfsclient"ngx_module_srcs="$ngx_addon_dir/ngx_http_fastdfs_module.c"ngx_module_deps=CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'". auto/module
elseHTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_fastdfs_module.c"CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"CORE_LIBS="$CORE_LIBS -lfastcommon -lfdfsclient"CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'"
fi
cp mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf
修改

替换为/usr/local/fastdfs/fastdfs-5.11/storage

至此,插件的安装OK了
安装Nginx
cd /usr/local/fastdfs/
tar -zxf nginx-1.8.1.tar.gz
cd nginx-1.8.1/
#修改配置
./configure --add-module=/usr/local/fastdfs/fastdfs-nginx-module/src
会出现一长串,即为成功

make
make install
注:这个地方很多人会错误,我也出现了不少问题,最终是把fastdfs-nginx-module换成1.16就OK了
cd /usr/local/nginx/conf
vim nginx.conf
手动输入

location ~/group([0-9])/M00 {ngx_fastdfs_module;root /fastdfs/storage/data;}
#在该文件的上面第二行插入
user root;

#我的配置文件!源码
Xshell 6 (Build 0111)
Copyright (c) 2002 NetSarang Computer, Inc. All rights reserved.Type `help' to learn how to use Xshell prompt.
[G:\~]$ Connecting to 10.8.21.223:10023...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.Last login: Wed Mar 22 16:34:21 2023 from 10.8.22.131
[root@localhost ~]# cd /usr/local/nginx/conf/
[root@localhost conf]# vim nginx.conf#user nobody;
worker_processes 1;
user root;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024;
}http {include mime.types;default_type application/octet-stream;#log_format main '$remote_addr - $remote_user [$time_local] "$request" '# '$status $body_bytes_sent "$http_referer" '
"nginx.conf" 120L, 2783C 1,0-1 顶端
·
#启动进程
./nginx
#看一下是否成功启动
ps -aux | grep nginx

同时出现这两行代表成功
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /root/hi.html
执行这个命令,复制地址到浏览器中打开,就会出现之前输入的内容,代表成功
如需在Springboot上部署FastDFS,请看Spring boot集成FastDFS