#!/bin/bash
# https://sourceforge.net/projects/fastdfs/files/
# 》 FastDFS Server Source Code 》FastDFS_v5.08.tar.gz
#
本教程下载:FastDFS_v5.05.tar.gz
#set env 即安装依赖软件
#libfastcommon是FastDFS官方提供,https://github.com/happyfish100/libfastcommon
#libfastcommon包含了FastDFS运行所需要的一些基础库。
#mkdir /home/FastDFSPackage && cd /home/FastDFSPackage
#Xftp上传①FastDFS_v5.05.tar.gz,②libfastcommonV1.0.7.tar.gz,
#③fastdfs-nginx-module_v1.16.tar.gz,④nginx-1.10.3.tar.gz至/home/FastDFSPackage
yum -y install zlib pcre pcre-devel zlib-devel
yum -y install gcc gcc-c++ libstdc++-devel wget make
yum -y groupinstall 'Development Tools'
yum install -y unzip zip
yum install -y libevent
tar -zxvf libfastcommonV1.0.7.tar.gz
cd libfastcommon-1.0.7
./make.sh
./make.sh install
#注意:libfastcommon安装好后会自动将库文件拷贝至/usr/lib64下,由于FastDFS程序引用/usr/lib目录所以需要将/usr/lib64下的库文件拷贝或者引用,至/usr/lib下。
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
#tracker编译安装
tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local
cd /usr/local/FastDFS
./make.sh
./make.sh install
[root@localhost FastDFS]# ./make.sh install
mkdir -p /usr/bin
mkdir -p /etc/fdfs
cp -f fdfs_trackerd /usr/bin
if [ ! -f /etc/fdfs/tracker.conf.sample ]; then cp -f ../conf/tracker.conf /etc/fdfs/tracker.conf.sample; fi
mkdir -p /usr/bin
mkdir -p /etc/fdfs
cp -f fdfs_storaged /usr/bin
if [ ! -f /etc/fdfs/storage.conf.sample ]; then cp -f ../conf/storage.conf /etc/fdfs/storage.conf.sample; fi
mkdir -p /usr/bin
mkdir -p /etc/fdfs
mkdir -p /usr/lib64
cp -f fdfs_monitor fdfs_test fdfs_test1 fdfs_crc32 fdfs_upload_file fdfs_download_file fdfs_delete_file fdfs_file_info fdfs_appender_test fdfs_appender_test1 fdfs_append_file fdfs_upload_appender /usr/bin
if [ 0 -eq 1 ]; then cp -f libfdfsclient.a /usr/lib64; fi
if [ 1 -eq 1 ]; then cp -f libfdfsclient.so /usr/lib64; fi
mkdir -p /usr/include/fastdfs
cp -f ../common/fdfs_define.h ../common/fdfs_global.h ../common/mime_file_parser.h ../common/fdfs_http_shared.h ../tracker/tracker_types.h ../tracker/tracker_proto.h ../tracker/fdfs_shared_func.h ../storage/trunk_mgr/trunk_shared.h tracker_client.h storage_client.h storage_client1.h client_func.h client_global.h fdfs_client.h /usr/include/fastdfs
if [ ! -f /etc/fdfs/client.conf.sample ]; then cp -f ../conf/client.conf /etc/fdfs/client.conf.sample; fi
采用默认安装方式脚本文件说明:服务脚本在:cd /etc/init.d/ && ls |grep fdfs
/etc/init.d/fdfs_storaged
/etc/init.d/fdfs_trackerd
配置文件在:
/etc/fdfs/client.conf.sample
/etc/fdfs/storage.conf.sample
/etc/fdfs/tracker.conf.sample
命令行工具在/usr/bin/目录: cd /usr/bin/ && ls |grep fdfs
fdfs_appender_test
fdfs_appender_test1
fdfs_append_file
fdfs_crc32
fdfs_delete_file
fdfs_download_file
fdfs_file_info
fdfs_monitor
fdfs_storaged
fdfs_test
fdfs_test1
fdfs_trackerd
fdfs_upload_appender
fdfs_upload_file
FastDFS服务脚本设置的bin目录为/usr/local/bin/下,
但是实际我们安装在了/usr/bin/下面。
所以我们需要修改FastDFS配置文件中的路径,也就是需要修改俩个配置文件:
命令:vim /etc/init.d/fdfs_storaged
进行全局替换命令:%s+/usr/local/bin+/usr/bin
命令:vim /etc/init.d/fdfs_trackerd
进行全局替换命令:%s+/usr/local/bin+/usr/bin
#安装成功将安装目录下的conf下的文件拷贝到/etc/fdfs/下。
[root@localhost FastDFS]# ll /usr/local/FastDFS/conf/
总用量 84
-rw-r--r--. 1 8980 users 23981 12月 2 2014 anti-steal.jpg
-rw-r--r--. 1 8980 users 1461 12月 2 2014 client.conf
-rw-r--r--. 1 8980 users 858 12月 2 2014 http.conf
-rw-r--r--. 1 8980 users 31172 12月 2 2014 mime.types
-rw-r--r--. 1 8980 users 7829 12月 2 2014 storage.conf
-rw-r--r--. 1 8980 users 105 12月 2 2014 storage_ids.conf
-rw-r--r--. 1 8980 users 7102 12月 2 2014 tracker.conf
[root@localhost fdfs]# ll /etc/fdfs
总用量 20
-rw-r--r--. 1 root root 1461 4月 18 19:05 client.conf.sample
-rw-r--r--. 1 root root 7829 4月 18 19:05 storage.conf.sample
-rw-r--r--. 1 root root 7102 4月 18 19:05 tracker.conf.sample
cp /usr/local/FastDFS/conf/* /etc/fdfs/
[root@localhost FastDFS]# ll /etc/fdfs/
总用量 84
-rw-r--r--. 1 8980 users 23981 12月 2 2014 anti-steal.jpg
-rw-r--r--. 1 8980 users 1461 12月 2 2014 client.conf
-rw-r--r--. 1 8980 users 858 12月 2 2014 http.conf
-rw-r--r--. 1 8980 users 31172 12月 2 2014 mime.types
-rw-r--r--. 1 8980 users 7829 12月 2 2014 storage.conf
-rw-r--r--. 1 8980 users 105 12月 2 2014 storage_ids.conf
-rw-r--r--. 1 8980 users 7102 12月 2 2014 tracker.conf
[root@localhost fdfs]# ll /etc/fdfs/
总用量 104
-rw-r--r--. 1 root root 23981 4月 18 19:19 anti-steal.jpg
-rw-r--r--. 1 root root 1461 4月 18 19:19 client.conf
-rw-r--r--. 1 root root 1461 4月 18 19:05 client.conf.sample
-rw-r--r--. 1 root root 858 4月 18 19:19 http.conf
-rw-r--r--. 1 root root 31172 4月 18 19:19 mime.types
-rw-r--r--. 1 root root 7829 4月 18 19:19 storage.conf
-rw-r--r--. 1 root root 7829 4月 18 19:05 storage.conf.sample
-rw-r--r--. 1 root root 105 4月 18 19:19 storage_ids.conf
-rw-r--r--. 1 root root 7102 4月 18 19:19 tracker.conf
-rw-r--r--. 1 root root 7102 4月 18 19:05 tracker.conf.sample
#tracker配置
mkdir -p /fastdfs/tracker
#创建目录
vim /etc/fdfs/tracker.conf
#修改tracker.conf
base_path=/home/yuqing/FastDFS
改为:base_path=/fastdfs/tracker
对于tracker.conf配置文件参数解释可以找官方文档,地址为:
http://bbs.chinaunix.net/thread-1941456-1-1.html
firewall-cmd --permanent --zone=public --add-port=22122/tcp
firewall-cmd --reload
#tracker启动|停止|重启
ll /fastdfs/tracker/
#查看文件夹
/etc/init.d/fdfs_trackerd start|stop|restart|status
#启动|停止|重启,tracker
ps -el|grep fdfs
#查看fdfs进程
ll /fastdfs/tracker/
#查看文件夹:logs文件夹,data文件夹
vim /etc/rc.d/rc.local
#设置开机启动
/etc/init.d/fdfs_trackerd start
#storage配置
mkdir -p /fastdfs/storage
#创建目录
vim /etc/fdfs/storage.conf
#修改storage.conf
base_path=/home/yuqing/FastDFS 改为:base_path=/fastdfs/storage
store_path0=/home/yuqing/FastDFS 改为:store_path0=/fastdfs/storage
#如果有多个挂载磁盘则定义多个store_path,如下
#store_path1=.....
#store_path2=......
tracker_server=192.168.0.3:22122 #配置tracker服务器:IP
#如果有多个则配置多个tracker
#tracker_server=192.168.0.4:22122
http.server_port=8888
firewall-cmd --permanent --zone=public --add-port=23000/tcp
firewall-cmd --reload
#storage启动
ll /fastdfs/storage
#查看文件夹
/etc/init.d/fdfs_storaged start|stop|restart|status
#启动|停止|重启,tracker
ps -el|grep fdfs
#查看fdfs进程
ll /fastdfs/storage/
#查看文件夹:logs文件夹,data文件夹
vim /etc/rc.d/rc.local
#设置开机启动
/etc/init.d/fdfs_storaged start
#测试,用/usr/bin/fdfs_test测试
vim /etc/fdfs/client.conf
base_path=/fastdfs/tracker
tracker_server=192.168.0.3:22122
ls /fastdfs/storage/data/00/00
#查看文件夹,什么也没有。
#使用格式:/usr/bin/fdfs_test 客户端配置文件地址 upload 上传文件
#例如:将/home下的图片上传到FastDFS中:
①/usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/anti-steal.jpg
example file url:
http://192.168.0.3/group1/M00/00/00/wKgAA1rXMjCAPrqTAABdrZgsqUU599.jpg
http://192.168.0.3/group1/M00/00/00/wKgAA1rXMjCAPrqTAABdrZgsqUU599_big.jpg
②/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /etc/fdfs/anti-steal.jpg
ls /fastdfs/storage/data/00/00
#查看文件夹
[root@localhost data]# ls /fastdfs/storage/data/00/00
wKgAA1rXMjCAPrqTAABdrZgsqUU599_big.jpg wKgAA1rXMjCAPrqTAABdrZgsqUU599.jpg
wKgAA1rXMjCAPrqTAABdrZgsqUU599_big.jpg-m wKgAA1rXMjCAPrqTAABdrZgsqUU599.jpg-m
#访问 http://192.168.0.3/group1/M00/00/00/wKgAA1rW_kmAT7woAAAClw10KCA106_big.png
Not Found
The requested URL /group1/M00/00/00/wKgAA1rW_kmAT7woAAAClw10KCA106_big.png was not found on this server.
#由于现在还没有和nginx整合无法使用http下载。
#FastDFS与nginx整合
#在tracker上安装nginx,安装细节参考nginx文档。
#在每个tracker上安装nginx,的主要目的是做负载均衡及实现高可用。
#如果只有一台tracker服务器可以不配置nginx。
#在Storage上安装nginx
#Xftp上传fastdfs-nginx-module_v1.16.tar.gz至/home/FastDFS
cd /home/FastDFSPackage/
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/
cd /usr/local/fastdfs-nginx-module/src
vim /usr/local/fastdfs-nginx-module/src/config
修改config文件将/usr/local/路径改为/usr/,只修改第四行,第五行不用修改。
原
CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
新
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
rm -rf /usr/local/nginx/
cd /home/FastDFSPackage
tar -zxvf nginx-1.10.3.tar.gz
cd /home/FastDFSPackage/nginx-1.10.3
./configure --add-module=/usr/local/fastdfs-nginx-module/src/
make && make install
#将FastDFS-nginx-module/src下的mod_FastDFS.conf拷贝至/etc/fdfs/下
cp /usr/local/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf
#修改:如连接超时时间、跟踪器路径配置、url的group配置、
base_path=/temp
connect_timeout=10
tracker_server=192.168.0.3:22122
#tracker_server=192.168.0.4:22122(多个tracker配置多行)
url_have_group_name = true
#url中包含group名称
store_path0=/fastdfs/storage
#指定文件存储路径
cp /usr/lib64/libfdfsclient.so /usr/lib/
#将libfdfsclient.so拷贝至/usr/lib下
#创建nginx/client目录
mkdir -p /var/temp/nginx/client
#nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
修改内容为:
listen 8888;
server_name localhost;
location ~/group([0-9])/M00 {
root /fastdfs/storage/data;
ngx_fastdfs_module;
}
注意:nginx里的端口要和配置FastDFS存储中的storage.conf文件配置一致,http.server_port=8888
ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
firewall-cmd --permanent --zone=public --add-port=8888/tcp
firewall-cmd --reload
/usr/local/nginx/sbin/nginx
启动命令:
启动tracker命令:/etc/init.d/fdfs_trackerd start
查看进程命令:ps -el | grep fdfs
启动storage命令:/etc/init.d/fdfs_storaged start
查看进程命令:ps -el | grep fdfs
启动nginx命令:/usr/local/nginx/sbin/nginx
停止命令:
停止tracker命令:/etc/init.d/fdfs_trackerd stop
关闭storage命令:/etc/init.d/fdfs_storaged stop
关闭nginx命令:/usr/local/nginx/sbin/nginx -s stop
删除上传文件:
/usr/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wK
gBe1iEcGOAafHdALSFS-ifSIk.tar.gz
#参考:https://www.cnblogs.com/tc520/p/6822412.html