当前位置: 首页 > news >正文

linux上安装fastdfs及配置

一、基础环境准备

1、所需软件

在这里插入图片描述

名称说明
libfastcommonfastdfs分离出的一些公用函数包
fastdfsfastdas软件包
fastdfs-nginx-modulefastdfst和nginx的关联模块
nginxnginxl软件包

2、编辑环境

安装一些基础的支持环境

yum install git gccc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y

如果不安装上面的基础环境 则后面安装时可能会出现相关命令找不见,如下
在这里插入图片描述
如果服务器无法访问外部网络,则只能通过离线包方式安装相关基础环境了。相关软件包已为大家准备妥当,敬请取用:
fastdfs相关离线软件包

2.1gcc安装

GCC为C语言编译器,由于fastdfs相关源码都是c语主编写的,所以环境上必须安装gcc
进入上传到服务器的gcc目录 执行以下命令 进行安装

rpm -Uvh *.rpm --nodeps --force
2.2 pcre安装

PCRE 作用是让 Nginx 支持 Rewrite 功能
安装命令如下

# 解压
tar -xzvf pcre-8.35.tar.gz
cd pcre-8.35/
./configure
make 
make install
2.3 安装openssl
tar -xzvf openssl-1.1.1h.tar.gz 
cd  openssl-1.1.1h
./config
make
make install
2.4 安装zlib
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
./configure
make
make install

3、磁盘目录

说明位置
所有安装包的位置/data/fastdfs-soft 将所准备的软件包上传至该目录
数据存储位置/data/fastdfs

4、相关fastdfs软件安装

对于服务器如果服务器有外网,可以使用git拉取源码下来进行编绎安装。如果没有外网环境,则可以通过拷贝软件包至服务器,然后解压后进行编辑安装

4.1 安装libfastcommon

方式一:通过git从网上拉取源码

git clone https://github.com/happyfish100/libfastcommon.git --depth 1

方式二:通过有网环境下载软件包 然后拷贝至服务器,解压 (我这里是通过这种方式上传的,zip包 使用unzip libfastcommon-1.0.43.zip 命令进行解压)
无论是第一种方式 还是第二种方式 获取到的都是源码软件包,当一切都准备好后,进入到libfastcommon目录下 执行下以命令进行编绎及安装

# 我这里是自己上传的包  是有版本号的 大家安装时 请根据自己的实际情况做路径调整
cd libfastcommon-1.0.43
./make.sh && ./make.sh install
4.2 安装fastdfs

同样安装fastdfs也可以通过git方式获取源码

git clone https://github.com/happyfish100/fastdfs.git --depth 1

也可以拷贝已下载的源码至服务器(我采用的就是拷贝的方式),然后进入到fastdfs目录 进行编绎安装

# 我这里是自己上传的包  是有版本号的 大家安装时 请根据自己的实际情况做路径调整cd fastdfs-6.06./make.sh && ./make.sh install

为了供nginx访问使用 还需要将http.conf 和mime.types文件拷贝至etc/fdfs目录下

# 我这里是自己上传的包  是有版本号的 大家做配置时 请根据自己的实际情况做路径调整
# 其实也可以同步/data/fastdfs-soft/fastdfs-6.06/conf目录下所有内容 到/etc/fdfs下,
# 否则后面则需手动cp 相应文件的sample 为配置文件 (即例 cp storage.conf.sample storage.conf)
cp /data/fastdfs-soft/fastdfs-6.06/conf/http.conf /etc/fdfs/
cp /data/fastdfs-soft/fastdfs-6.06/conf/mime.types /etc/fdfs/
4.3 fastdfs–nginx-module安装

源码获取同样可以通过git 或者拷贝上传方式
git方式

git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1

获取源码后 将其中的mod_fastdfs.conf 配置拷贝至/etc/fdfs目录下

# 我这里是自己上传的包  是有版本号的 大家做配置时 请根据自己的实际情况做路径调整 
cp /data/fastdfs-soft/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf  /etc/fdfs
4.4 nginx安装

nginx安装包获取 可以通过wget在线下载,也可以自己手动拷贝至服务器
wget方式

wget http://nginx.org/download/nginx-1.18.0.tar.gz

软件包获取到后进行解压 安装

#解压
tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
#添加上fastdfs-nginx-module模块的配置 (注意=号后面的路径 就是上一步4.3中的fastdfs-nginx-module的路径)
./configure --add-module=/data/fastdfs-soft/fastdfs-nginx-module-1.22/src/
# 编绎安装
make && make install

5、fastdfs相关部署 单机模式

5.1 域名配置 (非必须 可省略)

在 /etc/hosts 中配置i添加 例

127.0.0.1 fastdfs.com
5.2 tracker配置
# 创建目录
mkdir -p /data/fastdfs

修改tracker.conf配置

# 如果tracker.conf 文件不存在,则看看是否有tracker.conf.sample,如果有 则cp tracker.conf.sample tracker.conf一份。如果tracker.conf.sample也没有 则可以去到前面fastdfs软件目录中conf目下复制一份到/etc/fdfs目录下
vim /etc/fdfs/tracker.conf# 修改以下内容
# tracker服务器端口(默认22122 一般不用修改)
port=22122
# 存储日志和数据的根目录
base_path=/data/fastdfs 

永久关闭防火墙

systemctl disable firewalld.service

启动tracker服务

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start 

查看是否启动成功 通过下面的命令查看进程是否正常运行

ps -ef | grep tracker
5.3 storage配置

修改storage.conf配置

# 如果storage.conf 文件不存在,则看看是否有storage.conf.sample,如果有 则cp storage.conf.sample storage.conf一份。如果storage.conf.sample也没有 则可以去到前面fastdfs软件目录中conf目下复制一份到/etc/fdfs目录下
vim /etc/fdfs/storage.conf# 修改以下内容
# storage服务器端口(默认23000 一般不用修改)
port=23000
# 存储日志和数据的根目录
base_path=/data/fastdfs 
# storage虚拟磁盘路径,如果配了store_path0则对应的是M00,如果配置了store_path1 则是M01 以此类推
store_path0=/data/fastdfs
# tracker 服务器IP和端口 (可以是ip 也可以是域名) (如果配置的是外网ip或外网域名 则记得一定要在安全组放行)
tracker_server=fastdfs.com:22122
# http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
http.server_port=80

启动storage

 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
5.4 client客户端测试

修改client.conf配置

vim /etc/fdfs/client.conf#需要如下这些内容
bast_path=/data/fastdfs
# tracker服务器ip和端口  (如果配置的是外网ip或外网域名 则记得一定要在安全组放行)
tracker_server=fastdfs.com:22122

测试文件上传 上传后返回ID则表示上传成功 如:group1/M00/00/00/eSgtrGXp7K2ANDgsAAAADK8IOy0497.txt
然后我们也可以去数据目录下查看上传的文件,验证是否落盘成功

# 随便进一个目录 例
cd /data
# 创建一个测试文件
touch a.txt
echo 'hello world' > a.txt
#上传文件 /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /data/a.txt
# 删除文件/usr/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/eSgtrGXp7K2ANDgsAAAADK8IOy0497.txt

6、配置nginx访问

配置mod_fastdfs.conf

vim /etc/fdfs/mod_fastdfs.conf
#需修改的内容如下
# tracker服务器ip和端口
tracker_server=fastdfs.com:22122
url_have_group_name= true
store_path0=/data/fastdfs

配置nginx.conf

vim /usr/local/nginx/conf/nginx.conf
#添加如下配置 或者修改为以下配置
server {listen       80;  ## 该端口要和storage.conf中的http.server_port相同server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location ~/group[0-9]/ {ngx_fastdfs_module;}
}

然后启动nginx

/usr/local/nginx/sbin/nginx

通过服务ip:端口/文件的key 即可访问文件了

相关文章:

  • html5cssjs代码 002 50以内的加法算式
  • 【kotlin】在SpringBoot项目中使用kotlin协程coroutine实现方法的异步延迟调用,例如延迟查询短信发送详情结果。
  • H5 宠物店官网源码
  • 1054:三角形判断
  • Docker常见指令
  • 重塑语言智能未来:掌握Transformer,驱动AI与NLP创新实战
  • 进线程学习--01
  • 【wine】WINEDEBUG 分析mame模拟器不能加载roms下面的游戏 可以调整参数,快速启动其中一个游戏kof98
  • MySQL:概念简章
  • 从顺序表到链表再到队列和栈
  • 知识碎片收集
  • 【Redis笔记】基于Redis的Stream结构作为消息队列,实现异步任务
  • 宏集案例 | 风电滑动轴承齿轮箱内多点温度采集与处理
  • 【前端】处理一次性十万条数据渲染方案(不考虑后端分页)
  • 【安卓与苹果区别】详细讲解
  • JavaScript 如何正确处理 Unicode 编码问题!
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • Angularjs之国际化
  • CentOS 7 防火墙操作
  • Fundebug计费标准解释:事件数是如何定义的?
  • Java 多线程编程之:notify 和 wait 用法
  • Linux各目录及每个目录的详细介绍
  • MQ框架的比较
  • TCP拥塞控制
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 判断客户端类型,Android,iOS,PC
  • 扑朔迷离的属性和特性【彻底弄清】
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • #《AI中文版》V3 第 1 章 概述
  • #pragma once
  • #stm32整理(一)flash读写
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • $$$$GB2312-80区位编码表$$$$
  • (26)4.7 字符函数和字符串函数
  • (八)Spring源码解析:Spring MVC
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • **PHP分步表单提交思路(分页表单提交)
  • ../depcomp: line 571: exec: g++: not found
  • .Mobi域名介绍
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .net访问oracle数据库性能问题
  • @Query中countQuery的介绍
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [AutoSAR 存储] 汽车智能座舱的存储需求
  • [C++]运行时,如何确保一个对象是只读的
  • [ExtJS5学习笔记]第三十节 sencha extjs 5表格gridpanel分组汇总
  • [hdu1561] The more, The Better 【树形DP】
  • [JavaEE] 线程与进程的区别详解
  • [JS真好玩] 掘金创作者必备: 监控每天是谁取关了你?
  • [Linux]知识整理(持续更新)