http://blog.csdn.net/xingjiarong/article/details/50559761

在前面的一篇中,我们分析了FastDFS的架构,知道了FastDFS是由客户端,跟踪服务器和存储服务器三部分组成,下面我们就来看一下如何动手搭建一个FastDFS的环境出来。这是FastDFS的主页:https://code.google.com/p/fastdfs/,上边有FastDFS的简单介绍和一些常用的下载。但是本人觉得,官网上的搭建过程过于简单,并且没有对一个异常提出解决方案,对于一个新手来说是很难搭建出一个满意的环境的,毕竟对FastDFS有较高的造诣的人也不会纠结怎么搭建环境,所以这里我总结了一下我的搭建过程和其中遇到的一些问题,希望对大家有所帮助,如果有什么问题还请大家积极指出。

一、环境声明

我觉得对于搭建环境的博客来说首先要做的就是声明博文中使用的环境是什么,好让看博客的人形成对照,好多的博主不说明自己的环境,一上来就开始执行命令,很多人跟着博主进行搭建,搭建了一大半了才发现自己和博主的环境根本就不一样,即浪费了时间又影响了心情。在这里我说明一下我的环境。我使用的是Ubuntu14.04 LTS 64位 作为搭建的主机,搭建单节点的FastDFS环境,注意是单节点的。我们先从最简单的入手,后边我会再写一篇如何搭建多节点的环境。为了方便恢复系统,我使用了VirtualBox虚拟了Ubuntu14.04 LTS,当然如果您想在物理机上搭建当然也可以。以下博客中出现的所有命令都在root权限下执行。

二、环境准备-安装libevent

FastDFS内部绑定了libevent作为http服务器,在V2.X版本以上必须安装libevent,本文安装的是V4.06版本,因此必须安装libevent。

如果已经安装了libevent,请确认安装路径是/usr , 因为FastDFS在编译源程序时,需要到此目录下查找一些依赖文件,否则编译FastDFS会出错。如果不是,建议首先卸载libevent,然后安装到 /usr 下。本文安装的是libevent-2.0.19-stable.tar.gz,下载地址:https://acelnmp.googlecode.com/files/libevent-2.0.19-stable.tar.gz,按照如下的步骤进行安装。

wget https://acelnmp.googlecode.com/files/libevent-2.0.19-stable.tar.gz
tar zxvf libevent-2.0.19-stable.tar.gz
./configure --prefix=/usr
make clean
make
make install

这样libevent就安装按成了。

三、安装FastDFS

1、首先下载FastDFS

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

2、解压缩

tar vxzf FastDFS_v4.06.tar.gz %FastDFS% 

注:这里的%FastDFS% 是解压目录,每个人根据自己的实际情况进行替换即可。

3、修改make.sh文件

首先执行如下命令查看一下自己的libpthread.a位于什么地方

find / -name 'libpthread.a'

结果为:/usr/lib/x86_64-linux-gnu/libpthread.a

同样的方法查看自己的libpthread.so文件为什么什么地方

find / -name 'libpthread.so'

结果为:/usr/lib/x86_64-linux-gnu/libpthread.so

找到make.sh中关于libpthread.a和libpthread.so的地方,在其中加入自己刚刚找到的文件位置。

原文件

if [ -f /usr/lib/libpthread.so ] || [ -f /usr/local/lib/libpthread.so ] ||
[ -f /lib64/libpthread.so ] || [ -f /usr/lib64/libpthread.so ] ||
[ -f /usr/lib/libpthread.a ] || [ -f /usr/local/lib/libpthread.a ] ||
[ -f /lib64/libpthread.a ] || [ -f /usr/lib64/libpthread.a ]; then
LIBS="$LIBS -lpthread"

修改后的文件

if [ -f /usr/lib/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.so ]|| [ -f /usr/lib/libpthread.a ] ||
[ -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
LIBS="$LIBS -lpthread"

这一步的目的是因为不同的机器pthread的类库的位置是不同的,如果不进行设置的话,在编译的时候就会出现找不到pthread等错误。

注意:有人的博客中写到为了支持http,要设置WITH_HTTPD=1等等,在我安装的v4.06中,FastDFS不再集成http的功能,如果想要通过http下载文件的话,需要配置单独的fastdfs-apache-module,后边的博客中我会单独说明如何配置。

4、修改client/fdfs_link_library.sh.in

找到以下的位置

将lib64改为lib,否则会出现文件不存在的错误。修改为如下所示:

5、开始安装

在FastDFS根目录下执行如下的命令进行安装,如果没有报错就说明安装成功了

./make.sh
./make.sh install

(转)分布式文件存储FastDFS(二)FastDFS安装的更多相关文章

  1. 分布式文件存储:FastDFS简单使用与原理分析

    引言 FastDFS 属于分布式存储范畴,分布式文件系统 FastDFS 非常适合中小型项目,在我接手维护公司图片服务的时候开始接触到它,本篇文章目的是总结一下 FastDFS 的知识点. 用了 2 ...

  2. .Net平台下,分布式文件存储的实现

    遇到的问题 对于Web程序,使用一台服务器的时候,客户端上传的文件一般也都是存储在这台服务器上.但在集群环境中就行不通了,如果每个服务器都存储自己接受到的文件,就乱套了,数据库中明明有这个附件的记录, ...

  3. 【网络爬虫入门05】分布式文件存储数据库MongoDB的基本操作与爬虫应用

    [网络爬虫入门05]分布式文件存储数据库MongoDB的基本操作与爬虫应用 广东职业技术学院  欧浩源 1.引言 网络爬虫往往需要将大量的数据存储到数据库中,常用的有MySQL.MongoDB和Red ...

  4. 分布式文件存储数据库 MongoDB

    MongoDB 简介 Mongo 并非芒果(Mango)的意思,而是源于 Humongous(巨大的:庞大的)一词. MongoDB 是一个基于分布式文件存储的 NoSQL 数据库.由 C++ 语言编 ...

  5. 修改Jupyter Notebook默认文件存储路径(已安装Anaconda)

    https://blog.csdn.net/weixin_44799144/article/details/91823079 修改Jupyter Notebook默认文件存储路径首先,安装好Anaco ...

  6. 分布式文件存储FastDFS(七)FastDFS配置文件具体解释

    配置FastDFS时.改动配置文件是非常重要的一个步骤,理解配置文件里每一项的意义更加重要,所以我參考了大神的帖子,整理了配置文件的解释.原帖例如以下:http://bbs.chinaunix.net ...

  7. (转) 分布式文件存储FastDFS(七)FastDFS配置文件详解

    http://blog.csdn.net/xingjiarong/article/details/50752586 配置FastDFS时,修改配置文件是很重要的一个步骤,理解配置文件中每一项的意义更加 ...

  8. (转) 分布式文件存储FastDFS(一)初识FastDFS

    http://blog.csdn.net/xingjiarong/article/details/50559849 一.FastDFS简介 FastDFS是一款开源的.分布式文件系统(Distribu ...

  9. 分布式文件存储FastDFS(一)初识FastDFS

    一.FastDFS简单介绍 FastDFS是一款开源的.分布式文件系统(Distributed File System),由淘宝开发平台部资深架构师余庆开发.作为一个分布式文件系统,它对文件进行管理. ...

随机推荐

  1. HDFS2.0之简单总结

    新特性 NameNode支持HA 命名空间支持分区(Federation) 支持ViewFS 支持目录快照 支持权限ACL 支持缓存指定的文件 QJM实现名字节点HA (图片来源互联网) 命名空间分区 ...

  2. Cisco IOU Web Interface : Web IOU

    https://github.com/dainok http://sns.clnchina.com.cn/space.php?uid=404779&do=blog&id=4298 ht ...

  3. CHAPTER 1 Architectural Overview of Oracle Database 11g

    Which SGA structures are required, and which are optional? The database buffer cache, log buffer, an ...

  4. XA transaction ,JTA , two phase commit , GTX0-j

    本文主要是对以前一直迷惑的几个名字的学习. xa transaction 简单查了一下,大概就是 distributed  transaction. 相比传统的transaction而言,传统的tra ...

  5. nginx: 添加文件下载目录

    修改nginx.conf,添加如下行: location /file/ {    alias /usr/share/nginx/html/file/;    add_header Content-di ...

  6. PHP array_merge()

    定义和用法 array_merge() 函数把两个或多个数组合并为一个数组. 如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的).如果数组是数字索引的,则键名会以连续方式重新索引. ...

  7. Rsync命令的使用

    Rsync的命令格式能够为下面六种: rsync [OPTION]- SRC DEST rsync [OPTION]- SRC [USER@]HOST:DEST rsync [OPTION]- [US ...

  8. 【UML 建模】在线UML建模工具 ProcessOn 使用具体解释

    总结 : -- 推荐理由 : 近期从 Windows 操作系统 转到 MAC 上, 正在看设计模式 和 重构, 找不到好用的 UML 工具, 因此在网上找了一款能够在线使用的 UML 工具, 用起来发 ...

  9. SoapUI报ClientProtocolException错误

    在SoapUI中出现了这个错误 org.apache.http.client.ClientProtocolException 检查后发现是SoapUI安装目录下lib中多了httpclient-*** ...

  10. 修改select默认样式

    http://www.qkzone.com/code/2015-11-26/1.html