ant centos环境下 编译没有将配置文件加载_LNMP环境下搭建FastDFS服务

主要目的:1.实现在浏览器中访问上传到fastDfs的图片;2.安装php fastdfs扩展实现php对fastdfs的相关操作与使用;FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client),相关原理参考:https://www.jianshu.com/p/d09e52ff947f

一.环境准备:

lnmp环境(或同时安装nginx和php等),libfastcommonan安装包,FastDFS安装包,fastdfs-nginx-module安装包.本文中相关安装包为:fastdfs-nginx-module_v1.16.tar.gz;libfastcommonV1.0.7.tar.gz;nginx-1.14.1.tar.gz;php-5.6.38.tar.gz

注意下载FastDFS源程序,最好与FastDFS服务器版本匹配.php7+安装fastdfs时回报错,fastdfs的php_client应该不支持php7+;

相关目录说明:

FastDFS数据根目录:/home/fastdfs
Tracker数据日志目录:/home/fastdfs/tracker
Storage数据日志目录:/home/fastdfs/storage
软件包存放目录:/usr/local/

安装包下载: https://pan.baidu.com/s/1AoP60trHoUP1tfS223SOeQ 提取码: ydak

二.安装步骤:

1.如果没有安装gcc环境,先安装gcc,FastDFS是c开发的,编译依赖gcc环境;

2.安装libevent库,因为FastDFS依赖该库,yum安装:

yum -y install libevent

3.安装ibfastcommon

libfastcommon是FastDFS官方提供的,libfastcommon包含了FastDFS运行所需要的一些基础库;

(1)上传 libfastcommonV1.0.7.tar.gz到Centos机器上;

(2)将 libfastcommonV1.0.7.tar.gz解压至/usr/local/下:

tar -zxvf libfastcommonV1.0.7.tar.gz -C /usr/local/

(3)切换目录到:/usr/local/libfastcommon-1.0.7/ 下,接着进行编译和安装;

cd /usr/local/libfastcommon-1.0.7/
./make.sh           #编译
./make.sh install   #安装

安装后截图:

aa9535e9ad26767e9611d68583806ed6.png

(4)libfastcommon安装好后会在/usr/lib64 目录下生成 libfastcommon.so 库文件;

注意:由于FastDFS程序引用usr/lib目录所以需要将/usr/lib64下的库文件拷贝至/usr/lib下。

cp libfastcommon.so /usr/lib

4.安装tracker

(1)上传 FastDFS_v5.05.tar.gz 到 centos 上;

(2)将FastDFS_v5.05.tar.gz 解压至/usr/local/下

tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local

(3)切换目录到: /usr/local/FastDFS/ 下,编译和安装;

cd /usr/local/FastDFS/
./make.sh && ./make.sh install  #编译之后接着进行安装
安装后截图如下:

51125029a3910d0e8a1329853d7f4d5c.png

(4)安装成功将安装目录下的conf下的文件拷贝到/etc/fdfs/下;

fastdfs相关的配置文件(tracker,storage,php_client等配置文件)就都在/etc/fdfs下了

cp /usr/local/FastDFS/conf/* /etc/fdfs/

5、配置和启动tracker

(1)切换目录到: /etc/fdfs/ 目录下;

(2)拷贝一份新的tracker配置文件,并做备份

cp tracker.conf tracker.conf.bak

(3)修改tracker.conf ; vim tracker.conf

base_path=/home/yuqing/fastdfs  改为:  base_path=/home/fastdfs
http.server_port  改为: 80

(4)创建 /home/fastdfs 目录

mkdir /home/fastdfs

(5)启动tracker,运行如下命令:

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

启动后会在/home/fastdfs/下生成一个logs目录 一个data目录

6、配置和启动storage

(1)切换目录到: /etc/fdfs/ 目录下;

(2)拷贝一份新的storage配置文件

cp storage.conf.sample storage.conf

(3)修改storage.conf ; vim storage.conf

group_name=group1 #配置组名
base_path=/home/yuqing/fastdfs    改为:  base_path=/home/fastdfs

#store存放文件的位置(store_path)
store_path0=/home/yuqing/fastdfs  改为: store_path0=/home/fdfs_storage
本环境就有一个挂载磁盘.
#如果有多个挂载磁盘则定义多个store_path,如下
#store_path1=.....
#store_path2=......
#配置tracker服务器:IP;
注意:如果集成nginx服务器即用nginx 做tracker该ip就配成要用的nginx的ip,该环境中nginx的ip是192.168.99.99
tracker_server=192.168.99.99:22122
#如果有多个则配置多个tracker,本环境就一个
#tracker_server=192.168.101.4:22122

# if use storage ID instead of IP address
# default value is false
# since V4.00
#use_storage_id = false
#配置使用id查找数据
use_storage_id = true
#配置http端口(使用ngixn的话这个貌似不用配)
http.server_port=8888

(4)创建 /home/fdfs_storage 目录

mkdir /home/fdfs_storage

(5)启动storage, 运行命令如下:

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

7、使用FastDFS自带工具测试

(1)切换目录到 /etc/fdfs/ 目录下;

(2)拷贝一份新的client配置文件并备份

cp client.conf client.conf.bak

(3)修改client.conf ; vim client.conf,修改基本路径和tracker_server如下:

# the base path to store log files
base_path=/home/fastdfs

# tracker_server can ocur more than once, and tracker_server format is
#  "host:port", host can be hostname or ip address
#修改tracker_server
tracker_server=192.168.99.99:22122

(4)拷贝一张图片111.png到随便一个目录下 如/vagrant/下并运行如下命令

/usr/bin/fdfs_test /etc/fdfs/client.conf upload /vagrant/111.obng
成功界面如下:

fdc616bad46f8c9bf97554b3c9b8d78f.png

因为还没和nginx整合,该图片还不可以通过浏览器访问http://192.168.99.99/group1/M00/00/00/wKhjY1y2lYeAdOb5AAJV1YeqLKM782_big.PNG

8、安装fastdfs-nginx-module扩展来;

每个tracker上安装nginx,的主要目的是做负载均衡及实现高可用.如果只有一台tracker可以不配置nginx(这里我们不使用他自身的tracker使用nginx安装fast-nginx-module扩展,进而nginx作为tracker)。一个tracker对应多个storage,通过nginx对storage负载均衡;

(1)上传 fastdfs-nginx-module_v1.16.tar.gz 到Centos服务器上;

(2)解压 fastdfs-nginx-module_v1.16.tar.gz 到 /usr/local目录下;

tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local

(3)切换目录到: /usr/local/fastdfs-nginx-module/src/ 目录下

cd /usr/local/fastdfs-nginx-module/src
cp conf conf.bak

(4)修改config文件,将文件中的所有 /usr/local/ 路径改为 /usr/

b01b3472f1061bc5a2051eb1e260c8ae.png
ngx_addon_name=ngx_http_fastdfs_module
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/"
Cddon_name=ngx_http_fastdfs_module
HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_fastdfs_module.c"
#修改为
CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"
CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='"/etc/fdfs/mod_fastdfs.conf"'"ORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"
CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='"/etc/fdfs/mod_fastdfs.conf"'"
~

(5)将fastdfs-nginx-module/src下的mod_fastdfs.conf拷贝至/etc/fdfs/下

cp mod_fastdfs.conf /etc/fdfs/

(6)并修改 /etc/fdfs/mod_fastdfs.conf 的内容;

vi /etc/fdfs/mod_fastdfs.conf;

#修改以下配置项
base_path=/home/fastdfs
tracker_server=192.168.172.20:22122 
#tracker_server=192.168.172.20:22122 #(多个tracker配置多行)
url_have_group_name=true        #url中包含group名称
store_path0=/home/fdfs_storage  #指定文件存储路径(上面配置的store路径)
use_storage_id = true

(7)将libfdfsclient.so拷贝至/usr/lib下

cp /usr/lib64/libfdfsclient.so /usr/lib/

9、FastDFS 和nginx整合;

(1)安装改扩展有两种场景:1.nginx还未搭建安装;2:nginx已安装搭建;

第一种情况比较简单,编译安装nginx时加上该模块即可:

--add-modules=/usr/local/fastdfs-nginx-module/src(注意要到src目录)

编译安装后重启nginx即可;

第二种情况稍微麻烦,需要进入nginx源码目录重新编译一下,操作如下:

为防止该情况下会覆盖到之前的nginx 首先nginx -v 获取已安装的信息如图:

5a3195eb46366c972d17bedc6dc1615f.png

然后在nginx源码目录中执行./configure --prefix=上面输出的内容+--add-modules=/usr/local/fastdfs-nginx-module/src

编译过程中可能会提示缺少依赖,通过yum -y install 安装即可;

编译通过后执行:make -j2 (之后不要执行make install,一面覆盖之前nginx相关配置)

以上完成后,会在objs目录下生成一个nginx文件,先验证:

objs/nginx -t 
objs/nginx -V

文件替换,并重启

以上成功后:

cp objs/nginx /usr/sbin/ 
nginx -s reload

重启:

nginx -s stop && nginx

(2)进行fastdfs与nginx集成的相关配置

拷贝配置文件到/etc/fdfs/

cd /usr/local/FastDFS/conf
cp http.conf mime.types /etc/fdfs/

修改nginx的配置文件添加如下两个内容

30925f3596a108dc4d5c7b2f5b2cf27e.png
整个vhost配置代码如下:

server {
        listen 80;
        server_name ****.com;
        location ~* /group[0-9]*/M00 {
            ngx_fastdfs_module;
        }
        location / {
        root /vagrant/www/*SystemStatic;
        index index.html index.htm index.php;
        try_files $uri $uri/ /index.php?$query_string;
        }
        location ~* (.*.(bmp|jpeg|jpg|gif|png))!(.*)!(.*)$ {
           set $width   $3;
           set $height  $4;
           rewrite "(.*.(bmp|jpeg|jpg|gif|png|BMP|JPEG|JPG|GIF|PNG))(.*)$" $1;
        }

 location ~.php(.*)$ {
        root /vagrant/www/*SystemStatic;

    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;

         }
   }

(3)重启nginx,storage,tracker

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
service nginx restart
重启后即可通过浏览器访问fastdfs上存储的图片了:
http://***/group1/M00/00/00/wKhjY1y2lYeAdOb5AAJV1YeqLKM782_big.PNG
若访问失败,检查是否防火墙是否关闭,关闭后在尝试:
service iptables stop  #临时关闭防火墙
chkconfig iptables off #永久关闭防火墙

10.安装php fastdfs扩展php_client(注:wamp下php是不支持改扩展的,且php7+该版本fastdfs也不可用);

(1)安装编译php_client

     cd /usr/local/FastDFS
#./make.sh
#./make.sh install
#cd client
#make;
#make install
如以上不安装,直接进php-config目录进行编译安装,可能会报如下错误:
make: *** [fastdfs_client.lo] Error 1
如果以上操作都进行,但是make时还报错,那就是版本问题了,要换php或fastDFS的版本了.
进入扩展源码目录进行安装
#cd ../php_client
#/usr/local/php/bin/phpize //执行php的安装目录下的phpize
#./configure --with-php-config=/usr/local/php/bin/php-config
#make
#make install

cd /etc/fdfs
vim fastdfs_client.ini
#修改如下fastdfs_clien配置项t:
fastdfs_client.base_path = /home/fastdfs
fastdfs_client.tracker_group0 = /etc/fdfs/client.conf
在php.ini配置文件中加载fastdfs
cat fastdfs_client.ini >> /usr/local/php/lib/php.ini




(2)测试扩展

重启nginx storage,tracker,php

cp /usr/local/FastDFS/php_client/fastdfs_test.php 到网站根目录如:/home/www/你的项目

在浏览器中输入:网站地址/fastdfs_test.php 如:http:***/fastdfs_test.php

如出现3.06 fastdfs_tracker_make_all_connections result: 1 array(1) { ["group1"]=> array(12) { ["free_space"]=> int(10542) ["trunk_free_space"]=> int(0) ["server_count"]=> int(2) ["active_count"]=> int(2) ["storage_port"]=> int(23000) ["storage_http_port"]=> int(8888)表示扩展安装成功,就可以在php中使用fastdfs了.

备注:由于版本等等好多问题,导致自己在搭建时很不顺利,故整理下搭建过程及可能遇到的问题,以备后用.

其中参考文章如下:https://www.cnblogs.com/yufeng218/p/8111961.html

https://www.cnblogs.com/zenghui940/p/4932684.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值