注:如果还没开始安装,请根据本教程完整走完,每个教程都有差异,拼拼凑凑更容易出问题。本教程各个包的版本都是亲自试过没问题的,熟练的半小时内即可安装好。
由于在学习阶段,看了许多别人的教程和视频,但是拼拼凑凑的会出很多问题,故自己整理了一套安装方法,给自己参考
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/storage
vim /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_module
if test -n "${ngx_module_link}"; then
ngx_module_type=HTTP
ngx_module_name=$ngx_addon_name
ngx_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
else
HTTP_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