由于fastdfs最新版的稳定性没有验证,这里就搭建了一下6.03的版本。
一、环境准备,登录github。https://github.com/happyfish100
1、下载fastdfs、libfastcommon、fastdfs-nginx-module内容
fastdfs下载6.03版本、libfastcommon下载1.0.41、module下载1.22。在github的tags中进行tar的下载。
2、将三个包放在指定目录下,并解压
二、编译安装
1、首先安装基础环境
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
2、安装libfastcommon
tar -zxvf libfastcommon-1.0.41.tar.gz
cd libfastcommon-1.0.41
./make.sh && ./make.sh install
3、验证libfastcommon是否安装成功(出现红色部分代表安装成功)
cd /usr/lib
ls | grep libfastcommon.so
cd /usr/lib64
ls | grep libfastcommon.so
4、安装fastdfs
tar -zxvf fastdfs-6.03.tar.gz
cd fastdfs-6.03/
./make.sh && ./make.sh install
5、验证fastdfs
cd /usr/lib
ls | grep fdfs
如果一切都顺利的化剩下的就是配置一下配置文件就可以启动服务了。如果安装时报xx.c的参数的异常这种基本就是版本问题。这是需要重新下载正确版本安装,删除/usr/lib、/usr/lib64、/usr/bin下与fastdfs相关内容。如果严格使用以上规划的版本是不会出现这个问题的。以上也都是百度一搜一大堆的内容就不细说了。剩下的开始正式使用。
三、配置使用
安装完基本环境后,主要就围绕tracker与storage了。
1、进入/etc/fdfs中,进入默认有client、storage与tracker的样本文件,复制一份去掉sample(是我们真正的配置文件)
2、针对tracker(定位追踪)的配置文件主要更改以下即可,其他基本可以默认。
bind_addr:绑定的ip,可以指定当前设备的某个网卡的ip。参考配置bind_addr=10.0.30.50
base_path:tracker的基本目录。参考配置base_path=/fastdfs
http.server_port:服务的端口。默认是8080基本会冲突需要修改下。参考配置http.server_port=8111
3、针对storage(存储)的配置文件主要更改如下,其他也可以基本默认
bind_addr:绑定的ip,可以指定当前设备的某个网卡的ip。参考配置bind_addr=10.0.30.50
base_path:主要存放storage的数据和日志的目录。参考配置base_path=/fastdfs/storage
store_path0:存储路径,如果不配置默认使用上面的base_path。参考配置store_path0=/fastdfs/storage
tracker_server:追踪服务的信息,默认端口就是22122。参考配置tracker_server=10.0.30.50:22122
4、启动服务
上述配置都是基本配置,暂时只追求跑起来,如果需要更深入的配置请查看相关api。
1、创建上述配置文件涉及到的目录。/fastdfs、/fastdfs/storage等
2、启动脚本在/etc/init.d中
/etc/init.d/fdfs_trackerd start #启动
/etc/init.d/fdfs_trackerd stop #停止
/etc/init.d/fdfs_trackerd status #状态查询
/etc/init.d/fdfs_storaged start
/etc/init.d/fdfs_storaged stop
/etc/init.d/fdfs_storaged status
3、查询相关服务(俩服务正常启动)
ps -ef | grep fdfs
4、如果服务启动异常,可以查看相关日志处理。按照上述配置tracker的log在/fastdfs/logs中,storage的log在/fastdfs/storage/logs中,查看错误日志并处理。基本都是端口冲突或者文件不存在,按提示处理。
四、client实现文件上传
1、修改client.cnf,可以简单修改如下配置即可。
base_path:默认的存储路径。参考配置base_path=/fastdfs/storage
tracker_server:追踪服务器配置。参考配置tracker_server=10.0.30.50:22122
2、使用client upload实现文件上传,如下(看到红框内容代表上传成功,也可进如storage中data进行查看)
五、通过http访问该文件,需要搭配nginx使用。
安装nginx,自行安装吧。推荐版本1.10.1
1、解压fastdfs-nginx-module。copy文件到/etc/fdfs中,之后更改config
cd /usr/local/fastdfs/fastdfs-nginx-module-1.22/src
将config中如下俩内容更改为
ngx_module_incs="/usr/include"
CORE_INCS="$CORE_INCS /usr/include"
2、需要安装fastdfs-nginx-module。在ngixn编译之前指定 ./configure --add-module=/usr/local/fastdfs/fastdfs-nginx-module-1.22/src
cd /usr/local/nginx/nginx-1.10.1
./configure --add-module=/usr/local/fastdfs/fastdfs-nginx-module-1.22/src
make
make install
3、copy mod_fastdfs.conf文件到/etc/fdfs,并修改mod_fastdfs.conf
cp /usr/local/fastdfs/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf /etc/fdfs/
基本只改如下三个配置即可:
tracker_server:追踪服务地址。参考配置tracker_server=10.0.30.50:22122
url_have_group_name = true 开启组名称
store_path0=/fastdfs/storage 指定存储路径
4、还需要copy两个配置文件,http.conf、 mime.types。(不然ngixn启动缺少文件)
cd /usr/local/fastdfs/fastdfs-6.03/conf
cp http.conf /etc/fdfs/
cp mime.types /etc/fdfs/
5、增加ngixn配置项,重启nginx
server{
listen 8889;
server_name 10.0.30.50;
location /group1/M00 {
root /fastdfs/storage/;
ngx_fastdfs_module;
}
}
六、验证
到这基本就都可以使用了,不过现在用fastdfs的人基本很少了,安装一遍记录下吧。