zoukankan      html  css  js  c++  java
  • FastDFS环境搭建

    安装环境准备

    1. 依赖安装
      FastDFS基于C语言开发,安装FastDFS需要先将源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc
      yum install -y gcc gcc-c++
      FastDFS依赖libevent库,需要安装
      yum -y install libevent
    2. 安装包下载
      我喜欢的方式把需要的包一次性下载好,直接从git上下载安装包:
    wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz  #FastDFS安装包
    wget https://github.com/happyfish100/libfastcommon/archive/V1.0.39.tar.gz #libfastcommon安装包
    wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz #
    

    当然也可以装一个下载一个,为了方便一些,我以单个下载安装为例。

    开始安装

    • 安装 libfastcommon

    安装FastDFS还需要安装libfastcommon作为前提条件,首先准备安装包FastDFS和libfastcommon。

    1. 下载安装 libfastcommon,这里是通过wget下载
      wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
    2. 解压 libfastcommon,命令:
      tar-zxvf V1.0.7.tar.gz
    3. 进入目录编译,进入libfastcommon-1.0.7目录:
      cd libfastcommon-1.0.7
      编译:
      ./make.sh
    4. 安装,命令:
      ./make.sh install
    5. libfastcommon安装好后会自动将库文件拷贝至/usr/lib64下,由于FastDFS程序引用usr/lib目录所以需要将/usr/lib64下的库文件拷贝至/usr/lib下,只需要将libfastcommon.so 拷贝过去即可,不需要全部拷贝,这一步重要
      cp /usr/lib64/libfastcommon.so /usr/lib
    • 安装FastDFS

    FastDFS包含tracker、Storage

    1. 下载安装 FastDFS,这里也是通过wget下载。
      wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz
    2. 解压
      tar -zxvf V5.11.tar.gz
    3. 编译,进入fastfds-5.05目录,命令:
      cd fastdfs-5.11/
      编译:
      ./make.sh
    4. 安装
      ./make.sh install
      安装任务已经完成了,就是这么简单。下面开始配置tracker、Storage
    • 配置tracker
      上述安装成功后,在/etc/目录下会有一个fdfs的目录,进入它。会看到四个.sample后缀的文件,这是作者给我们的示例文件,我们需要把其中的tracker.conf.sample文件改为tracker.conf配置文件并修改它。看命令:
      拷贝tracker.conf:
      cp tracker.conf.sample tracker.conf
      编辑:
      vim tracker.conf

      base_path=/home/yuqing/fastdfs
      改为:
      base_path=/data/fastdfs

    注意:在启动tracker时,如果没有/data/fastdfs这个目录会启动失败,需要手动添加目录
    mkdir -p /data/fastdfs

    启动tracker
    /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
    设置开机自动启动,编辑文件
    vim /etc/rc.d/rc.local
    添加:
    /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
    以上操作已经完成了tracker的配置。启动命令我们可以优化一下,通过建立软链接的方式:

    ln -s /usr/bin/fdfs_trackerd /usr/local/bin/
    ln -s /usr/bin/stop.sh /usr/local/bin/
    ln -s /usr/bin/restart.sh /usr/local/bin/
    

    重启服务器测试一下:
    service fdfs_trackerd restart
    查看一下监听端口:
    netstat -unltp | grep fdfs

    • 配置Storage
      现在开始配置 Storage 服务,由于我这是单机器测试,你把 Storage 服务放在多台服务器也是可以的,它有Group(组)的概念,同一组内服务器互备同步,这里不再演示。直接开始配置,依然是进入/etc/fdfs的目录操作,首先进入它。会看到三个.sample后缀的文件,我们需要把其中的storage.conf.sample文件改为storage.conf配置文件并修改它。还看命令:
      拷贝storage.conf
      cp storage.conf.sample storage.conf
      编辑:
      vim storage.conf

      base_path=/home/yuqing/fastdfs修改为:base_path=/data/fastdfs/storage
      store_path0=/home/yuqing/fastdfs修改为:store_path0=/data/fastdfs/storage
      tracker_server=192.168.209.121:22122修改为:本机IP:22122

    注意:/data/fastdfs目录下没有storage文件夹,此时需要手动创建
    cd /data/fastdfs #进入目录
    mkdir storage #创建文件

    启动Storage
    /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
    设置开机自动启动,编辑文件
    vim /etc/rc.d/rc.local
    添加:
    /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
    以上操作已经完成了Storage的配置。当然启动命令还是可以优化的,还是通过软链接的方式:
    ln -s /usr/bin/fdfs_storaged /usr/local/bin/
    重启服务器测试一下:
    service fdfs_storaged restart
    查看一下监听端口:
    netstat -unltp | grep fdfs

    • 测试文件上传需要做的事情
      fastdfs安装成功可通过/usr/bin/fdfs_test测试上传、下载等操作
      拷贝client.conf
      cp client.conf.sample client.conf
      编辑
      vim client.conf

      base_path=/home/yuqing/fastdfs修改和tracker.conf文件中base_path一样的配置路径,如:base_path=/data/fastdfs
      tracker_server=192.168.0.197:22122修改为本机IP:22122

    • 上传文件测试
      使用格式:
      /usr/bin/fdfs_test + 客户端配置文件地址 + upload + 上传文件
      例如将,/img/test.jpg 上传,键入命令:
      /usr/bin/fdfs_test /etc/fdfs/client.conf upload /img/test.jpg
      文件上传成功后,输出http文件访问路径:
      http://192.168.48.132/group1/M00/00/00/wKgwhFvEkZCAD_-1AAIWPJ2Hf5Y850.jpg
      文件保存路径:
      /data/fastdfs/storage/data/00/00/wKgShlu_gyGALPf_AAGttmZnfCs194.jpg
      由于现在还没有和nginx整合无法使用http下载

    • FastDFS和nginx整合

    1. 安装fastdfs-nginx-module
      wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz
    2. 解压
      tar -zxvf V1.20.tar.gz
    3. fastdfs-nginx-module移动到/usr/local目录
      mv fastdfs-nginx-module /usr/local/
    4. 进入文件目录
      cd fastdfs-nginx-module/src/
    5. 修改config文件,查找下面这两行代码将
    ngx_module_incs="/usr/local/include"
    CORE_INCS="$CORE_INCS /usr/local/include"
    

    修改为:

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

    简单说就是把/usr/local/include,修改为/usr/include,切记一定要加上/usr/include/fastcommon/这个坑踩了好久,据了解是版本问题导致的!!!!

    1. 将FastDFS-nginx-module/src下的mod_FastDFS.conf拷贝至/etc/fdfs/下
      cp mod_fastdfs.conf /etc/fdfs/
    2. 修改mod_FastDFS.conf的内容vim /etc/fdfs/mod_fastdfs.conf:
    base_path=/tmp 修改为 base_path=/data/fastdfs
    tracker_server=tracker:22122 修改为 tracker_server= 本机:22122
    store_path0=/home/yuqing/fastdfs 修改为 store_path0=/data/fastdfs/storage
    url_have_group_name=false 修改为 url_have_group_name=true
    
    1. 将libfdfsclient.so拷贝至/usr/lib下
      cp /usr/lib64/libfdfsclient.so /usr/lib
    • 安装nginx
      Nginx的安装需要有一些安装环境,nginx依赖包安装:
    1、yum install gcc-c++
    2、yum install -y pcre pcre-devel
    3、yum install -y zlib zlib-devel
    4、yum install -y openssl openssl-devel
    

    下载nginx安装包
    wget https://nginx.org/download/nginx-1.8.1.tar.gz
    解压
    tar -zxvf nginx-1.8.1.tar.gz
    进入源码目录
    cd nginx-1.8.1

    创建nginx所需安装目录
    mkdir -p /var/temp/nginx/client

    执行

    ./configure 
    --prefix=/usr/local/nginx 
    --pid-path=/var/run/nginx/nginx.pid 
    --lock-path=/var/lock/nginx.lock 
    --error-log-path=/var/log/nginx/error.log 
    --http-log-path=/var/log/nginx/access.log 
    --with-http_gzip_static_module 
    --http-client-body-temp-path=/var/temp/nginx/client 
    --http-proxy-temp-path=/var/temp/nginx/proxy 
    --http-fastcgi-temp-path=/var/temp/nginx/fastcgi 
    --http-uwsgi-temp-path=/var/temp/nginx/uwsgi 
    --http-scgi-temp-path=/var/temp/nginx/scgi 
    --add-module=/usr/local/fastdfs-nginx-module/src
    

    执行完毕后会生成一个MakeFile文件,然后就就可在该路径下进行编译和安装了
    编译:make
    安装: make install

    重要操作
    虽然nginx安装成功了,但是会出现无法访问的问题,一个超级大的坑。
    解决方式:进入fastdfs源码目录,源码的存放位置
    cd /opt/fastdfs-5.11/conf/
    将该子目录中的http.conf、mime.types拷贝到/etc/fdfs
    cp http.conf /etc/fdfs
    cp mime.types /etc/fdfs

    • Nginx配置
      在/usr/local/nginx/conf下,找到nginx.conf,增加配置信息:
      vim /usr/local/nginx/conf/nginx.conf
    location /group1/M00/{
                    ngx_fastdfs_module;
            }
    
    如图:
     
     

    重新加载nginx配置文件
    cd /usr/local/nginx/sbin
    ./nginx -s reload
    启动nginx
    cd /usr/local/nginx/sbin
    ./nginx
    如果出现下图表示nginx搭建成功了:

     
     

    访问之前测试时生成的链接就可以看到图片了,这样算是完成FastDFS+nginx的整合了。

    一个需要注意的小问题

    如何机器重启nginx会出现启动失败的情况,错误信息如下:
    nginx: [emerg] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory)
    解决方式:
    1、在nginx安装目录,创建logs文件夹,我的安装目录是/usr/local/nginx/,直接在这个目录下创建logs文件夹
    mkdir logs
    2、修改nginx配置文件,vim /usr/local/nginx/conf/nginx.conf:
    #pid logs/nginx.pid;的注释删除,路径修改为创建logs的路径,即
    pid /usr/local/nginx/logs/nginx.pid;
    OK!!!

    偶!对了还有防火墙的问题,我想你能自己解决!!!



    转自:扑棱扑棱的小菜鸟

  • 相关阅读:
    Nim or not Nim? hdu3032 SG值打表找规律
    Maximum 贪心
    The Super Powers
    LCM Cardinality 暴力
    Longge's problem poj2480 欧拉函数,gcd
    GCD hdu2588
    Perfect Pth Powers poj1730
    6656 Watching the Kangaroo
    yield 小用
    wpf DropDownButton 源码
  • 原文地址:https://www.cnblogs.com/qq128/p/13489600.html
Copyright © 2011-2022 走看看