文档章节

centos搭建FastDFS服务器!

求学ing
 求学ing
发布于 2013/09/10 15:31
字数 1605
阅读 1350
收藏 19

CentOS fastDFS结合nginx的配置以及php端的调用方法  

2013-04-18 22:54:55|  分类: 默认分类 |  标签:centos  fastdfs  nginx  php  |字号 订阅

fastDFS的介绍就不说了  想了解的人直接百度。

源码: http://code.google.com/p/fastdfs/

论坛: http://bbs.chinaunix.net/forum-240-1.html

配置说明: http://bbs.chinaunix.net/thread-1941456-1-1.html

开始吧


--------------------------------------------------

环境:

CentOS 6.3 x64      3台

FastDFS_v4.04.tar.gz      http://fastdfs.googlecode.com/files/FastDFS_v4.04.tar.gz

fastdfs-nginx-module_v1.13.tar.gz   http://fastdfs.googlecode.com/files/fastdfs-nginx-module_v1.13.tar.gz

libevent-1.4.14b-stable.tar.gz   https://github.com/downloads/libevent/libevent/libevent-1.4.14b-stable.tar.gz

nginx-1.0.10.tar.gz   http://nginx.org/download/nginx-1.0.10.tar.gz

pcre-8.20.tar.gz   http://sourceforge.net/projects/pcre/files/pcre/8.20/pcre-8.20.tar.gz


tracker server  IP: 192.168.41.160

storage server IP: 192.168.41.162

storage server IP: 192.168.41.163

PHP客户端 IP: 192.168.41.156

--------------------------------------------------

1、安装部署

1.0.1安装依赖包libevent  (所有机器 )

tar zxvf  libevent-1.4.14b-stable.tar.gz

cd libevent-1.4.14b-stable

./configure --prefix=/usr/local/libevent

make

make install


1.0.2安装fastDFS ( tracker、 storage、php端都按照此方法 ) (所有机器)

tar zxvf  FastDFS_v4.04.tar.gz

cd FastDFS

vi make.sh   //   tracker才需要,storage、php不用操作此步骤

//64行左右 删除#号开启WITH_HTTPD和WITH_LINUX_SERVICE 

//开启自带的http,据说最新版已经取消自带的http功能

./make.sh C_INCLUDE_PATH=/usr/local/libevent/include LIBRARY_PATH=/usr/local/libevent/lib 

./make.sh install

//到这里安装就完毕了

//可以看到fastDFS的相关配置文件

ls /etc/fdfs/

tracker.conf   // 负责均衡调度服务器配置文件

client.conf   // 客户端上传配置文件

http.conf // http服务器配置文件

storage.conf // 文件存储服务器配置文件

mime.types //文件类型配置文件


1.0.3启动fastDFS tracker     ( 192.168.41.160)

//创建目录,用于记录  tracker 日志、storage server等信息。

mkdir -m 777 -p /www/fastDFS

//修改 tracker.conf

vi /etc/fdfs/ tracker.conf

 把 22  行 改成  base_path=/www/fastDFS

 把 222行 改成 http.server_port=8088        //如果本机没用到8080可以不修改

 把 244行 改成 #include http.conf        //注意,改完前面有个#,不要全部去掉

//启动 tracker

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

(如果你的centos是64位的启动时候会报错!! 提示找不到libevent-2.0.so.5) 所以执行命令:

ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5

//查看端口是否开启,看到22122 和8088就说明启动正常。如果没有,查看/www/ fastDFS/logs里的日志

netstat -tnlp

CentOS fastDFS结合nginx的配置以及php端的调用方法 - 李坤山 - 李坤山VS断悬

1.0.4启动fastDFS  storage  ( 192.168.41.162  192.168.41.163)

//创建目录,用于存储文件

mkdir -m 777 -p /www/ fastDFS

//修改 storage.conf

vi /etc/fdfs/storage.conf

把 33  行   改成 base_path=/www/fastDFS

把 100行  改成  store_path0=/www/fastDFS

把 109行  改成  tracker_server=192.168.41.160:22122 //根据自己的IP

把 252行  改成  http.disabled=true     //因为我们要用nginx了,这个就关闭它

把 259行  改成  http.server_port=80

//启动 storage    

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

//查看端口是否开启,看到23000就说明启动正常。如果没有,查看/www/ fastDFS/logs里的日志

CentOS fastDFS结合nginx的配置以及php端的调用方法 - 李坤山 - 李坤山VS断悬

 //这个时候可以看下  storage与  tracker的连接情况

netstat -tnlpa| grep 22122

CentOS fastDFS结合nginx的配置以及php端的调用方法 - 李坤山 - 李坤山VS断悬  


 

 2、测试上传

2.0.1  配置客户端上传文件 (192.168.41.160)

vi /etc/fdfs/client.conf

把 10 行 改成 base_path= /www/fastDFS

把 14 行 改成  tracker_server=192.168.41.160:22122   //根据自己的IP

把 29 行 改成   http.tracker_server_port=8088 //这个一定要跟 tracker.conf里面配置的一样

把 32 行  改成 #include http.conf       //注意,改完前面有个#,不要全部去掉

//随意上传个文件

echo 'fastDFS_test' >/tmp/test.txt

fdfs_test /etc/fdfs/client.conf upload /tmp/test.txt

CentOS fastDFS结合nginx的配置以及php端的调用方法 - 李坤山 - 李坤山VS断悬

//看到类似上面的返回,说明文件已经成功上传。如果不是,说明配置出错了,查看日志。

//记录下这个URL:http://192.168.41.160:8080/group1/M00/00/00/wKgpolFwG-WANaKzAAAADVt_Kt4300_big.txt


3、nginx配置

3.0.1  nginx拓展模块安装 ( 192.168.41.162  192.168.41.163 )

//nginx的安装比较简单,这里不做解释

//曾经有过疑问,既然文件是直接被保持在storage服务器上,那直接用nginx就可以访问了,为什么还要添加这个模块?

//答:

//使用扩展模块来解决文件同步延迟问题

//如果请求文件在当前storage上不存在,通过文件ID反解出源storage,直接请求源storage

//tracker server上不需要任何web server

//在每台storage server上部署web server,直接对外提供HTTP服务

//目前已提供apache和nginx扩展模块

//推荐使用扩展模块方式

//假设nginx已经在系统被安装过。

tar zxvf fastdfs-nginx-module_v1.13.tar.gz

/usr/local/nginx/sbin/nginx -V

//运行后得到原来的编译参数,如:

// --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-openssl=/root/openssl-1.0.0d

cd nginx-1.0.10

./configure  --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-openssl=/root/openssl-1.0.0d  --add-module=/root/fastdfs-nginx-module/src       // fastdfs-nginx-module的路径根据自己的环境修改

make

make install

cp /root/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

vi /etc/fdfs/mod_fastdfs.conf

把 3  行  改成connect_timeout=20      //默认2秒有点小,可改可不改

把 10行  改成 base_path=/www/fastDFS/  

把 40行  改成 tracker_server=192.168.41.160:22122 // //根据自己的IP

把 62行  改成 store_path0=/www/fastDFS

把53行 改成 url_have_group_name = true (如果不修改用浏览器访问的时候加上group1的时候不能访问报400错误!!)

ln -s  /www/fastDFS/data    /www/fastDFS/data/M00

//编辑nginx.conf

 vi /usr/local/nginx/conf/nginx.conf

//在server段添加如下内容:

location /group1/M00/ { alias /www/fastDFS/data/; ngx_fastdfs_module; }

/usr/local/nginx/sbin/nginx -t

/usr/local/nginx/sbin/nginx -s stop

/usr/local/nginx/sbin/nginx

//这里直接用 usr/local/nginx/sbin/nginx -s  reload 有时候会出现nginx没办法访问。

3.0.2  nginx拓展模块验证 ( 192.168.41.162  192.168.41.163 )

//用浏览器打开我们上面记录的URL:

//http://192.168.41.160:8080/group1/M00/00/00/wKgpolFwG-WANaKzAAAADVt_Kt4300_big.txt

    //访问 tracker 会被302跳转到一台可用的 storage上面去请求

CentOS fastDFS结合nginx的配置以及php端的调用方法 - 李坤山 - 李坤山VS断悬

//当然,在另一个节点上也是可以访问的,手动更改url:

CentOS fastDFS结合nginx的配置以及php端的调用方法 - 李坤山 - 李坤山VS断悬

4、PHP客户端配置

 

4.0.1  php拓展模块安装 (PHP端)  

//php的客户端安装也会依赖 FastDFS本身的一些库文件,所以请保证已经安装了 FastDFS。

cd /root/FastDFS/php_client/

/usr/local/php/bin/phpize

./configure  --with-php-config=/usr/local/php/bin/php-config

make

make install

cat fastdfs_client.ini >> /usr/local/php/etc/php.ini

 //验证模块是否被正常加载

 /usr/local/php/bin/php -m |grep fastdfs_client

 //如果有返回,就说明成功。

cp ../conf/etc/fdfs/ /etc/fdfs/

vi /etc/fdfs//etc/fdfs/

把 14 行改成    tracker_server=192.168.41.160:22122

 把 29 行改成  http.tracker_server_port=8088

 //重启加载php

/usr/local/php/sbin/php-fpm  reload

 

4.0.2  php拓展模块验证 (PHP端)  

 

//随意创建个文件,上传用  

 

echo 'php_upload_test'  >/tmp/upload.txt  


//创建个上传test.php  内容如下:  

 

 

<?php 

var_dump(function_exists('fastdfs_storage_upload_by_filename')); 

$ret = fastdfs_storage_upload_by_filename('  

/tmp/upload.txt  

'); 

var_dump($ret); 

?>

//执行:

/usr/local/php/bin/php test.php

CentOS fastDFS结合nginx的配置以及php端的调用方法 - 李坤山 - 李坤山VS断悬  

  //看到上面的返回,应该很熟悉吧,说明成功了。用浏览器访问下:  

CentOS fastDFS结合nginx的配置以及php端的调用方法 - 李坤山 - 李坤山VS断悬  

关于fastDFS php插件的使用方法和函数调用方法,可以查看/root/FastDFS/php_client/README 


OK。


fastdfs 配置文件详解 http://my.oschina.net/guol/blog/72845

安装遇到的错误:http://blog.sina.com.cn/s/blog_69b226650100wyn0.html

 http://192.168.1.220:8080/group1/M00/00/00/wKgB3FIvWm6AF_HmAAu-28LMRow_big.tar.gz

本文转载自:http://blog.163.com/a12333a_li/blog/static/8759428520133189414521/

求学ing
粉丝 12
博文 174
码字总数 72348
作品 0
昌平
私信 提问
搭建FastDFS分布式存储环境(使用Nginx模块)

上次搭建FastDFS使用的版本是v4.05,见http://www.linuxidc.com/Linux/2014-10/107592.htm 这个版本已经比较旧了 最新的版本是v5.04,由于作者重构了代码,所以安装过程还是有一些不一致. 最新...

凯文加内特
2015/04/01
2.2K
0
Centos 7 搭建 FastDFS文件管理系统

一、FastDFS介绍 FastDFS开源地址:https://github.com/happyfish100 参考:分布式文件系统FastDFS设计原理 参考:FastDFS分布式文件系统 个人封装的FastDFS Java API:https://github.com/...

欧虞山
2018/09/05
0
0
CentOS 6.3(64) ---> fastdfs_v4.07 / 实现多服务器

自己闲着没事,在小黑上虚拟了 4 个 centos 64 的系统,用来安装分布式 fastdfs 、 nginx 负载均衡,过程一路艰辛,搞了一个通宵都没弄好,终于在第二天的傍晚终于弄好了,记录一下过程。 有...

shking
2013/09/29
10.8K
27
使用FastDFS搭建图片服务器(单实例)

FastDFS是一款类Google FS的开源分布式文件系统,它用纯C语言实现,支持Linux、FreeBSD、AIX等UNIX系统。它只能通过 专有API对文件进行存取访问,不支持POSIX接口方式,不能mount使用。准确地...

haoyuehong
2018/09/12
224
0
搭建FastDFS分布式集群环境笔记

因为工作中再次需要用到FastDFS做多机分布式集群,在此做个笔记,便于大家学习参考,因不同机器的基础软硬件环境不一样,整个分布式集群搭建配置过程可能会有各种坑,热情填坑即可^0^ 一、应...

xiejunbo
2016/08/02
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

yapi上传接口idea插件

YapiIdeaUploadPlugin 插件使用 目的 减少手动维护yapi接口文档的时间成本,通过idea插件快速提交接口文档到yapi; 保证接口文档的准确性,方便后台、前端、测试等查看接口文档; 反向规范代...

狂奔的熊二
10分钟前
5
0
最近学习到的Lambda表达式

前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 中秋去了躺上海,在外滩上打了个卡: 紧接着学了一下Java的函数式编程,给大家整理了...

Java3y
20分钟前
11
0
一条insert语句批量插入多条记录

-- 一条insert只能插入一条数据 insert into person (id, personCode, personName , telNumber)values(1,'5112403' , '张三' , '1378902134'); 一次插入多条数据的方法: 方式一: insert i......

葬-花
32分钟前
3
0
IT兄弟连 HTML5教程 HTML5的基本语法 简单HTML实例制作

现在学习HTML5的方式 目前HTML还处于HTML4与HTML5之间的过渡使用阶段。移动端的Web界面开发已经全面使用HTML5的技术,而在PC端由于用户升级浏览器周期较长,面临着页面的兼容性问题,以及开发...

老码农的一亩三分地
47分钟前
4
0
[Android] 【每日更新书源】「阅读」APP -100+ 精品书源一键导入!每天自动更新最新书源!

我特地写了个爬虫爬取书源,每天自动更新书源(URL是固定的)!大家也可以定期导入一下! 放心!导入时会自动去除重复书源的! 前段时间我发过一个书源大礼包的帖子,不过现在已经无法编辑修...

xiaogg
50分钟前
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部