FastDFS安装
CentOS 7下安装FastDFS

Centos下安装FastDFS

上传

将FastDFS相关文件上传到linux下的/home/leyou/fdfs目录:

资源地址

链接:https://pan.baidu.com/s/1WpO28CDcTox0_ZshpuwIXw

提取码:e3ib

安装依赖

安装GCC依赖

GCC用来对C语言代码进行编译运行,使用yum命令安装:

1
sudo yum -y install gcc

安装unzip工具

unzip工具可以帮我们对压缩包进行解压

1
sudo yum install -y unzip zip

安装libevent

1
sudo yum -y install libevent

安装Nginx所需依赖

1
sudo yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel

安装libfastcommon-master

这个没有yum包,只能通过编译安装:

  • 解压刚刚上传的libfastcommon-master.zip

    1
    tar -xvf libfastcommon-master.zip

    如果解压不了,使用 sudo unzip libfastcommon-master.zip命令

  • 进入解压完成的目录:

    1
    cd libfastcommon-master
  • 编译并且安装:

    1
    2
    sudo ./make.sh 
    sudo ./make.sh install

到这里为止,所有依赖都已经安装完毕,接下来我们安装FastDFS:

安装FastDFS

编译安装

这里我们也采用编译安装,步骤与刚才的编译安装方式一样:

  • 解压

    1
    tar -xvf FastDFS_v5.08.tar.gz
  • 进入目录

    1
    cd FastDFS
  • 编译并安装

    1
    2
    sudo ./make.sh 
    sudo ./make.sh install
  • 校验安装结果

1)安装完成,我们应该能在/etc/init.d/目录,通过命令ll /etc/init.d/ | grep fdfs看到FastDFS提供的启动脚本:

其中:

  • fdfs_trackerd 是tracker启动脚本
  • fdfs_storaged 是storage启动脚本

2)我们可以在 /etc/fdfs目录,通过命令查看到以下配置文件模板:

其中:

  • tarcker.conf.sample 是tracker的配置文件模板
  • storage.conf.sample 是storage的配置文件模板
  • client.conf.sample 是客户端的配置文件模板

启动tracker

FastDFS的tracker和storage在刚刚的安装过程中,都已经被安装了,因此我们安装这两种角色的方式是一样的。不同的是,两种需要不同的配置文件。

我们要启动tracker,就修改刚刚看到的tarcker.conf,并且启动fdfs_trackerd脚本即可。

  • 编辑tracker配置

首先我们将模板文件进行赋值和重命名:

1
2
sudo cp tracker.conf.sample tracker.conf
sudo vim tracker.conf

打开tracker.conf,修改base_path配置:

1
base_path=/leyou/fdfs/tracker # tracker的数据和日志存放目录
  • 创建目录

刚刚配置的目录可能不存在,我们创建出来

1
sudo mkdir -p /leyou/fdfs/tracker
  • 启动tracker

    我们可以使用 sh /etc/init.d/fdfs_trackerd 启动,不过安装过程中,fdfs已经被设置为系统服务,我们可以采用熟悉的服务启动方式:

1
sudo service fdfs_trackerd start # 启动fdfs_trackerd服务,停止用stop

另外,我们可以通过以下命令,设置tracker开机启动:

1
sudo chkconfig fdfs_trackerd on

启动storage

我们要启动tracker,就修改刚刚看到的tarcker.conf,并且启动fdfs_trackerd脚本即可。

  • 编辑storage配置

首先我们将模板文件进行赋值和重命名:

1
2
sudo cp storage.conf.sample storage.conf
sudo vim storage.conf

打开storage.conf,修改base_path配置:

1
2
3
base_path=/leyou/fdfs/storage # storage的数据和日志存放目录
store_path0=/leyou/fdfs/storage # storage的上传文件存放路径
tracker_server=192.168.56.101:22122 # tracker的地址,以你的ip为准
  • 创建目录

刚刚配置的目录可能不存在,我们创建出来

1
sudo mkdir -p /leyou/fdfs/storage
  • 启动storage

    我们可以使用 sh /etc/init.d/fdfs_storaged 启动,同样我们可以用服务启动方式:

1
sudo service fdfs_storaged start  # 启动fdfs_storaged服务,停止用stop

另外,我们可以通过以下命令,设置tracker开机启动:

1
sudo chkconfig fdfs_storaged on

最后,通过ps -ef | grep fdfs 查看进程:

安装Nginx及FastDFS模块

FastDFS的Nginx模块

  • 解压

    1
    tar -xvf fastdfs-nginx-module_v1.16.tar.gz
  • 配置config文件

    1
    2
    3
    4
    5
    6
    # 进入配置目录
    cd /home/leyou/fdfs/fastdfs-nginx-module/src/
    # 修改配置
    vim config
    # 执行下面命令(将配置中的/usr/local改为/usr):
    :%s+/usr/local/+/usr/+g
  • 配置mod_fastdfs.conf

    1
    2
    3
    4
    # 将src目录下的mod_fastdfs.conf复制到 /etc/fdfs目录:
    sudo cp mod_fastdfs.conf /etc/fdfs/
    # 编辑该文件
    sudo vim /etc/fdfs/mod_fastdfs.conf
  • 修改一下配置:

    1
    2
    3
    4
    connect_timeout=10                  		# 客户端访问文件连接超时时长(单位:秒)
    tracker_server=192.168.56.101:22122 # tracker服务IP和端口,以你的ip为准
    url_have_group_name=true # 访问链接前缀加上组名
    store_path0=/leyou/fdfs/storage # 文件存储路径
  • 复制 FastDFS的部分配置文件到/etc/fdfs目录

    1
    2
    cd /home/leyou/fdfs/FastDFS/conf/
    cp http.conf mime.types /etc/fdfs/

安装Nginx

  • 解压

    1
    tar -xvf nginx-1.10.0.tar.gz
  • 配置

    1
    sudo ./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/home/leyou/fdfs/fastdfs-nginx-module/src

    注意:上方这段shell,整段复制执行

    其中`add-module`中的值为fastdfs-nginx-module安装目录的src目录,真实值以你安装的路径为准,打印当前所在路径的命令为:`pwd`
    
  • 编译安装

    1
    sudo make && sudo make install
  • 配置nginx整合fastdfs-module模块

    我们需要修改nginx配置文件,在/opt/nginx/config/nginx.conf文件中:

    1
    sudo vim  /opt/nginx/conf/nginx.conf

    将文件中,原来的server 80{ ...} 部分代码替换为如下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    server {
    listen 80;
    server_name image.taotao.com;

    location ~/group([0-9])/ {
    ngx_fastdfs_module;
    }

    location / {
    root html;
    index index.html index.htm;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    }

    }

    注意:

    ​ 这个地方如果是centos下的root用户有个坑,完成安装后上传图片成功后,却访问图片报404。需要在nginx.conf中配置user root;,加在配置文件的最上方即可。

  • 启动

    1
    2
    3
    nginx # 启动
    nginx -s stop # 停止
    nginx -s reload # 重新加载配置
  • 设置nginx开机启动

    创建一个开机启动的脚本:

    1
    vim /etc/init.d/nginx

    添加以下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    #!/bin/sh
    #
    # nginx - this script starts and stops the nginx daemon
    #
    # chkconfig: - 85 15
    # description: NGINX is an HTTP(S) server, HTTP(S) reverse \
    # proxy and IMAP/POP3 proxy server
    # processname: nginx
    # config: /etc/nginx/nginx.conf
    # config: /etc/sysconfig/nginx
    # pidfile: /var/run/nginx.pid

    # Source function library.
    . /etc/rc.d/init.d/functions

    # Source networking configuration.
    . /etc/sysconfig/network

    # Check that networking is up.
    [ "$NETWORKING" = "no" ] && exit 0

    nginx="/usr/bin/nginx"
    prog=$(basename $nginx)

    NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"

    [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

    lockfile=/var/lock/subsys/nginx

    make_dirs() {
    # make required directories
    user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
    if [ -n "$user" ]; then
    if [ -z "`grep $user /etc/passwd`" ]; then
    useradd -M -s /bin/nologin $user
    fi
    options=`$nginx -V 2>&1 | grep 'configure arguments:'`
    for opt in $options; do
    if [ `echo $opt | grep '.*-temp-path'` ]; then
    value=`echo $opt | cut -d "=" -f 2`
    if [ ! -d "$value" ]; then
    # echo "creating" $value
    mkdir -p $value && chown -R $user $value
    fi
    fi
    done
    fi
    }

    start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    make_dirs
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
    }

    stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
    }

    restart() {
    configtest || return $?
    stop
    sleep 1
    start
    }

    reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
    }

    force_reload() {
    restart
    }

    configtest() {
    $nginx -t -c $NGINX_CONF_FILE
    }

    rh_status() {
    status $prog
    }

    rh_status_q() {
    rh_status >/dev/null 2>&1
    }

    case "$1" in
    start)
    rh_status_q && exit 0
    $1
    ;;
    stop)
    rh_status_q || exit 0
    $1
    ;;
    restart|configtest)
    $1
    ;;
    reload)
    rh_status_q || exit 7
    $1
    ;;
    force-reload)
    force_reload
    ;;
    status)
    rh_status
    ;;
    condrestart|try-restart)
    rh_status_q || exit 0
    ;;
    *)
    echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
    exit 2
    esac
  • 修改文件权限,并加入服务列表

    1
    2
    3
    4
    # 修改权限
    chmod 777 /etc/init.d/nginx
    # 添加到服务列表
    chkconfig --add /etc/init.d/nginx
  • 设置开机启动

    1
    chkconfig nginx on
文章作者: imxushuai
文章链接: https://www.imxushuai.com/2018/07/22/FastDFS安装/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 imxushuai
支付宝打赏
微信打赏