fastdfs github地址: https://github.com/happyfish100/

1.FastDFS上传原理
 - storage定时向tracker上传状态信息
 - client上传连接请求到tracker
 - tracker查询可用的storage,并返回storage的ip和端口
 - 上传文件fIlecontent和meta data
 - 生成file_id,将上传的内容写入磁盘,并返回file_id路径和文件名

安装之前先安装所需要的插件

libevent

http://libevent.org/   下载 libevent-2.0.22-stable.tar

libfastcommon

https://github.com/happyfish100/libfastcommon.git   下载libfastcommon

fastdfs

https://sourceforge.net/projects/fastdfs/files/FastDFS%20Server%20Source%20Code/FastDFS%20Server%20with%20PHP%20Extension%20Source%20Code%20V5.08/   下载 fastdfs

一.安装libevent

  解压;tar  -zxvf  libevent-2.0.22-stable.tar.gz

进入目录;
  ./configure --prefix=/usr         配置目录
  make 
  make install
  验证   ls -al /usr/lib |grep libevent

二.安装libfastcommon

unzip libfastcommon-master.zip
  cd  libfastcommon-master 
  ./make.sh
  ./make.sh install

三.安装fastdfs
  解压 tar  -zxvf  FastDFS.tar.gz
  cd FastDFS
  ./make.sh
  ./make.sh install

四.配置 tracker.conf
  cd /etc/fdfs/
  cp tracker.conf.sample tracker.conf
  vi tracker.conf
  base_path=/data/fastdfs/tracker #设置 tracker 的数据文件和日志目录(需预先创建) mkdir -p      /home/fastdfs/tracker 
  store_group=group1   #修改组名

五. 配置 storage.conf
  cp storage.conf.sample storage.conf
  vi storage.conf
  group_name=group1                                          #组名,根据实际情况修改
  base_path=/home/fastdfs/storage          #设置 storage 的日志目录(需预先创建)mkdir -p  /home/fastdfs/storage 
  store_path_count=1                       #存储路径个数,需要和 store_path 个数匹配
  store_path0=/home/fastdfs/storage/datas          #存储路径(需预先创建)mkdir -p  /home/fastdfs/storage/datas
  tracker_server=10.10.10.81:22122                     #tracker 服务器的 IP 地址和端口号
六.配置 client.conf 
  cp client.conf.sample client.conf
  vi client.conf
  base_path=/data/fastdfs/fdfs_client        # 日志路径
  tracker_server=172.16.1.40:22122         # 追踪服务器的IP,有多个服务器可以另一行

启动

启动 fdfs_trackerd /etc/fdfs/tracker.conf
启动 fdfs_storaged /etc/fdfs/storage.conf

重启
[root@fedora15 user]#/usr/local/bin/restart.sh /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
[root@fedora15 user]#/usr/local/bin/restart.sh/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf

停止
直接kill即可让server进程正常退出,可以使用killall命令,例如: 
killall fdfs_trackerd 
killall fdfs_storaged

测试上传
fdfs_upload_file /etc/fdfs/client.conf /etc/a.jpg

七:安装fastdfs-nginx-module(安装之前已经安装好nginx。地址:nginx源码安装

下载 fastdfs-nginx-module_v1.16.tar.gz

地址:https://sourceforge.net/projects/fastdfs/files/FastDFS%20Nginx%20Module%20Source%20Code/

解压   tar -zxvf  fastdfs-nginx-module_v1.16.tar.gz  
   1. 修改文件 xx/fastdfs-nginx-module_v1.16/src/config, 去除CORE_INCS 中的local , 因为fastdfs 和  fastcommon 在/usr/include
   2.  进入nginx 源码目录:cd  /home/mirror/software/java/nginx/nginx-1.11.2
   3. 执行命令:./configure --add-module=/home/mirror/software/java/nginx/fastdfs-nginx-module/src
   4. 执行命令:  make
   5. 执行命令:  make install
八. fastdfs里nginx配置文件
   cd /usr/local/src/fastdfs-nginx-module/src
   cp mod_fastdfs.conf /etc/fdfs
   cd /usr/local/src/FastDFS/conf/
   cp anti-steal.jpg http.conf mime.types /etc/fdfs

九. 配置mod_fastdfs.conf,配置文件加入
  cd /etc/fdfs/
  vim mod_fastdfs.conf
  base_path=/home/fastdfs/storage      #保存日志目录
  tracker_server=10.10.10.80:22122     #tracker 服务器的 IP 地址以及端口号
  storage_server_port=23000            #storage服务器的端口号
  group_name=group1                    #当前服务器的group名
  url_have_group_name = true           #文件url中是否有group 名
  store_path_count=1                   #存储路径个数,需要和store_path 个数匹配
  store_path0=/data/fastdfs/storage    #存储路径
  group_count = 1                      #设置组的个数
  #然后在末尾添加分组信息,目前只有一个分组,就只写一个
  [group1]
  group_name=G1
  storage_server_port=23000
  store_path_count=1
  store_path0=/data/fastdfs/storage

十.nginx配置文件加入

location ~ /group[1-3]/M00 {
                root /data2/;
                ngx_fastdfs_module;
      }

启动nginx  /usr/local/nginx/sbin/nginx

参考资料 :
      http://fredlong.iteye.com/blog/2288039    
      https://www.cnblogs.com/sunmmi/p/5798803.html
      http://www.cnblogs.com/sunmmi/articles/5799692.html

ubuntu16.04安装FastDFS-5.08的更多相关文章

  1. ubuntu16.04安装klee

    ubuntu16.04安装klee(基于llvm 3.8)教程 前言 查阅了很多资料,踩了不少的坑,总的来说,这个应该是比较完善的基于llvm3.8和ubuntu16.04的安装教程,至少我自己按照这 ...

  2. ubuntu16.04安装jdk,tomcat

    ubuntu16.04安装jdk,tomcat 最近装了一下tomcat,网上的教程很多,我也试了很多次,但是有一些教程关于tomcat配置是错误的,让我走上了歧途.差点重装系统,还好王总及时出手帮助 ...

  3. Ubuntu16.04 安装openjdk-7-jdk

    Ubuntu16.04 安装openjdk-7-jdk sudo apt-get install openjdk-7-jre 或者sudo apt-get install openjdk-7-jdk ...

  4. Ubuntu16.04安装GTK3主题:OSX-Arc

    Ubuntu16.04安装GTK3主题:OSX-Arc GTK3主题:OSX-Arc描述: 前几个月,Gnome3.20升3.22的时候,出现了大量主题崩溃的现象,其中包括Arc.Flatabulou ...

  5. Ubuntu16.04安装opencv for python/c++

    Ubuntu16.04安装opencv for python/c++ 网上关于opencv的安装已经有了不少资料,但是没有一篇资料能让我一次性安装成功,因此花费了大量时间去解决各种意外,希望这篇能给一 ...

  6. ubuntu16.04安装不上有道词典的解决办法

    转自:http://www.linuxdiyf.com/linux/21143.html ubuntu16.04安装不上有道词典,提示: le@hu-pc:~/下载$ sudo dpkg -i you ...

  7. Ubuntu16.04安装mongodb

    Ubuntu16.04安装mongodb copy from: http://blog.csdn.net/zhushh/article/details/52451441 1.导入软件源的公钥 sudo ...

  8. 【Tools】ubuntu16.04安装搜狗输入法

    Ubuntu16,04 安装搜狗输入法 1.下载搜狗输入法的安装包 下载地址为:http://pinyin.sogou.com/linux/ 2.按键Ctr+Alt+T打开终端,输入以下命令切换到下载 ...

  9. Ubuntu16.04安装cuda9.0+cudnn7.0

    Ubuntu16.04安装cuda9.0+cudnn7.0 这篇记录拖了好久,估计是去年6月份就已经安装过几遍,然后一方面因为俺比较懒,一方面后面没有经常在自己电脑上跑算法,比较少装cuda和cudn ...

  10. Ubuntu16.04安装TensorFlow及Mnist训练

    版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com TensorFlow是Google开发的开源的深度学习框架,也是当前使用最广泛的深度学习框架. 一.安 ...

随机推荐

  1. 中阶d03.2 JDBC联合properties使用,通过读取本地配置文件为代码传递参数

    * 使用properties读取本地配置文件为代码传递参数 * url.用户名.密码.驱动地址等配置可以在配置文件中使用 main package zj_1_JDBC.properties; impo ...

  2. Vue-router 第5节 vue-router利用url传递参数

    Vue-router 第5节 vue-router利用url传递参数 目录 Vue-router 第5节 vue-router利用url传递参数 第5节 vue-router利用url传递参数 冒号的 ...

  3. springboot httpsession.getAtt....is null

    1.开始怀疑是 @RequestMapping("") public String loginIndex() { return "admin/login"; } ...

  4. Java 理论与实践: 流行的原子

    Java 理论与实践: 流行的原子 新原子类是 java.util.concurrent 的隐藏精华 在 JDK 5.0 之前,如果不使用本机代码,就不能用 Java 语言编写无等待.无锁定的算法.在 ...

  5. CentOS 配置OOM监控报警

    由于程序设计不合理或者瞬间高并发访问时,很有可能会触发OOM(Out of memory),这里指的是操作系统级别的OOM.具体什么是OOM,以及怎样发生这里不在赘述,因为笔者认为这是IT从业工作者的 ...

  6. Android电池信息获取

    Android 可以通过BroadcastReceiver来获取电池信息改变的广播(ACTION_BATTERY_CHANGED),从而获取到相关的电池信息. 电池信息,及其对应的相关常数(参考网址: ...

  7. stand up meeting for beta release plan 12/16/2015

    今天我们开会讨论一下beta版需要的feature,其中待定的feature是可选做的,如果有时间.其他都是必须实现的. 因为做插件的计划失败了,所以我们现在是pdf阅读器和取词查词加入生词本这两部分 ...

  8. 详解 Set接口

    (请关注 本人"集合"总集篇博文--<详解 Collection接口>) 在Collection接口的子接口中,最重要的,也是最常见的两个-- List接口 和 Set ...

  9. 详解 I/O流

    I/O流是用于处理设备之前信息传输的流,在我们今后的学习甚至是工作中,都是十分重要的. 在我们的日常生活中,也是很常见的,譬如:文件内容的合并.设备之键的文件传输,甚至是下载软件时的断点续传,都可以用 ...

  10. Laravel 5.7 RCE (CVE-2019-9081)

    Laravel 代码审计 环境搭建 Laravel 5.7 文档 : https://learnku.com/docs/laravel/5.7/installation/2242 Composer 下 ...