设为首页 收藏本站
查看: 1364|回复: 0

[经验分享] FastDFS分布式文件系统研究

[复制链接]

尚未签到

发表于 2015-9-10 09:59:27 | 显示全部楼层 |阅读模式
  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实战


DSC0000.gif DSC0001.gif


1 <?php
2 $ret = fastdfs_storage_upload_by_filename('url.txt');
3 $ret1 = fastdfs_storage_upload_by_filename1('url.txt');
4 $file_info = fastdfs_get_file_info($ret['group_name'],$ret['filename']);
5 $file_info1 = fastdfs_get_file_info1($ret1);
6 header("Content-Disposition: attachment; filename= 重命名文件名.txt");
7 header("Content-Type: application/octet-stream");
8 header("X-Accel-Redirect: $file_info1"); //fdfs文件路径
9 header("X-Accel-Buffering: yes");
10 header("X-Accel-Limit-Rate :102400"); //速度限制 Byte/s
11 //header("Accept-Ranges: none");//单线程 限制多线程
12 var_dump($ret,$ret1,$file_info,$file_info1);
View Code   把原始文件名存入数据库,然后存入该文件的下载地址,也就是file_id,这个是唯一的,上面的代码就可以实现下载重命名,改为你想要的中文名
  然后其它的使用函数可以看源码下面的php-client/README
  
  CentOS平台比较简单,基本上都可以直接编译通过,nginx明白原理配置也一样。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-111817-1-1.html 上篇帖子: FastDFS安装 下篇帖子: 一个轻量级的分布式文件存储FastDFS
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表