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 即可访问文件了

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

复制表

目录 复制表 将部门 30 的所有员工信息保存在 emp30 表中 将复杂查询结果创建为表 只将 emp 表的结构复制为 empnull 表 从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 复制表 严格来说,复制表不是复制操作&am…

Node.Js编码注意事项

Node.js 中不能使用 BOM 和 DOM 的 API,可以使用 console 和定时器 APINode.js 中的顶级对象为 global,也可以用 globalThis 访问顶级对象 浏览器端js的组成 Node.js中的JavaScript组成 相比较之下发现只有console与定时器是两个API所共有的&#xff…

Graphpad Prism10.2.1(395) 安装教程 (含Win/Mac版)

GraphPad Prism GraphPad Prism是一款非常专业强大的科研医学生物数据处理绘图软件,它可以将科学图形、综合曲线拟合(非线性回归)、可理解的统计数据、数据组织结合在一起,除了最基本的数据统计分析外,还能自动生成统…

windows server 2019 服务器配置的方法步骤

一、启用远程功能二、测试三、解决多用户登录的问题 一、启用远程功能 右键点击【此电脑】–【属性】,进入“【控制面板\系统和安全\系统】”,点击-【远程设置】(计算机找不到就使用【winE】快捷键) 2、在“远程桌面”下方,点击【允许远程连…

多核多cluster多系统之间缓存一致性概述

目录 1.思考和质疑2.怎样去维护多核多系统缓存的一致性2.1多核缓存一致性2.2多Master之间的缓存一致性2.3dynamIQ架构同一个core中的L1和L2 cache 3.MESI协议的介绍4.ACE维护的缓存一致性5.软件定义的缓存和替换策略6.动图示例 本文转自 周贺贺,baron,代…

StableDiffusion3 官方blog论文研究

博客源地址:Stable Diffusion 3: Research Paper — Stability AI 论文源地址:https://arxiv.org/pdf/2403.03206.pdf Stability.AI 官方发布了Stable diffusion 3.0的论文研究,不过目前大家都沉浸在SORA带来的震撼中,所以这个水…

JavaScript基础Ⅱ

接上文 JavaScript基础Ⅰ JavaScript基础Ⅰ-CSDN博客 目录 第2章 JavaScript基础语法(掌握) 11-JS代码调试 12-JS函数 第3章 JS事件 14-事件的绑定方式 常用事件(了解) 15-常用事件 第4章 JS内置对象(掌握) 16-数组 17-日期 18-数学运算 19-数字 20-全局函数 第2章…

CrossOver2024实现Mac/Linux上快速运行Win软件和游戏

作为软件产品专家,我对各类软件都有较为深入的了解,下面介绍CrossOver2024这款软件的功能特点。 CrossOver2024是一款功能强大的类虚拟机软件,它的设计目标是在Mac和Linux系统上实现Windows软件和游戏的快速运行。这款软件不仅具有出色的兼容…

【SSM】整合原理和配置实战

文章目录 SSM整合是什么?SSM整合核心问题第一问:SSM整合需要几个IoC容器?第二问:每个IoC容器对应哪些类型组件?第三问:IoC容器之间关系和调用方向?第四问:具体多少配置类以及对应容器…

Mybatis-Plus——04,自动填充时间(新注解)

自动填充(新注解) 一、数据库添加两个字段二、实体类字段属性上增加注解三、编写填充器四、查看结果4.1 插入结果4.2 修改结果 五、同步修改5.1实体类属性改成 INSERT_UPDATE5.2 在填充器的方法这里加上 updateTime5.3 查看结果————————创作不易…

英飞凌电源管理PMIC的安全应用

摘要 本篇文档主要用来介绍英飞凌电源管理芯片TLF35584的使用,基于电动助力转向应用来介绍。包含一些安全机制的执行。 TLF35584介绍 TLF35584是英飞凌推出的针对车辆安全应用的电源管理芯片,符合ASIL D安全等级要求,具有高效多电源输出通道&…

EDM营销怎么做才能提高转化率?怎么策划?

EDM营销怎么做才能达到最大效果?如何成功制定EDM营销策略? EDM营销仍然是企业营销策略中不可或缺的一环。然而,仅仅发送电子邮件并不足以保证高转化率,EDM营销怎么做才能真正达到预期效果呢?接下来,AokSen…

解锁ChatGPT:如何通过语言设置巧妙解决无响应之谜

近日,ChatGPT的众多用户纷纷报告遭遇了一个令人困惑的现象:在发送消息后,却迟迟无法获得任何反馈。经过一番深入探索与研究,终于揭示了这一谜题的答案——原来,这一切都源于一个官方的语言设置漏洞。 要想彻底解决这个…

嘴尚绝卤味:纯正滋味,回味无穷

卤味,作为中国传统美食的代表之一,以其独特的口感和丰富的味道赢得了广大食客的喜爱。在众多卤味品牌中,嘴尚绝卤味凭借其纯正的味道和精湛的工艺,成为了市场上的一股清流,让人们在品尝美食的同时,也感受到…

有趣的CSS - 新拟态按钮

大家好,我是 Just,这里是「设计师工作日常」,今天分享的是一个好看的新拟态风格的按钮。 《有趣的css》系列最新实例通过公众号「设计师工作日常」发布。 目录 整体效果核心代码html 代码css 部分代码 完整代码如下html 页面css 样式页面渲染…

Linux之线程控制

目录 一、POSIX线程库 二、线程的创建 三、线程等待 四、线程终止 五、分离线程 六、线程ID:pthread_t 1、获取线程ID 2、pthread_t 七、线程局部存储:__thread 一、POSIX线程库 由于Linux下的线程并没有独立特有的结构,所以Linux并…

柚见第十期(后端队伍接口详细设计)

创建队伍 用户可以 创建 一个队伍,设置队伍的人数、队伍名称(标题)、描述、超时时间 P0 队长、剩余的人数 聊天? 公开 或 private 或加密 信息流中不展示已过期的队伍 请求参数是否为空?是否登录,未登录不…

基于pytest的证券清算系统功能测试工具开发

需求 1.造测试数据:根据测试需要,自动化构造各业务场景的中登清算数据与清算所需起来数据 2.测试清算系统功能: 自动化测试方案 工具设计 工具框架图 工具流程图 实现技术 python, pytest, allure, 多进程,mysql, 前端 效果 测…

MySQL 的基础操作

数据库的基础操作 1. 库操作2. 表的操作3. 数据类型 数据库是现代应用程序中至关重要的组成部分,通过数据库管理系统(DBMS)存储和管理数据。 1. 库操作 创建数据库 创建数据库是开始使用数据库的第一步。下面是一些常见的创建数据库的示例&a…

Python从0到100(三):Python中的变量介绍

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…