FastDFS分布式文件系统

这个主要是针对应用型的,很使用,特别是对于电商等

一。编译安装

ubuntu平台:

apt-get install libevent(这个默认就有,没有就装下) libevent-dev

后面一个一定要记着装,否则会出现event.h找不到文件的错误

下载fastdfs

wget http://fastdfs.googlecode.com/files/FastDFS_v4.06.tar.gz

cd tar zxf FastDFS_v4.06.tar.gz

然后需要修改以下文件

make.sh   这个根据实际情况来修改 ,因为如果不该默认会报找不到pthread类的错误

if [ -f /usr/lib/x86_64-linux-gnu/libpthread.so ] || [ -f /usr/local/lib/libpthread.so ] || [ -f /lib64/libpthread.so ] || [ -f /usr/lib64/libpthread.so ] || [ -f /usr/lib/x86_64-linux-gnu/libpthread.a ] || [ -f /usr/local/lib/libpthread.a ] || [ -f /lib64/libpthread.a ] || [ -f /usr/lib64/libpthread.a ]; then

client/fdfs_link_library.sh.in 也是修改为相应路径

if [ "`id -u`" = "0" ]; then
  ln -fs $TARGET_LIB/libfastcommon.so.1 /usr/lib/x86_64-linux-gnu/libfastcommon.so
  ln -fs $TARGET_LIB/libfdfsclient.so.1 /usr/lib/x86_64-linux-gnu/libfdfsclient.so

if [ "$OS_BITS" = "8" ]; then
     ln -fs $TARGET_LIB/libfastcommon.so.1 /usr/lib/x86_64-linux-gnu/libfastcommon.so
     ln -fs $TARGET_LIB/libfdfsclient.so.1 /usr/lib/x86_64-linux-gnu/libfdfsclient.so
  fi
fi

然后sh make.sh   sh make.sh install完成安装

二,编译安装apache模块

下载

wget http://fastdfs.googlecode.com/files/fastdfs-apache-module_v1.15.tar.gz

tar zxf fastdfs-apache-module_v1.15.tar.gz

cd fastdfs-apache-module/src

修改Makefile

这里whereis查询相应的可执行文件路径,如果没有,cp一份过去都行,主要是会找不到build下面的special.mk,因为我的apache2是直接apt-get的

所以这里需要apt-get install apache2-dev

然后make && make install 就可以了

apache配置

vim /etc/fdfs/mod_fastdfs.conf

这里只需要tracker_server改为对应的ip

url_have_group_name 这个一定要注意,如果这里为false,则下面的apache配置里面也不能出现group_name,我这里该为了true

vim /etc/apache2/fastdfs.conf ,这个是在apache2.conf文件里面include进来的,所以实际上只需写在主体里面即可

<Location /group1/M00>
    sethandler fastdfs
</Location>

这里使用了组名,如果上面配置为false的话,这里就只能M00了

这样只要所有指向storeip的域名都能访问返回的url了,不光能用ip访问,域名也能访问,只要指向是正确的,这样就可以有file1.test.com file2.test.com了

三。编译php扩展

这个更加简单phpize ./configure make make install

然后把对应的.so文件载入即可

这里文章最后会把所有配置文件打包提供下载的,居然无法上传附件

四,用php实战

 <?php
$ret = fastdfs_storage_upload_by_filename('url.txt');
$ret1 = fastdfs_storage_upload_by_filename1('url.txt');
$file_info = fastdfs_get_file_info($ret['group_name'],$ret['filename']);
$file_info1 = fastdfs_get_file_info1($ret1);
header("Content-Disposition: attachment; filename= 重命名文件名.txt");
header("Content-Type: application/octet-stream");
header("X-Accel-Redirect: $file_info1"); //fdfs文件路径
header("X-Accel-Buffering: yes");
header("X-Accel-Limit-Rate :102400"); //速度限制 Byte/s
//header("Accept-Ranges: none");//单线程 限制多线程
var_dump($ret,$ret1,$file_info,$file_info1);

把原始文件名存入数据库,然后存入该文件的下载地址,也就是file_id,这个是唯一的,上面的代码就可以实现下载重命名,改为你想要的中文名

然后其它的使用函数可以看源码下面的php-client/README

CentOS平台比较简单,基本上都可以直接编译通过,nginx明白原理配置也一样。

FastDFS分布式文件系统研究的更多相关文章

  1. 一文搞定FastDFS分布式文件系统配置与部署

    Ubuntu下FastDFS分布式文件系统配置与部署 白宁超 2017年4月15日09:11:52 摘要: FastDFS是一个开源的轻量级分布式文件系统,功能包括:文件存储.文件同步.文件访问(文件 ...

  2. Linux FastDFS 分布式文件系统安装

    Linux FastDFS 分布式文件系统安装 2013 年 3 月 11 日 – 09:21 | 930 views | 收藏  (No Ratings Yet) FastDFS是一款类Google ...

  3. 第2-1-1章 FastDFS分布式文件服务背景及系统架构介绍

    目录 1 背景 1.1 为什么需要分布式文件服务 1.1.1 单机时代 1.1.2 独立文件服务器 1.1.3 分布式文件系统 1.2 什么是FastDFS 2 系统架构 2.1 Tracker集群 ...

  4. FastDFS分布式文件系统设计原理

    转载自http://blog.chinaunix.net/uid-20196318-id-4058561.html FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker ser ...

  5. 1Nginx+fastdfs分布式文件存储

     准备,将所需的软件传到服务器上,服务器的列表如下: fastdfs-nginx-module_v1.15.tar.gz FastDFS_v4.06.tar.gz libevent-2.0.21- ...

  6. FastDFS 分布式文件存储目录

    1.fastdfs安装和配置 https://blog.csdn.net/hy245120020/article/details/78658081 2.使用nginx代理fastdfs以及图片裁剪(f ...

  7. FastDFS分布式文件系统安装与使用(单节点)

    http://blog.csdn.net/xyang81/article/details/52837974 http://download.csdn.net/detail/xyang81/966749 ...

  8. 阶段5 3.微服务项目【学成在线】_day08 课程图片管理 分布式文件系统_06-分布式文件系统研究-fastDFS安装及配置文件说明

    3 fastDFS入门 3.1fastDFS安装与配置 3.1.1 导入虚拟机 对fastDFS的安装过程不要求学生掌握,可以直接导入老师提供虚拟机. 1.使用Vmware打开虚拟机配置文件“Cent ...

  9. django中使用FastDFS分布式文件系统接口代码实现文件上传、下载、更新、删除

    运维使用docker部署好之后FastDFS分布式文件系统之后,提供给我接口如下: fastdfs tracker 192.168.1.216 192.168.1.217 storage 192.16 ...

随机推荐

  1. win10 + vs2017 + vcpkg —— VC++ 打包工具

    vcpkg 是微软 C++ 团队开发的在 Windows 上运行的 C/C++ 项目包管理工具,可以帮助您在 Windows 平台上获取 C 和 C++ 库. vcpkg 自身也是使用 C++ 开发的 ...

  2. ORACLE.错误码 ORA-12154 及Oracle客户端免安装版的设置

    .错误码 ORA-12154相信作为ORACLE数据库的开发人员没有少碰到“ORA-12154: TNS: 无法解析指定的连接标识符”,今天我也又碰到了类似的情况,将我的解决方法进行小结,希望能对碰到 ...

  3. 控件——DataGridview

    控件:DataGridview    用来显示数据,      可以显示和编辑来自多种不同类型的数据源的表格数据. 一.两种显示数据的方式:手动,后台代码 主要通过后台代码:先建立三大类   然后绑定 ...

  4. html行级元素和块级元素以及css转换

    之前有说过html的标签是有语义的,当然也就有一些默认的样式,比如标题有h1···h6,他们的字体由大至小一次递减,字体比一般字体要加粗. 这样也就有了行级元素和块级元素,下面来看看什么是行级元素什么 ...

  5. MAVEN学习笔记之私服Nexus(2)

    MAVEN学习笔记之私服Nexus(2) 私有服务器搭建 Nexus www.snatype.org下载 snatype-work 是默认nexus存储nexus a:将bin添加到环境中 Admin ...

  6. ACM_____不再爱你……

    不再爱你…… 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 现在有一个圆柱形水杯,里面装满了水,在它的底部有一个小洞,通过一些简单的物理知识我们可以知道: 1.由于重力 ...

  7. Walking on the path of Redis --- Redis configuration

    废话开篇 Redis的安装是非常简单易操作的,但是配置就有点复杂了,要想得到高性能的Redis数据服务,深入了解下如何配置是很重要的. 配置详解 下面是主要的参数及说明,至于如何配置才能最优,目前还不 ...

  8. Docker的特性解析

    Docker简介与入门:http://segmentfault.com/blog/p_chou/1190000000448808 Docker是个新生的事物,概念类似虚拟化.网上关于Docker入门的 ...

  9. 易观OLAP算法大赛结果揭晓,开源组黑马放大招!

    100+天激烈赛程,40+国内顶级技术豪门对决,历经研发内部测试.正式环境测试和易观数据正式环境跑benchmark三大阶段.10月28日,易观OLAP算法大赛优胜名单出炉! 40+技术门派比武 易观 ...

  10. (转)RabbitMQ学习之集群部署

    http://blog.csdn.net/zhu_tianwei/article/details/40931971 我们先搭建一个普通集群模式,在这个模式基础上再配置镜像模式实现高可用,Rabbit集 ...