Fastdfs安装(超级无敌详细版)

article/2025/9/1 13:45:14
注:如果还没开始安装,请根据本教程完整走完,每个教程都有差异,拼拼凑凑更容易出问题。本教程各个包的版本都是亲自试过没问题的,熟练的半小时内即可安装好。

由于在学习阶段,看了许多别人的教程和视频,但是拼拼凑凑的会出很多问题,故自己整理了一套安装方法,给自己参考

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 上进行存储,最后将存储路径和文件信息返回给客户端,客户端以后可以通过这个路径直接访问文件。

  1. fastdfs是c语言开发,要先安装gcc环境

yum -y install gcc-c++

安装完毕后会提示

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

  1. 配置libevent环境

yum -y install libevent

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

  1. 上传安装文件

链接:https://pan.baidu.com/s/1LeDSYUW9o1RGqOlFrlbnCg?pwd=1234

提取码:1234

上传到/usr/local/fastdfs

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

  1. 安装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安装成功

  1. 安装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
  1. 安装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端口号即可。

  1. 测试是否成功(配置客户端)

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插件

  1. 安装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了

  1. 安装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


http://chatgpt.dhexx.cn/article/xHwKNh6p.shtml

相关文章

MBR引导程序源码理解

目录 MBR引导程序源码理解序参考链接 开机流程简述与MBR引导程序的关系进入 BIOS 确认开机启动磁盘获取引导磁盘第一扇区MBR数据反汇编MBR.bin源码解读00000000 EB63 jmp short 0x6500000065 FA cli00000066 90 nop00000067 90 nop00000068 F6C280 test dl,0x800000006B 7405 j…

IDEA 创建Maven Web项目

背景 公司有一个非常老的项目,决定进行简单重构,纳入自动化流水线部署的序列。原项目采用很古老的Jar包依赖模式,也就是直接将jar包放在项目中。同时,项目结构也非常奇特,不是标准的Web项目目录结果。 于是&#xff…

确保web地址正确解决方案

确保web地址正确 重置ie解决 1.首先,进行打开一个为电脑中一个ie的浏览器,进行双击打开即可。 2.打开了一个浏览器之后,进行点击右上角中的 设置 图标。 3.进行点击了设置之后,弹出了下拉菜单选中为 internet 选项。 4.这样就…

WebAPI简介

1、WebAPI概述 为什么要使用WebAPI: Web API最重要的是可以构建面向各种客户端的服务。 ASP.NET WebAPI是什么: 官方定义如下,强调两个关键点,即可以对接各种客户端(浏览器,移动设备),构建ht…

深度解读互联网新时代:Web3.0

文章目录 深度解读互联网新时代——Web3.0一、Web3 —— 中心化网络的新兴名词二、Web3 “全家福”三、Web3 是互联网的货币层四、Web3 是互联网的身份层五、Web3 通过售卖数据来牟利的反击六、Web3 还拥有平台本身的一种方式七、Web3 是一种新的互联网赞助模式八、Web3 让建立…

使用Docker部署web项目

1、简介 本片文章主要介绍如何使用docker部署web项目。关于docker的安装及基本使用在笔者的另一篇文章中有相关的介绍。 链接 https://blog.csdn.net/H_porridge/article/details/123609120 2.准备一个web项目 自己有项目的可以用自己项目来部署,笔者此处也有一个…

CTFshow web17

萌新计划 进入题目,是一行php代码,发现c传参过滤掉了php,尝试一下日志文件包含漏洞 nginx的日志文件位置是/var/log/nginx/access.log 发现日志文件记录了User-Agent 那么我们就在User-Agent中写入一句话木马 上传成功,接下来我…

【计算机网络】Web服务器的配置

目录 课题描述 需求分析 2.1 WEB服务器基本构架 2.1.1 WEB服务器和浏览器 2.2 HTTP协议 2.2.1 HTTP简介 2.2.2 HTTP工作原理 2.3 FTP协议 2.3.1 FTP简介 2.3.2 FTP工作原理 2.4 ISS服务作用 概要设计 3.1 ISS服务器的安装与配置 3.2 详细设计 结果分析 4.1 We…

Zabbix web 监控

Zabbix web 监控 1、介绍 1、 Web 监控 监控指定的站点的资源下载速度,及页面响应时间,还有响应代码; 1、术语 web Scenario: web场景(站点) web page :web页面,一个场景有多个…

eclipse创建web项目

web创建 创建web项目错误解决方法如何设置Apache服务器 创建web项目 步骤1:创建Dynamic Web Project–动态web项目。 打开eclipse,在工具栏选在New–>Dynamic Web Project 在打开的Dynamic Web Project窗口,输入项目名。选择tomcat&…

idea部署web项目

资料来源 1.Idea 2020.2 创建web、Spring项目 2.idea部署web项目 3.IDEA 配置并运行tomcat 4.[IDEA:“Web”Facet resources are not included in an artifact] 5.【错误解决】Intellj(IDEA) warning no artifacts configured 1.idea中如何创建项目…

ctfshow-WEB-web7

ctf.show WEB模块第7关是一个SQL注入漏洞,注入点是数值型注入,源码中过滤了空格,我们可以使用括号()或者注释/**/来代替空格 页面中有一个文章列表,随便点一个 从url地址栏中可以看到,页面通过文章的id值来查询文章内容,我们可以考虑SQL注入漏洞 首先判断注入点,输入以下payloa…

Web是什么意思

Web是什么意思?可能大家经常听说Web这个词,却不知道它的真正含义,更不了解Web能用来干什么。那么今天我将为大家讲解一下Web的意思,以及学习Web到底有没有前景。 1、Web是什么意思 Web是什么意思?其实这是World Wide …

flutter开发web项目

Flutter Web在美团外卖的实践 - 掘金 让项目支持web :flutter create . 运行:flutter run -d chrome 运行指定渲染方式:flutter run --web-renderer html -d chrome 打包:flutter build web --release --web-renderer html 官…

1 使用Web2Py框架搭建网站

更多文章请关注: https://eightplus.github.io/ IDE:PyCharm 1、创建web2py项目 在下图左侧选中Web2Py,在右侧填写项目路径和应用名称,我这里是第一次创建,所以直接点击"Create"创建项目,此时…

通俗易懂web3.0

目录 前言一、WEB1.0二、WEB2.0三、WEB3.0区别最后 前言 大家好,我是清风。互联网连接了人与人,在过去的30年中,互联网技术不断进化、演化,向纵深发展,政治、经济、社交、生活、工作已经几乎离不开互联网。我们经历了…

ctfshow-WEB-web2

ctf.show WEB模块第2关是一个SQL注入漏洞,请求方式是POST请求,注入点是单引号字符型注入,flag就藏在当前的数据库的flag表中,使用联合注入获取数据即可 在用户名的输入框中输入万能账号 a or true #,密码随便输 登录成功,万能账号生效了,并且把查询到的用户名显示到了页面中,既…

Web3和Web2有什么区别?为什么Web3是未来?(以“以太坊”为例解读)

Web3和Web2有什么区别?为什么Web3是未来? 最近,Web3的概念十分火爆,下面这张图也是很有趣的描述了Web的一些特质,在社交软件内广为流传,那Web3到底是什么呢? Web2 是指我们大家今天都知道的互联…

Web2与Web3开发的不同之处

Web2是引入交互功能的第二代互联网,也是我们今天所熟悉的。随着Web的不断发展,第三代互联网,也被称为Web3,正处于积极开发中。Web3引入了在区块链上运行的去中心化和无需许可的系统。但是Web2和Web3开发之间有什么区别呢&#xff…

软件项目管理:外包 outsourcing、采购 procurement、合同 contracts

文章目录 外包不同类型为什么选择外包好处坏处 采购 procurementplanning 阶段-弄清需求 & 市场 / 评估风险Source 阶段-确定供应商具体过程RFxState of Work (SOW)评估步骤 Evaluation process Manage 阶段 Contract 合同定义种类固定价格合同适用场景(保守&am…