zoukankan      html  css  js  c++  java
  • Centos7安装FastDFS教程

    安装包下载:https://github.com/happyfish100

    百度云下载相关包:

    链接:https://pan.baidu.com/s/1TzKMXjADeDw-ooR-6H8VHw
    提取码:x16s

    说明:FastDFS没有Windows版本,需要部署在Linux系统下

    此文档系统版本:CentOS Linux release 7.9.2009 (Core)

    一、安装前检查

    1、检查linux上是否安装了gcc、libevent、libevent-devel

    yum list installed | grep gcc
    yum list installed | grep libevent
    yum list installed | grep libevent-devel
    

    如果没有安装,则需进行安装

    yum install gcc libevent libevent-devel -y
    

    二、下载相关安装包和依赖包

    安装包:

    依赖包:

    上传相关安装包到自定义目录: /home/mysoftware/fastdfs

    三、安装libfastcommon

    1、解压安装包

    tar -zxvf libfastcommon-1.0.42.tar.gz
    

    2、进入解压后的目录

    cd libfastcommon-1.0.42
    

    3、执行编译

    ./make.sh
    

    4、安装

    ./make.sh install
    

    可能遇到问题:

    -bash: gcc: command not found

    解决办法:

    # 安装gcc依赖库
    yum -y install gcc
    

    四、安装FastDFS

    (1)安装

    1、解压安装包

    tar -zxvf fastdfs-5.11.tar.gz
    

    2、进入目录

    cd fastdfs-5.11
    

    3、执行编译

    ./make.sh
    

    4、安装

    ./make.sh install
    

    安装完成后会在/usr/bin目录下生成许多fastdfs相关的命令文件,以fdfs开头。

    查看命令:ls -la /usr/bin/fdfs*

    [root@iZ2ze11cqx7ixk06rhtp3yZ fastdfs]# ls -la /usr/bin/fdfs*
    -rwxr-xr-x 1 root root  322496 Apr 26 15:58 /usr/bin/fdfs_appender_test
    -rwxr-xr-x 1 root root  322272 Apr 26 15:58 /usr/bin/fdfs_appender_test1
    -rwxr-xr-x 1 root root  309128 Apr 26 15:58 /usr/bin/fdfs_append_file
    -rwxr-xr-x 1 root root  308864 Apr 26 15:58 /usr/bin/fdfs_crc32
    -rwxr-xr-x 1 root root  309192 Apr 26 15:58 /usr/bin/fdfs_delete_file
    -rwxr-xr-x 1 root root  309920 Apr 26 15:58 /usr/bin/fdfs_download_file
    -rwxr-xr-x 1 root root  309512 Apr 26 15:58 /usr/bin/fdfs_file_info
    -rwxr-xr-x 1 root root  327424 Apr 26 15:58 /usr/bin/fdfs_monitor
    -rwxr-xr-x 1 root root 1122528 Apr 26 15:58 /usr/bin/fdfs_storaged
    -rwxr-xr-x 1 root root  332400 Apr 26 15:58 /usr/bin/fdfs_test
    -rwxr-xr-x 1 root root  331616 Apr 26 15:58 /usr/bin/fdfs_test1
    -rwxr-xr-x 1 root root  458296 Apr 26 15:58 /usr/bin/fdfs_trackerd
    -rwxr-xr-x 1 root root  310112 Apr 26 15:58 /usr/bin/fdfs_upload_appender
    -rwxr-xr-x 1 root root  311136 Apr 26 15:58 /usr/bin/fdfs_upload_file
    

    (2)配置Tracker服务

    1、进入/etc/fdfs目录,有3个.sample为后缀的文件(自动生成的fdfs模板配置文件)
    通过cp命令拷贝tracker.conf.sample,删除.sample后缀作为正式文件

    # 进入目录
    cd /etc/fdfs/
    
    # 查看文件列表
    [root@iZ2ze11cqx7ixk06rhtp3yZ fdfs]# ll
    -rw-r--r-- 1 root root  1461 Apr 26 15:58 client.conf.sample
    -rw-r--r-- 1 root root  3734 Apr 27 11:18 mod_fastdfs.conf
    -rw-r--r-- 1 root root  7927 Apr 26 15:58 storage.conf.sample
    -rw-r--r-- 1 root root   105 Apr 26 15:58 storage_ids.conf.sample
    -rw-r--r-- 1 root root  7389 Apr 26 15:58 tracker.conf.sample
    
    # 通过cp命令拷贝tracker.conf.sample,删除.sample后缀作为正式文件
    cp tracker.conf.sample tracker.conf
    

    2、编辑tracker.conf文件修改相关参数

    # 执行编辑命令
    vim tracker.conf
    
    #主要修改
    #tracker存储data和log的跟路径,必须提前创建好
    base_path=/usr/local/src/whwfastdfs/fastdfs/tracker 
    #tracker默认端口22122
    port=22122 
    #http访问端口,需要和nginx相同
    http.server_port=80 
    # 绑定本机ip地址
    bind_addr=xxx.xxx.xxx.xxx
    # 文件存储的组,storage中的组配置需要和此处一致
    store_group=group1
    

    3、启动tracker(支持start|stop|restart)

    # 启动
    /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
    # 停止
    /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop
    # 重启
    /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
    #杀掉所有tracked进程
    killall fdfs_trackerd
    #杀掉所有storaged进程
    killall fdfs_storaged
    

    4、查看tracker启动日志

    进入刚刚指定的base_path(/usr/local/src/whwfastdfs/fastdfs/tracker)中有个logs目录,查看tracker.log文件

    [root@iZ2ze11cqx7ixk06rhtp3yZ fdfs]# ls /usr/local/src/whwfastdfs/fastdfs/tracker/
    data  logs
    

    5、查看端口情况

    netstat -apn | grep fdfs
    

    可能遇到问题:

    /usr/bin/fdfs_trackerd: error while loading shared libraries: libfastcommon.so: cannot open shared object file: No such file or directory

    解决方案:建立软连接

    ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
    ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
    

    (3)配置Storage服务

    1、进入/etc/fdfs目录,用cp命令拷贝storage.conf.sample文件,删除.sample后缀作为正式文件

    # 进入目录
    cd /etc/fdfs/
    
    # 通过cp命令拷贝storage.conf.sample,删除.sample后缀作为正式文件
    cp storage.conf.sample storage.conf
    

    2、编辑storage.conf文件修改相关参数

    # 执行命令
    vim storage.conf
    
    # 主要修改
    #storage存储data和log的跟路径,必须提前创建好
    base_path=/usr/local/src/whwfastdfs/fastdfs/storage   
    #storge默认23000,同一个组的storage端口号必须一致
    port=23000  
    #默认组名,根据实际情况修改
    group_name=group1  
    #存储路径个数,需要和store_path个数匹配
    store_path_count=1  
    #如果为空,则使用base_path
    store_path0=/usr/local/src/whwfastdfs/fastdfs/storage  
    #配置该storage监听的tracker的ip和port
    tracker_server=xxx.xxx.xxx.xxx:22122 
    

    3、启动storage(支持start|stop|restart)

    # 启动
    /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
    # 停止
    /usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop
    # 重启
    /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
    

    4、查看storage启动日志:进入刚刚指定的base_path(/home/mm/fastdfs/storage)中有个logs目录,查看storage.log文件

    5、此时再查看tracker日志:发现已经开始选举,并且作为唯一的一个tracker,被选举为leader

    6、查看端口情况

    netstat -apn|grep fdfs
    

    7、通过monitor来查看storage是否成功绑定

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

    五、安装Nginx和fastdfs-nginx-module模块

    注意:fastdfs-nginx-module此处使用的是1.16版本,使用1.20版本可能会出错

    (1)安装

    1、解压nginx

    # 进入软件存放目录
    cd /home/mysoftware/fastdfs/
    # 执行解压命令
    tar -zxvf nginx-1.15.2.tar.gz
    

    2、解压fastdfs-nginx-module

    tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
    

    3、进入nginx目录

    cd nginx-1.15.2
    

    4、配置并加载fastdfs-nginx-module模块

    # /usr/local/src/nginx/为nginx安装目录
    ./configure --prefix=/usr/local/src/nginx/ --add-module=/home/mysoftware/fastdfs/fastdfs-nginx-module/src/
    

    5、编译

    # 执行编译命令
    make
    # 如果安装出错,可执行make clean命令后进行修改配置后重新进行make编译安装
    

    6、安装

    # 执行安装命令
    make install
    

    7、查看安装路径

    whereis nginx
    

    8、启动、停止nginx

    # 进入nginx安装目录
    cd /usr/local/src/nginx/sbin
    # 启动nginx
    ./nginx 
    # 停止nginx,此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程
    ./nginx -s stop 
    # 退出nginx,此方式停止步骤是待nginx进程处理任务完毕进行停止
    ./nginx -s quit 
    # 重新加载nginx
    ./nginx -s reload
    

    9、查看nginx版本

    # 进入nginx安装目录
    cd /usr/local/src/nginx/sbin/
    
    [root@iZ2ze11cqx7ixk06rhtp3yZ sbin]# ./nginx -v
    nginx version: nginx/1.15.2
    

    可能出现问题:

    /usr/include/fastdfs/fdfs_define.h:15:27: fatal error: common_define.h: No such file or directory

    解决方案:修改fastdfs-nginx-module-1.16/src/config文件,然后重新第7步开始

    # 1.16版本修改(建议使用1.16版本的fastdfs-nginx-module)
    CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
    
    # 1.20版本修改
    ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
    CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
    

    (2)配置

    1、将fastdfs-nginx-module/src下的mod-fastdfs.conf配置文件拷贝到/etc/fdfs文件目录下

    # 切换目录
    cd  /home/mysoftware/fastdfs/fastdfs-nginx-module/src/
    # 拷贝文件
    cp mod_fastdfs.conf /etc/fdfs/
    

    2、进入/etc/fdfs目录,修改mod_fastdfs.conf文件

    base_path=/usr/local/src/whwfastdfs/fastdfs
    # tracker的地址
    tracker_server=xxx.xxx.xxx.xxx:22122 
    # 组名
    group_name=group1 
    # url是否包含group名称
    url_have_group_name=true 
    # 需要和storage配置的相同
    storage_server_port=23000 
    # 存储路径个数,需要和store_path个数匹配
    store_path_count=1  
    # 文件存储的位置
    store_path0=/usr/local/src/whwfastdfs/fastdfs/storage 
    

    3、配置nginx,80端口,server增加location如图:

    listen       80;
    server_name  localhost;
    location ~/M00 {
                root   /usr/local/src/whwfastdfs/fastdfs/storage/data;
                ngx_fastdfs_module;
            }
    

    4、最后需要拷贝fastdfs解压目录中的http.conf和mime.types到/etc/fdfs目录下

    # 切换目录
    cd /home/mysoftware/fastdfs/fastdfs-5.11/conf/
    # 拷贝
    cp mime.types http.conf /etc/fdfs/
    

    六、常用命令测试

    (1)上传文件

    1、进入/etc/fdfs目录,用cp命令拷贝client.conf.sample,删除.sample后缀作为正式文件

    # 进入目录
    cd /etc/fdfs/
    
    # 通过cp命令拷贝client.conf.sample,删除.sample后缀作为正式文件
    cp client.conf.sample client.conf
    

    2、修改client.conf相关配置

    # tracker服务器文件路径
    base_path=/usr/local/src/whwfastdfs/fastdfs/tracker 
    # tracker服务器IP地址和端口号
    tracker_server=xxx.xxx.xxx.xxx:22122 
    http.tracker_server_port=80 # tracker服务器的http端口号,必须和tracker的设置对应起来
    

    3、新建一个测试文档1.txt,内容为abc

    # 切换到测试文件目录
    # 创建并打开文件
    vim 1.txt 
    # 按i键进行编辑,输入abc
    wq!退出并保存
    

    4、执行上传命令

    # 语法
    /usr/bin/fdfs_upload_file  <config_file> <local_filename>
    # 示例
    /usr/bin/fdfs_upload_file  /etc/fdfs/client.conf 1.txt
    
    [root@iZ2ze11cqx7ixk06rhtp3yZ mysoftware]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf 1.txt 
    group1/M00/00/00/rBLHDWCHhIGAc3vuAAAABLh3frE557.txt
    
    # 说明
    # 组名:group1 
    # 磁盘:M00 
    # 目录:00/00 
    # 文件名称:CnqV01trmeyAbAN0AAAABLh3frE677.txt
    

    5、查看结果,进入storage的data目录:

    # 切换目录
    cd /usr/local/src/whwfastdfs/fastdfs/storage/data/00/00/
    # 列出文件
    ls
    rBLHDWCHhIGAc3vuAAAABLh3frE557.txt
    

    6、浏览器访问

    (2)下载文件

    # 语法
    /usr/bin/fdfs_download_file <config_file> <file_id> [local_filename]
    # 示例
    /usr/bin/fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/CnqV01trmeyAbAN0AAAABLh3frE677.txt a.txt
    

    (3)删除文件

    # 语法
    /usr/bin/fdfs_delete_file <config_file> <file_id>
    # 示例
    /usr/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/CnqV01trmeyAbAN0AAAABLh3frE677.txt
    

    七、卸载FastDFS

    注意:所有删除操作请务必先查看是否存在文件文件是否为FastDFS相关

    FastDFS软件并未提供一键卸载功能,卸载比较麻烦,具体步骤可参考如下:

    1、停止服务

    # 停止tracker服务
    service fdfs_trackerd stop
    # 停止storage服务
    service fdfs_storaged stop
    

    2、通过storage.conf找到base_path和store_path,然后删除相关文件

    cat /etc/fdfs/storage.conf |grep base_path
    cat /etc/fdfs/storage.conf |grep store_path
    
    # 注意,如果有未备份的文件,请先备份再删除
    rm -rf base_path文件夹
    rm -rf store_path文件夹
    

    3、通过tracker.conf找到base_path和store_path,然后删除相关文件

    cat /etc/fdfs/tracker.conf |grep base_path
    rm -rf base_path文件夹
    

    4、删除配置文件目录

    rm -rf /etc/fdfs/
    

    5、删除链接文件

    rm –rf /usr/local/bin/fdfs_trackerd
    rm –rf /usr/local/bin/stop.sh
    rm –rf /usr/local/bin/restart.sh
    

    6、删除storage的链接文件

    rm –rf /usr/local/bin/fdfs_storaged
    

    7、删除/usr/bin/目录下FastDFS的可执行文件

    # 列表查看
    ll /usr/bin/fdfs_*
    # 执行删除
    rm -rf /usr/bin/fdfs_*
    

    8、删除/usr/include/目录下FastDFS相关的shell脚本

    # 列表查看
    ll /usr/include/fastdfs/*
    # 删除
    rm -rf /usr/include/fastdfs/
    

    9、删除/usr/lib64/目录下的库文件

     # 列表查看
     ll libfdfsclient*
     # 删除
     rm -rf libfdfsclient*
    

    10、删除/usr/lib/目录下的库

    # 列表查看
    ll libfdfsclient*
    # 删除
    rm -rf libfdfsclient*
    
  • 相关阅读:
    MYSQL常用命令集合(转载)
    Spring(七)持久层
    Spring(六)AOP切入方式
    面试题目
    11 集合
    10 常用类
    9 异常机制
    8 面向对象之抽象类+接口+内部类
    7 面向对象的三大特征
    6 面向对象之类和对象
  • 原文地址:https://www.cnblogs.com/giswhw/p/14758368.html
Copyright © 2011-2022 走看看