保姆级fastDFS安装教程

一、软件准备

环境需要准备四个包,分别是:

1. libfastcommon_1.0.36

2. FastdfsFastdfs_v5.11

3. fastdfs-nginx-module5.11

4. nginxnginx-1.12.2

二、环境准备

安装perl环境,后续编译fastdfs会用到

yum -y install perl*
yum -y install cpan

安装gcc编译器,fastdfs是用c语言开发而来的。

yum -y install gcc-c++

在安装Nginx之前需要先安装一些模块依赖的lib库:pcre-devel、zlib-devel、openssl-devel

如果不需要安装Nginx,这几个库可以不安装。

yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel

解压压缩包

#在/usr/local下创建文件夹
mkdir fastdfs
 
 
#解压上传的四个文件到上面的文件夹中
tar -zxvf libfastcommon-1.0.36.tar.gz -C /usr/local/fastdfs/
tar -zxvf fastdfs-5.11.tar.gz -C /usr/local/fastdfs/
tar -zxvf nginx-1.12.2.tar.gz -C /usr/local/fastdfs/
tar -zxvf fastdfs-nginx-module-1.20.tar.gz -C /usr/local/fastdfs/

三、安装libfastcommon


#进入libfastcommon目录
cd libfastcommon-1.0.36/
#编译安装
./make.sh
./make.sh install

出现上图,表明libfastcommon安装成功。

四、安装Fastdfs

#同理,进入fastdfs-5.11
cd fastdfs-5.11/
#编译
./make.sh
./make.sh install

编译成功,会生成一下四个配置文件:

进行拷贝重命名,以备用,执行命令如下:

cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp storage_ids.conf.sample storage_ids.conf
cp tracker.conf.sample tracker.conf

执行结果如下:

再讲conf文件夹下的http.conf 和 mime.types文件拷贝到/etc/fdfs/目录中,执行命令如下:

cp http.conf /etc/fdfs/
cp mime.types /etc/fdfs/

到这,fastdfs安装就成功了。下面就是对一下配置文件的配置了。

4.1 配置Tracker

创建文件夹:即用于存储tracker的数据 文件和日志文件等。此路径在后续的tracker文件配置中都用到。

mkdir /opt/fastdfs_tracker

修改/etc/fdfs目录下的tracker.conf配置文件,打开文件后依次做如下修改:修改成刚创建的路径

配置完毕后,启动tracker服务器

#启动
service fdfs_trackerd start

启动完成后,可以在刚创建的文件夹中(/opt/fastdfs_tracker)找到两个新文件,如下图所示:
 

4.2 配置Storage

配置storage和配置tracker流程一致。

创建storage服务器的文件目录fastdfs_storage,同时比tracker多创建一个文件存储路径,目录为:fastdfs_storage_data,用来存放接收的文件。

mkdir /opt/fastdfs_storage
mkdir /opt/fastdfs_storage_data

同理,修改storage的配置文件。目录/etc/fdfs/storage.conf的文件。

cd /etc/fdfs/
vim storage.conf

这个配置文件需要修改三个位置,分别如下图:

第一个位置:

第二个位置:

第三个位置:

这三个位置配置完后,需要开启storage。

这里需要注意:开启storage时,必须先开启tracker。

因为上面我们已经开启了tracker,所以现在开启storage即可。

service fdfs_storaged start

执行后,会有如下提示:

证明启动成功了。

此时,可以再创建的/opt/fastdfs_storage_data/目录下,看到data文件夹。如下图所示:

到这了,storage的配置就完成了。

查看一下这tracker和storage两个服务的状态,用下面的命令查看:

netstat -unltp |grep fdfs

执行结果:

可以看到,两个端口已经成功监听了。

tracker:22122

storage:23000

确认storage服务器启动成功后,还有一项工作就是看看storage服务器是否已经登记到tracker服务器(也可以理解为tracker与storage是否整合成功),运行以下命令:

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

执行结果如下图:

到这里,storage服务器真正配置完成。

4.3 配置客户端client

同理,编辑/etc/fdfs/client.conf文件,用如下命令:

cd /etc/fdfs/
vim client.conf

修改两个位置即可,见下图:

配置成功后,可以做个简单的测试验证。

首先,创建一个文件,并编写内容。

#里面随便写点数
vim t.txt

其次,执行客户端上传命令:

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf t.txt

执行后,会出现下图,证明上传成功:

返回的路径就只文件的存储目录,在/opt/fastdfs_storage_data目录下

到这里,测试就成功了。

如果想在浏览器里面查看存储的文件,就需要执行第五、第六的章节了。

安装Nginx和fastdfs-nginx-module。如果不需要再浏览器中查看,可以忽略下面的内容。

五、安装fastdfs-nginx-module

进入fastdfs-nginx-module/src中,将mod_fastdfs.conf文件复制到/etc/fdfs/目录下

cp mod_fastdfs.conf /etc/fdfs/
 
#并且修改mod_fastdfs.conf的内容
 
vim /etc/fdfs/mod_fastdfs.conf

这个配置文件需要修改三个位置。

第一个位置:

第二个位置:

第三个位置:

修改fastdfs-nginx-module-1.20/src/config文件,修改如下:(为了解决后面Nginx编译失败)

ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

到这,插件配置完毕。

六、安装Nginx

进入Nginx的目录

cd /usr/local/fastDfs/nginx-1.12.2/

对Nginx重新config(就是把上面的nginx插件加入到Nginx中)

先查询插件的解压路径(我的在/usr/local/fastDfs/fastdfs-nginx-module-1.20/src)

查询后填写在module=后面

进入到nginx文件夹中,执行此命令

./configure --add-module=/usr/local/fastDfs/fastdfs-nginx-module-1.20/src

插件安装成功后在进行进行编译安装

make
make install

安装完成后再指定路径/usr/local/nginx可查看到安装的目录

进入到安装目录后,再进入conf

编辑nginx.conf

增加以下内容


#location放在server里面
location ~/group1/M00 {
      root /opt/fastdfs_storage_data/data;
      ngx_fastdfs_module;
}

再进入sbin启动Nginx

cd ..
cd sbin/
./nginx

启动成功后查看进程

ps -aux | grep nginx

在输入服务器的公网IP,可以看见nginx的页面。

我们再来测试刚刚上传的txt

ip后再加上这一串,就可以在浏览器上访问了

至此,全部完成

成功后,可以将tracker服务和Storage设置为开机启动

打开/etc/rc.d/目录,在rc.local中添加service fdfs_trackerd start和service fdfs_storaged start

并且对rc.local进行授权。

授权

chmod +x /etc/rc.d/rc.local

到此,全部安装成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/149565.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python武器库开发-flask篇之URL重定向(二十三)

flask篇之URL重定向(二十三) 通过url_for()函数构造动态的URL: 我们在flask之中不仅仅是可以匹配静态的URL,还可以通过url_for()这个函数构造动态的URL from flask import Flask from flask import url_forapp Flask(__name__)app.route(/) def inde…

为忙碌的软件工程师精心准备的编码面试准备材料,超过 100,000 人受益!

这是一个针对技术面试准备的手册。它收集了大量的面试问题和答案,涵盖了算法、系统设计、前端等主题,并且还在不断更新和完善中。 这个项目是“Tech Interview Handbook”,解决了求职者在技术面试中遇到的各种难题,帮助他们更好地…

Jenkins的一些其他操作

Jenkins的一些其他操作 1、代码仓库Gogs的搭建与配置 Gogs 是一款极易搭建的自助 Git 服务,它的目标在于打造一个最简单、快速和轻松的方式搭建 Git 服务。使用 Go 语言开发的它能够通过独立的二进制进行分发,支持了 Go 语言支持的所有平台&#xff0…

vivado产生报告阅读分析-Report Power4

在布线后会生成“ Power Report ” ( 功耗报告 ), 它基于当前器件工作条件和设计的切换率来报告功耗详情。功耗分析要求网表已完成综合或设计已完成布局布线。 • set_operating_conditions 命令用于设置工作条件。 • set_switching_ac…

【深度学习】SimSwap: An Efficient Framework For High Fidelity Face Swapping 换脸,实战

代码:https://github.com/neuralchen/SimSwap 文章目录 摘要介绍RELATED WORK实验结论代码实操 SimSwap是一个高保真度人脸交换的高效框架。它将源脸的身份转移到目标脸上,同时保留目标脸的属性。该框架包括ID注入模块(IIM)&#…

【Python基础篇】标识符

博主:👍不许代码码上红 欢迎:🐋点赞、收藏、关注、评论。 格言: 大鹏一日同风起,扶摇直上九万里。 文章目录 一 Python中的标识符二 Python中常见的关键字三 合法的标识符 一 Python中的标识符 定义&…

计算机视觉的应用16-基于pytorch框架搭建的注意力机制,在汽车品牌与型号分类识别的应用

大家好,我是微学AI,今天给大家介绍一下计算机视觉的应用16-基于pytorch框架搭建的注意力机制,在汽车品牌与型号分类识别的应用,该项目主要引导大家使用pytorch深度学习框架,并熟悉注意力机制模型的搭建,这个…

Spring Framework 核心容器详解:Core、Beans、Context 和 Expression Language 模块

Spring可能成为您的所有企业应用程序的一站式商店。但是,Spring是模块化的,允许您挑选适用于您的模块,而无需引入其他模块。下面的部分提供了Spring Framework中所有可用模块的详细信息。 Spring Framework提供了大约20个模块,可…

本地顺风车小程序源码系统 源码开源可二次开发 出行无忧:一键预约顺风车 带完整搭建教程

共享经济和互联网技术的发展。随着人们出行需求的不断增加,顺风车作为一种绿色、共享的出行方式,越来越受到广大用户的青睐。为了满足这种需求,本地顺风车小程序应运而生,为用户提供了一种方便、快捷、可靠的顺风车出行服务。 以…

栈和队列:队列

目录 队列概念: 队列: 先进先出: 与栈的区别: 队列的实现: 关于节点指针的封装: 初始化: 入队: 出队: 获取队头元素和获取队尾元素: 判断队列是…

如何以编程方式获取Android手机的电话号码?

在创建Android应用程序时,很多时候我们需要通过手机号码进行身份验证。为了增强用户体验,我们可以在移动系统中自动检测手机号码。因此,让我们开始一个android项目吧!我们将创建一个按钮,单击它时将获得一个手机号码并将其显示在 TextView 中。 分步实施 步骤 1:创建新项…

程序员突如其来的生日惊喜

不得不说,今天就是我的生日。也就是吹个蜡烛吃个蛋糕,但是我非常惊讶,我的博客在今天突然飙涨! Top1 我自己看的时候都懵了,就是存了一下自己的程序,然后这个阅读,是真的出乎我的意料。我完全没…

掌握接口自动化测试,看这篇文章就够了,真滴简单

前言: 接口测试在我们测试工作当中,经常会遇到,对于接口自动化操作,也越来越多的公司进行实践起来了,市面上有很多工具可以做接口自动化比如:Postman、JMeter、SoapUI等。这一篇安静主要介绍通过代码的形式…

CCF CSP认证历年题目自练Day46

兄弟们记得去官网报名CSP认证。 题目 试题编号: 201709-3 试题名称: JSON查询 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式&#xff…

“大数据分析师”来了,提高职业含金量,欢迎来领

大数据分析师是指在不同行业中,专门从事相关数据的收集、整理、分析,并依据数据通过科学算法模型进行行业研究、评估和预测等工作的专项人才。应用行业涉及互联网信息技术企业、科研院校、金融行业、制造业、物流、生物医疗、农业等大数据相关行业。 常…

IDEA如何打断点调试

目录 1. 设置断点2. 调试3. 调试的基本操作3.1 step over3.2 step into 跟 Force step into3.3 step out3.4 resume program3.5 mute breakpoints3.6 view breakpoints3.6 条件断点 编写代码的时候,有时候我们需要跟踪代码的运行情况,使用断点调试就是一…

基于Vue+SpringBoot的农村物流配送系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统登录、注册界面2.2 系统功能2.2.1 快递信息管理:2.2.2 位置信息管理:2.2.3 配送人员分配:2.2.4 路线规划:2.2.5 个人中心:2.2.6 退换快递处理:…

【Machine Learning in R - Next Generation • mlr3】

本篇主要介绍mlr3包的基本使用。 一个简单的机器学习流程在mlr3中可被分解为以下几个部分: 创建任务 比如回归、分裂、生存分析、降维、密度任务等等挑选学习器(算法/模型) 比如随机森林、决策树、SVM、KNN等等训练和预测 创建任务 本次示…

创信短信API的无代码开发集成:电商平台、CRM和用户运营

无代码开发:集简云与创信短信API的连接 创信短信API的无代码开发集成,旨在为电商平台、CRM和用户运营提供便利。作为一款超级软件连接器,集简云可以在无需开发,无需代码知识的情况下,轻松连接创信短信与近千款软件系统…

软文营销如何正确蹭热点?媒介盒子为您解答

软文营销过程中为什么需要借助热点营销?热点营销的三大优势就是“传播速度快、爆发效果猛、有效时间短”,追热点的最终目的就是为了给产品或品牌带来关注度。 虽然蹭热点很重要,但是也有许多品牌在营销过程中因为没搞清楚状况就翻车&#xf…