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

    一、下载依赖:libfastcommon

    wget https://codeload.github.com/happyfish100/libfastcommon/zip/master

    下载后解压、进入解压后的文件夹,执行./make.sh && ./make.sh install

    libfastcommon.so默认被安装到了/usr/lib64/libfastcommon.so,但是FastDFS主程序设置的lib目录是/usr/local/lib,所以需要创建软链接(快捷方式):

    ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

    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

    二、安装fdfs

    下载fdfs安装包:wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz;
    解压、进入后编译、安装(./make.sh && ./make.sh install)
    进入/etc/fdfs目录,复制tracker.conf.sample:
    cp
    tracker.conf.sample tracker.conf,
    修改vim tracker.conf:
    base_path=/home/mm/fastdfs/tracker #tracker存储data和log的跟路径,必须提前创建好

    port=23000 #tracker默认23000

    http.server_port=80 #http端口,需要和nginx相同


    三、启动tracker

    /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
    注:可通过如下命令建立软连接,随后可通过service fdfs_trackerd start启动:
    # ln -s /usr/bin/fdfs_trackerd   /usr/local/bin
    # ln -s /usr/bin/fdfs_storaged   /usr/local/bin
    # ln -s /usr/bin/stop.sh         /usr/local/bin
    # ln -s /usr/bin/restart.sh      /usr/local/bin
    可以在base_path配置的路径下查看启动日志:

     

     查看tracker服务状态:

     四、配置Storage服务

    进入/etc/fdfs目录,有cp命令拷贝storage.conf.sample:cp storage.conf.sample storage.conf

    编辑storage.conf:vi storage.conf,修改相关参数:

    base_path=/home/mm/fastdfs/storage #storage存储data和log的跟路径,必须提前创建好

    port=23000 #storge默认23000,同一个组的storage端口号必须一致

    group_name=group1 #默认组名,根据实际情况修改

    store_path_count=1 #存储路径个数,需要和store_path个数匹配

    store_path0=/home/mm/fastdfs/storage #如果为空,则使用base_path

    tracker_server=10.122.149.211:22122 #配置该storage监听的tracker的ip和port,注意:ip不能为127.0.0.1

    启动storage(支持start|stop|restart):

    /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start

    查看启动后的状态:

    service fdfs_storaged status:

     查看启动日志,发现已经开始选举,并且作为唯一的一个tracker,被选举为leader:

     查看端口情况:

     通过如下命令查看storage是否被绑定:

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

     

     五、测试上传

    1、修改 Tracker 服务器中的客户端配置文件 

    # cd /etc/fdfs
    # cp client.conf.sample client.conf
    # vim client.conf

    修改如下配置即可,其它默认。

    # Client 的数据和日志目录
    base_path=/ljzsg/fastdfs/client
    
    # Tracker端口
    tracker_server=file.ljzsg.com:22122

    ② 上传测试

     在linux内部执行如下命令上传文件

    # /usr/bin/fdfs_upload_file  /etc/fdfs/client.conf test1.txt
    上传成功后会返回文件路径:

     在文件存储路径下可以看到上传的文件:

     

     

    六、整个nginx+fastdfs-nginx-module

    这个过程参考下方报错中的:3、整合nginx时,报错:[emerg] unknown directive "ngx_fastdfs_module" ngix

    可能的报错:

    1、/usr/include/fastdfs/fdfs_define.h:15:27: fatal error: common_define.h: No such file or directory(https://blog.csdn.net/C18298182575/article/details/96428764)

     解决方案:

    将fastdfs-nginx-module-1.20/src/config的内容替换为如下,然后重新执行./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module-1.20/src/:

    ngx_addon_name=ngx_http_fastdfs_module

    if test -n "${ngx_module_link}"; then
        ngx_module_type=HTTP
        ngx_module_name=$ngx_addon_name
        ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
        ngx_module_libs="-lfastcommon -lfdfsclient"
        ngx_module_srcs="$ngx_addon_dir/ngx_http_fastdfs_module.c"
        ngx_module_deps=
        CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='"/etc/fdfs/mod_fastdfs.conf"'"
        . auto/module
    else
        HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"
        NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_fastdfs_module.c"
        CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
        CORE_LIBS="$CORE_LIBS -lfastcommon -lfdfsclient"
        CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='"/etc/fdfs/mod_fastdfs.conf"'"
    fi

     
    2、测试上传命令时,报错如下:

    解决方案: 

    查看tracker服务状态有报错信息如下:

     

     搜索undefined symbol: g_current_time,通过http://www.mamicode.com/info-detail-2316419.html方案解决的:rm -rf /usr/local/lib/libfastcommon.so.1

     3、整合nginx时,报错:[emerg] unknown directive "ngx_fastdfs_module" ngix

    按照https://www.w3xue.com/exp/article/20191/18398.html方案解决的:

    (1)、安装fastdfs-nginx-module

    参考博客:https://blog.csdn.net/u010098331/article/details/51646921

    1. [root@bogon local]# wget https://sourceforge.net/projects/fastdfs/files/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz
    2. [root@bogon local]# tar xf fastdfs-nginx-module_v1.16.tar.gz
    3. [root@bogon local]# cd fastdfs-nginx-module/src/
    4. [root@bogon local]# vim config
    5. #编辑config文件,执行如下命令进行批量替换并保存退出,目的:去掉local前缀,指定正确路径目录
    6. :%s+/usr/local/+/usr/+g
    1. [root@bogon src]# pwd
    2. /usr/local/fastdfs-nginx-module/src
    3. [root@bogon src]# cp mod_fastdfs.conf /etc/fdfs
    4. [root@bogon local]# cd /etc/fdfs
    5. [root@bogon fdfs]# vim mod_fastdfs.conf
    1. #修改内容如下:
    2. connect_timeout=10
    3. base_path=/tmp(默认为/tmp)
    4. tracker_server=192.168.174.128:22122
    5. storage_server_port=23000(默认配置为23000)
    6. url_have_group_name = true
    7. store_path0=/home/fastdfs/storage-data
    8. group_name=group1(默认配置为group1)
    1. [root@bogon fastdfs-5.05]# pwd
    2. /usr/java/fastdfs-5.05
    3. [root@bogon fastdfs-5.05]# cd conf
    4. [root@bogon conf]# cp http.conf /etc/fdfs
    5. [root@bogon conf]# cp mime.types /etc/fdfs

    (2)安装nginx

    1. [root@bogon local]# tar -zxvf nginx-1.6.0
    2. [root@bogon local]# cd nginx-1.6.0/
    3. [root@bogon nginx-1.6.0]#
    4. ./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module/src
    5. [root@bogon nginx-1.6.0]#make && make install
    1. [root@bogon local]# cd nginx
    2. [root@bogon nginx]# cd conf
    3. [root@bogon conf]# vim nginx.conf
    1. location /group1/M00 {
    2. root /home/fastdfs/storage-data;
    3. ngx_fastdfs_module;
    4. }
    1. [root@bogon conf]# cd ..
    2. [root@bogon nginx]# cd sbin/
    3. [root@bogon sbin]# ./nginx
    4. ngx_http_fastdfs_set pid=11005

    配置nginx:

    1. server {
    2. listen 80;
    3. server_name localhost;
    4. #charset koi8-r;
    5. #access_log logs/host.access.log main;
    6. location /group1/M00 {
    7. root /home/fastdfs/storage-data/data; #storage_path0
    8. ngx_fastdfs_module;             #虚拟模块
    9. }
    10. }

    4、访问文件地址返回404错误:
    检查下nginx、mod_fastdfs.conf里面的数据文件路径配置:
    数据存放路径:

     nginx配置:

    mod_fastdfs.conf路径配置:

     

     

     

     
  • 相关阅读:
    javascript 阻止多次点击造成的轮播混乱
    javascript切换效果
    关于bxslider在点击左右按钮之后不能自动切换的问题解决
    javascript 多图无缝切换
    javascript 多图无缝切换
    javascript 切换动画
    javascript无缝全屏轮播
    jquery css3 手机菜单动画综合版
    jquery模仿css3延迟效果
    Mysql的存储过程总结
  • 原文地址:https://www.cnblogs.com/canghai1024/p/13061278.html
Copyright © 2011-2022 走看看