linux怎么安装fastdfs?fastdfs安装教程

在 Linux 系统中安装 FastDFS 是一个相对复杂的过程,因为它由多个组件组成(Tracker 服务器、Storage 服务器、Nginx 模块等)。

以下是基于 CentOS/RHEL 7/8 或 Ubuntu 的完整安装指南,我们将使用源码编译安装,这是最通用且可控的方式。

这可能是B站最好的FastDFS教程 --分布式文件系统FastDFS入门到实战视频精讲
加载中
这可能是B站最好的FastDFS教程 --分布式文件系统FastDFS入门到实战视频精讲

📌 前置准备

  1. 系统要求:Linux 服务器(建议 CentOS 7+ 或 Ubuntu 18.04+)。
  2. 依赖包:FastDFS 依赖 libfastcommonlibevent
  3. 权限:需要使用 root 用户或具有 sudo 权限的用户。

第一步:安装依赖库

FastDFS 依赖于 libfastcommon,这是 FastDFS 的底层 C 库。

# 1. 安装编译工具和依赖
yum install -y gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget
# 2. 下载并安装 libfastcommon
cd /usr/local/src
wget https://github.com/happyfish100/libfastcommon/archive/refs/heads/master.zip
unzip master.zip
cd libfastcommon-master
# 3. 编译安装
./make.sh
./make.sh install
# 注意:libfastcommon 默认安装在 /usr/lib64/libfastcommon.so
# 但 FastDFS 可能在 /usr/lib 下查找,需要建立软链接(针对 64 位系统)
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

第二步:安装 FastDFS 核心服务

下载 FastDFS

cd /usr/local/src
wget https://github.com/happyfish100/fastdfs/archive/refs/heads/master.zip
unzip master.zip
cd fastdfs-master

编译安装

./make.sh
./make.sh install

安装完成后,配置文件默认在 /etc/fdfs/ 目录下。

配置 Tracker 服务

# 复制示例配置文件
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
# 编辑配置文件
vi /etc/fdfs/tracker.conf

关键修改项:

# 修改存储路径(确保目录存在)
base_path=/data/fastdfs/tracker
# 端口(默认 22122,一般无需修改)
port=22122

创建目录并启动 Tracker:

linux怎么安装fastdfs?fastdfs安装教程

mkdir -p /data/fastdfs/tracker
# 启动 Tracker
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
# 设置开机自启(可选)
chkconfig fdfs_trackerd on

配置 Storage 服务

# 复制示例配置文件
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
# 编辑配置文件
vi /etc/fdfs/storage.conf

关键修改项:

# 修改存储路径
base_path=/data/fastdfs/storage
# 修改 store_path0 路径
store_path0=/data/fastdfs/storage/files
# 修改 tracker_server 地址(指向 Tracker 服务器 IP)
tracker_server=192.168.1.100:22122
# HTTP 端口(默认 8888,用于后续 Nginx 访问)
http.server_port=8888

创建目录并启动 Storage:

mkdir -p /data/fastdfs/storage/files
# 启动 Storage
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
# 设置开机自启
chkconfig fdfs_storaged on

注意:如果你的服务器既是 Tracker 又是 Storage,需要在同一台机器上配置两个服务。


第三步:配置 Nginx 访问(可选但推荐)

FastDFS 本身不提供 HTTP 访问,需要配合 nginx-fastdfs-module 来实现通过浏览器访问文件。

下载并编译 Nginx 模块

cd /usr/local/src
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/refs/heads/master.zip
unzip master.zip
# 下载 Nginx 源码
wget http://nginx.org/download/nginx-1.20.1.tar.gz
tar -zxvf nginx-1.20.1.tar.gz
cd nginx-1.20.1

编译 Nginx(添加模块)

# 先安装 Nginx 依赖
yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel
# 配置编译参数(注意路径替换为你的实际路径)
./configure 
--prefix=/usr/local/nginx 
--add-module=/usr/local/src/fastdfs-nginx-module/src
# 编译并安装
make
make install

配置 Nginx 模块

# 复制模块配置文件
cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
# 编辑配置文件
vi /etc/fdfs/mod_fastdfs.conf

关键修改项:

# 连接超时时间
connect_timeout=10
# Tracker 服务器地址
tracker_server=192.168.1.100:22122
# Storage 存储路径(必须与 storage.conf 中的 store_path0 一致)
store_path0=/data/fastdfs/storage/files
# 是否跟随 URL 中的 group 名称
url_have_group_name=true
# 文件组数量(通常只有一个组 group1)
group_count=1

linux怎么安装fastdfs?fastdfs安装教程

group_count=1 下方添加:

[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/data/fastdfs/storage/files

配置 Nginx 主配置文件

vi /usr/local/nginx/conf/nginx.conf

http 块中添加:

server {
    listen 80;
    server_name localhost;
    location /group1/M00 {
        root /data/fastdfs/storage/files/data;
        ngx_fastdfs_module;
    }
}

启动 Nginx

/usr/local/nginx/sbin/nginx
# 测试配置
/usr/local/nginx/sbin/nginx -t

第四步:测试上传

使用 FastDFS 提供的测试客户端 fdfs_test 进行上传测试。

# 编辑客户端配置
vi /etc/fdfs/client.conf

修改项:

base_path=/data/fastdfs/tracker
tracker_server=192.168.1.100:22122

执行上传测试:

# 准备一个测试文件
echo "Hello FastDFS" > /tmp/test.txt
# 上传文件
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /tmp/test.txt

成功输出示例:

This is FastDFS client test program v6.06
Copyright (C) 2008, Happy Fish / YuQing
FastDFS may be copied only under the terms of the GNU General
Public License V3, which may be found in the FastDFS source kit.
Please visit the FastDFS Home Page http://www.csource.org/
for more detail.
[2026-10-27 10:00:00] DEBUG - base_path=/data/fastdfs/tracker, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0
tracker_query_storage_store_list_without_group:
        server 1. group_name=, ip_addr=192.168.1.100, port=23000
group_name=group1, ip_addr=192.168.1.100, port=23000
storage_upload_by_filename
group_name=group1, remote_filename=M00/00/00/wKh3gG8x1Y-ABcDdAAABBBCCCDDD.txt
source ip address: 192.168.1.100
file time

linux怎么安装fastdfs?fastdfs安装教程

stamp=2026-10-27 10:00:00 file size=13 file crc32=123456789 example file url: http://192.168.1.100/group1/M00/00/00/wKh3gG8x1Y-ABcDdAAABBBCCCDDD.txt storage_upload_slave_by_filename group_name=group1, remote_filename=M00/00/00/wKh3gG8x1Y-ABcDdAAABBBCCCDDD_big.txt source ip address: 192.168.1.100 file timestamp=2026-10-27 10:00:00 file size=13 file crc32=123456789 example file url: http://192.168.1.100/group1/M00/00/00/wKh3gG8x1Y-ABcDdAAABBBCCCDDD_big.txt

访问测试:
在浏览器中访问:
http://192.168.1.100/group1/M00/00/00/wKh3gG8x1Y-ABcDdAAABBBCCCDDD.txt

如果能看到 “Hello FastDFS”,说明安装成功!


✅ 常见问题排查

  1. 防火墙问题
    确保开放以下端口:

    • Tracker: 22122
    • Storage: 23000
    • Nginx: 808888
      firewall-cmd --zone=public --add-port=22122/tcp --permanent
      firewall-cmd --zone=public --add-port=23000/tcp --permanent
      firewall-cmd --zone=public --add-port=80/tcp --permanent
      firewall-cmd --reload
  2. SELinux 问题
    如果上传失败,可能是 SELinux 阻止,临时关闭测试:

    setenforce 0

    如果解决,建议永久关闭或配置 SELinux 策略。

  3. 路径权限
    确保 /data/fastdfs/ 目录对运行 FastDFS 的用户(通常是 rootfastdfs)有读写权限。

  4. 日志查看
    如果出错,查看日志:

    • Tracker 日志:/data/fastdfs/tracker/logs/trackerd.log
    • Storage 日志:/data/fastdfs/storage/logs/storaged.log

组件 默认端口 配置文件路径
Tracker 22122 /etc/fdfs/tracker.conf
Storage 23000 /etc/fdfs/storage.conf
Nginx 80/8888 /usr/local/nginx/conf/nginx.conf
Client /etc/fdfs/client.conf

安装完成后,建议将 FastDFS 服务加入系统服务管理,以便重启服务器后自动启动。

首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/486010.html

(0)
linux中ssh和sftp有什么区别?ssh和sftp有什么区别
上一篇 2026年7月12日 08:51
RackNerd六月美国VPS怎么买最划算?美国便宜VPS推荐
下一篇 2026年7月12日 08:51

相关推荐

  • Linux企业集群怎么搭建?Linux集群架构详解

    Linux 企业集群(Enterprise Linux Cluster)是指将多台 Linux 服务器通过高速网络连接起来,作为一个整体系统对外提供服务,其核心目标是实现高可用性(High Availability, HA)、负载均衡(Load Balancing)、高性能计算(HPC)或大规模数据存储,以下是……

    2026年7月9日
    12500
  • Linux FTP open连接失败怎么办?Linux FTP服务开启方法

    在Linux系统中开启FTP服务,核心在于安装vsftpd或proftpd等守护进程,配置防火墙放行20/21端口,并设置用户权限与被动模式端口范围,以实现安全稳定的文件传输,很多刚接触Linux服务器的运维新手或开发者,面对命令行界面时往往感到无从下手,FTP(文件传输协议)虽然古老,但在内网文件共享、老旧系……

    2026年7月4日
    9500
  • Linux帐号怎么管理?linux系统用户权限设置教程

    Linux 帐号管理的核心在于最小权限原则与自动化审计,通过合理的用户组策略、SSH 密钥认证及定期日志审查,可构建高安全性的系统环境,在服务器运维的日常场景中,账号不仅仅是登录系统的凭证,更是安全防线的第一道关卡,很多初学者习惯使用 root 账号直接操作,这无异于将金库钥匙挂在门口,业内专家指出,绝大多数安……

    2026年7月8日
    11100
  • CTeX在Linux下怎么安装?linux安装CTeX详细教程

    在Linux环境下,TeX Live配合XeLaTeX引擎是编译中文CTEX文档最稳定、兼容性最好的方案,无需额外配置复杂的字体路径即可实现高质量排版,对于许多从Windows转向Linux的科研人员、工程师以及学术写作者来说,LaTeX的学习曲线往往被“环境配置”劝退,在Windows上,我们习惯了安装一个集……

    2026年7月10日
    4000
  • Linux怎么配置HA?高可用集群搭建步骤详解

    Linux配置高可用(HA)的核心在于通过Keepalived、Pacemaker等集群管理软件实现IP漂移与服务自动故障转移,确保单点故障时业务不中断,通常需至少两台服务器配合VIP(虚拟IP)机制完成,在IT基础设施日益复杂的今天,单机运行模式已无法满足企业对连续性的严苛要求,无论是金融交易核心系统,还是面……

    2026年7月10日
    18900
  • SUSE Linux如何安装Oracle?SUSE Linux安装Oracle数据库详细教程

    在SUSE Linux环境下部署Oracle数据库,核心在于利用SUSE的HA高可用特性与Oracle RAC集群技术深度整合,并通过严格的内核参数调优与补丁管理,实现金融级的高可用性与性能稳定性,许多企业在构建核心业务系统时,常面临操作系统与数据库软件兼容性的焦虑,SUSE Linux Enterprise……

    2026年7月5日
    7210
  • linux镜像到底多大?linux系统镜像文件下载

    Linux镜像的大小并非固定值,通常在几十MB到几GB之间波动,具体取决于发行版类型、预装软件包以及是否包含图形界面,轻量级容器镜像可低至几MB,而完整桌面版系统镜像则可能超过4GB,当我们谈论Linux镜像大小时,首先需要明确一个概念:镜像的大小直接决定了下载速度、存储占用以及启动效率,对于开发者而言,理解不……

    2026年7月11日
    9200
  • maya linux 安装失败怎么办?linux 安装 maya 详细教程

    在Linux系统上安装Maya并非简单的双击安装包,而是需要配置依赖库、处理许可证服务并解决图形界面兼容性的系统工程,建议优先选择Ubuntu 22.04 LTS作为基础环境以确保稳定性,许多3D艺术家和工程师在尝试将工作流迁移至Linux平台时,往往被Maya的复杂依赖关系劝退,这并非软件本身的问题,而是Li……

    2026年7月4日
    15500
  • linux rpm bin是什么?linux下rpm包管理命令详解

    在 Linux 系统中,rpm、bin 是两个非常基础且重要的概念,它们分别代表了软件包管理工具和可执行文件/二进制文件,下面我将分别解释它们的含义、用法以及它们之间的关系,rpm 是什么?定义rpm(Red Hat Package Manager)是 Red Hat 及其衍生发行版(如 CentOS、Fedo……

    2026年7月10日
    12700
  • Linux如何输出数组?linux数组输出方法

    在Linux系统中,数组并非像Python那样原生支持,而是通过Bash脚本中的“索引数组”和“关联数组”来实现,核心操作依赖于方括号[]语法及${}变量扩展机制,很多刚接触Linux运维或脚本开发的朋友,往往带着Windows PowerShell或Python的思维习惯来写Shell脚本,结果发现直接定义a……

    2026年7月7日
    16500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注