FastDFS分布式文件系统研究
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分布式文件系统研究的更多相关文章
- 一文搞定FastDFS分布式文件系统配置与部署
Ubuntu下FastDFS分布式文件系统配置与部署 白宁超 2017年4月15日09:11:52 摘要: FastDFS是一个开源的轻量级分布式文件系统,功能包括:文件存储.文件同步.文件访问(文件 ...
- Linux FastDFS 分布式文件系统安装
Linux FastDFS 分布式文件系统安装 2013 年 3 月 11 日 – 09:21 | 930 views | 收藏 (No Ratings Yet) FastDFS是一款类Google ...
- 第2-1-1章 FastDFS分布式文件服务背景及系统架构介绍
目录 1 背景 1.1 为什么需要分布式文件服务 1.1.1 单机时代 1.1.2 独立文件服务器 1.1.3 分布式文件系统 1.2 什么是FastDFS 2 系统架构 2.1 Tracker集群 ...
- FastDFS分布式文件系统设计原理
转载自http://blog.chinaunix.net/uid-20196318-id-4058561.html FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker ser ...
- 1Nginx+fastdfs分布式文件存储
准备,将所需的软件传到服务器上,服务器的列表如下: fastdfs-nginx-module_v1.15.tar.gz FastDFS_v4.06.tar.gz libevent-2.0.21- ...
- FastDFS 分布式文件存储目录
1.fastdfs安装和配置 https://blog.csdn.net/hy245120020/article/details/78658081 2.使用nginx代理fastdfs以及图片裁剪(f ...
- FastDFS分布式文件系统安装与使用(单节点)
http://blog.csdn.net/xyang81/article/details/52837974 http://download.csdn.net/detail/xyang81/966749 ...
- 阶段5 3.微服务项目【学成在线】_day08 课程图片管理 分布式文件系统_06-分布式文件系统研究-fastDFS安装及配置文件说明
3 fastDFS入门 3.1fastDFS安装与配置 3.1.1 导入虚拟机 对fastDFS的安装过程不要求学生掌握,可以直接导入老师提供虚拟机. 1.使用Vmware打开虚拟机配置文件“Cent ...
- django中使用FastDFS分布式文件系统接口代码实现文件上传、下载、更新、删除
运维使用docker部署好之后FastDFS分布式文件系统之后,提供给我接口如下: fastdfs tracker 192.168.1.216 192.168.1.217 storage 192.16 ...
随机推荐
- zgb老师关于java集合的总结
数组:存多个数据 操作不便集合(Collection ):存多个数据 管理多个数据 提供更为方便的操作Iterator:专门针对集合 进行迭代List:有序的 允许重复的元素ArrayList:底层数 ...
- Solr.NET快速入门(四)【相似查询,拼写检查】
相似查询 此功能会返回原始查询结果中返回的每个文档的类似文档列表. 参数通过QueryOptions的MoreLikeThis属性定义. 示例:搜索"apache",为结果中的每个 ...
- href 与 src
href:常用有两个标签<a>和<link> 1.<a href="http://www.w3school.com.cn">W3School&l ...
- 大白话理解this
日常开发中,我们经常用到this.一开始常会用一种感觉去判断this的指向,当遇到复杂的函数调用时,就分不清this的指向. 今天我们来由浅入深来学习下. function family1(){ va ...
- sql server restore DB issue
error occurs when restoring the backup file of sql server(DB.bak) to run the above t-sql will shoot ...
- UWP 协议启动
1.创建通过协议启动的项目 AppDemo 2.在项目的Package.appxmanifest 文件里 Extensions 目录下 <Extensions> <uap:Exten ...
- 图片放大不失真软件PhotoZoom的工具栏
PhotoZoom是一款极其简单的图片无损放大工具,简单几即可渲染出完美的放大照片,呈现无与伦比的画质效果.虽然简单,菜单和面板的功能很少,但却是设计师的必备神器,因为其简单易用性,它的软件菜单命令和 ...
- FastFDS常用命令
1.启停fastdfs相关服务 #start fastdfs 启动服务 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart /usr/loca ...
- 安装`lrzsz`包及其报错解决办法
rz命令的安装包名是lrzsz. 安装lrzsz包时报错Failed to mount cd:///?devices=/dev/sr1,/dev/sr0 on /var/adm/mount/AP_0x ...
- HDU 4704 Sum( 费马小定理 + 快速幂 )
链接:传送门 题意:求 N 的拆分数 思路: 吐嘈:求一个数 N 的拆分方案数,但是这个拆分方案十分 cd ,例如:4 = 4 , 4 = 1 + 3 , 4 = 3 + 1 , 4 = 2 + 2 ...