CentOS7安装FastDFS

CentOS7安装FastDFS

1. 安装依赖

  1. GCC

  2. unZip

  3. libevent

    sudo yum -y install libevent
    
  4. 安装libfastcommon-master
    这个没有yum包,只能通过编译安装:

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

    unzip libfastcommon-master.zip
    
  • 进入解压完成的目录:

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

    sudo ./make.sh 
    sudo ./make.sh install
    

2. 编译安装

  • 解压

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

    cd FastDFS
    
  • 编译并安装

    sudo ./make.sh 
    sudo ./make.sh install
    
  • 校验安装结果
    我们能在/etc/init.d/目录,通过命令ll /etc/init.d/ | grep fdfs看到FastDFS提供的启动脚本:

    其中:

  • fdfs_trackerd 是tracker启动脚本

  • fdfs_storaged 是storage启动脚本

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

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

3. 启动tracker

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

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

  • 编辑tracker配置

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

sudo cp tracker.conf.sample tracker.conf
sudo vim tracker.conf

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

base_path=/home/phone/fdfs/tracker  
  • 创建目录

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

sudo mkdir -p /home/phone/fdfs/tracker
  • 启动tracker

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

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

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

sudo chkconfig fdfs_trackerd on

4. 启动storage

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

  • 编辑storage配置

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

sudo cp storage.conf.sample storage.conf
sudo vim storage.conf

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

base_path=/home/phone/fdfs/storage # storage的数据和日志存放目录
store_path0=/home/phone/fdfs/storage # storage的上传文件存放路径
tracker_server=192.168.1.8:22122 # tracker的地址我的虚拟机地址192.168.1.8

!!! 请把上面注解部分在写storage.con的时候删掉,启动storage不报错但是没有storage的进程

  • 创建目录

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

sudo mkdir -p /home/phone/fdfs/storage
  • 启动storage

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

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

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

sudo chkconfig fdfs_storaged on

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

上面的启动是因为storage.conf的配置文件问题,删掉修改部分的注解后(或者不要将注解与代码在同一行)成功运行

不要在配置后面加注解

5.配置nginx

1. 配置FastDFS的nginx模块

  • 解压

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

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

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

    connect_timeout=10 # 客户端访问文件连接超时时长(单位:秒)
    tracker_server=192.168.1.8:22122 # tracker服务IP和端口我的虚拟机地址192.168.1.8
    url_have_group_name=true # 访问链接前缀加上组名
    store_path0=/home/phone/fdfs/storage # 文件存储路径
    
  • 解压FastDFS并复制 FastDFS的部分配置文件到/etc/fdfs目录

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

2. 配置添加了FastDFS模块的的nginx编译替换

sudo ./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/home/phone/fastdfs-nginx-module/src
根据自己的文件路径了启动路径去编译

sudo ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --add-module=/home/phone/fastdfs-nginx-module/src

--prefix:可以通过whereis nginx 找到安装路径
--sbin:启动文件
--add-module:新加模块的src文件
其他详细参数参考nginx 编译参数详解(运维不得不看)

已经安装过nginx,只编译不安装

sudo make

找到nginx安装位置

whereis nginx

备份:

sudo mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bck

用刚刚编译的nginx替换之前安装的nginx

sudo cp /home/phone/nginx-1.10.0/objs/nginx /usr/local/nginx/sbin/

3. 修改nginx配置文件

usr/local/nginx/conf

4. 重启nginx(在启动目录下/usr/local/nginx/sbin/)

sudo  ./nginx -s reload

errrrrrrror

1. 直接访问/路径没问题,上传图片没问题,读取出问题

去当时配置存储目录找到对应的文件storage/data/00/00//wKgBCGAXyYOAIAaPAAEIpEESHNc725.jpg
有文件说明上传没问题,
在nginx服务下有配置/根路径显示 index.html(nginx默认欢迎页)

访问

说明nginx配置没问题
猜想应该是fdfs_storage有问题
查看fdfs_storage的日志,有如下错误:

上面更新了该配置文件如何解决,我将这两个配置文件复制过去解决
继续访问图片出现第二个问题:

权限问题,该目录无法访问,
于是我将fdfs整个文件提升权限chmod 777 -R fdfs
还是不行,
经过查资料关于nginx集合fastdfs时http请求无法访问,nginx的权限问题。--青古一梦
去nginx.conf配置
配置user root
还是不行,启动直接报错

注意注解上的配置有分号

加上分号,可以访问!!!

over!

heroes never die!
原文地址:https://www.cnblogs.com/daiSir/p/14350266.html