安装包下载:https://github.com/happyfish100
百度云下载相关包:
链接:https://pan.baidu.com/s/1TzKMXjADeDw-ooR-6H8VHw
提取码:x16s
说明:FastDFS没有Windows版本,需要部署在Linux系统下
此文档系统版本:CentOS Linux release 7.9.2009 (Core)
一、安装前检查
1、检查linux上是否安装了gcc、libevent、libevent-devel
yum list installed | grep gcc
yum list installed | grep libevent
yum list installed | grep libevent-devel
如果没有安装,则需进行安装
yum install gcc libevent libevent-devel -y
二、下载相关安装包和依赖包
安装包:
依赖包:
上传相关安装包到自定义目录: /home/mysoftware/fastdfs
三、安装libfastcommon
1、解压安装包
tar -zxvf libfastcommon-1.0.42.tar.gz
2、进入解压后的目录
cd libfastcommon-1.0.42
3、执行编译
./make.sh
4、安装
./make.sh install
可能遇到问题:
-bash: gcc: command not found
解决办法:
# 安装gcc依赖库
yum -y install gcc
四、安装FastDFS
(1)安装
1、解压安装包
tar -zxvf fastdfs-5.11.tar.gz
2、进入目录
cd fastdfs-5.11
3、执行编译
./make.sh
4、安装
./make.sh install
安装完成后会在/usr/bin目录下生成许多fastdfs相关的命令文件,以fdfs开头。
查看命令:ls -la /usr/bin/fdfs*
[root@iZ2ze11cqx7ixk06rhtp3yZ fastdfs]# ls -la /usr/bin/fdfs*
-rwxr-xr-x 1 root root 322496 Apr 26 15:58 /usr/bin/fdfs_appender_test
-rwxr-xr-x 1 root root 322272 Apr 26 15:58 /usr/bin/fdfs_appender_test1
-rwxr-xr-x 1 root root 309128 Apr 26 15:58 /usr/bin/fdfs_append_file
-rwxr-xr-x 1 root root 308864 Apr 26 15:58 /usr/bin/fdfs_crc32
-rwxr-xr-x 1 root root 309192 Apr 26 15:58 /usr/bin/fdfs_delete_file
-rwxr-xr-x 1 root root 309920 Apr 26 15:58 /usr/bin/fdfs_download_file
-rwxr-xr-x 1 root root 309512 Apr 26 15:58 /usr/bin/fdfs_file_info
-rwxr-xr-x 1 root root 327424 Apr 26 15:58 /usr/bin/fdfs_monitor
-rwxr-xr-x 1 root root 1122528 Apr 26 15:58 /usr/bin/fdfs_storaged
-rwxr-xr-x 1 root root 332400 Apr 26 15:58 /usr/bin/fdfs_test
-rwxr-xr-x 1 root root 331616 Apr 26 15:58 /usr/bin/fdfs_test1
-rwxr-xr-x 1 root root 458296 Apr 26 15:58 /usr/bin/fdfs_trackerd
-rwxr-xr-x 1 root root 310112 Apr 26 15:58 /usr/bin/fdfs_upload_appender
-rwxr-xr-x 1 root root 311136 Apr 26 15:58 /usr/bin/fdfs_upload_file
(2)配置Tracker服务
1、进入/etc/fdfs目录,有3个.sample为后缀的文件(自动生成的fdfs模板配置文件)
通过cp命令拷贝tracker.conf.sample,删除.sample后缀作为正式文件
# 进入目录
cd /etc/fdfs/
# 查看文件列表
[root@iZ2ze11cqx7ixk06rhtp3yZ fdfs]# ll
-rw-r--r-- 1 root root 1461 Apr 26 15:58 client.conf.sample
-rw-r--r-- 1 root root 3734 Apr 27 11:18 mod_fastdfs.conf
-rw-r--r-- 1 root root 7927 Apr 26 15:58 storage.conf.sample
-rw-r--r-- 1 root root 105 Apr 26 15:58 storage_ids.conf.sample
-rw-r--r-- 1 root root 7389 Apr 26 15:58 tracker.conf.sample
# 通过cp命令拷贝tracker.conf.sample,删除.sample后缀作为正式文件
cp tracker.conf.sample tracker.conf
2、编辑tracker.conf文件修改相关参数
# 执行编辑命令
vim tracker.conf
#主要修改
#tracker存储data和log的跟路径,必须提前创建好
base_path=/usr/local/src/whwfastdfs/fastdfs/tracker
#tracker默认端口22122
port=22122
#http访问端口,需要和nginx相同
http.server_port=80
# 绑定本机ip地址
bind_addr=xxx.xxx.xxx.xxx
# 文件存储的组,storage中的组配置需要和此处一致
store_group=group1
3、启动tracker(支持start|stop|restart)
# 启动
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
# 停止
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop
# 重启
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
#杀掉所有tracked进程
killall fdfs_trackerd
#杀掉所有storaged进程
killall fdfs_storaged
4、查看tracker启动日志
进入刚刚指定的base_path(/usr/local/src/whwfastdfs/fastdfs/tracker)中有个logs目录,查看tracker.log文件
[root@iZ2ze11cqx7ixk06rhtp3yZ fdfs]# ls /usr/local/src/whwfastdfs/fastdfs/tracker/
data logs
5、查看端口情况
netstat -apn | grep fdfs
可能遇到问题:
/usr/bin/fdfs_trackerd: error while loading shared libraries: libfastcommon.so: cannot open shared object file: No such file or directory
解决方案:建立软连接
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
(3)配置Storage服务
1、进入/etc/fdfs目录,用cp命令拷贝storage.conf.sample文件,删除.sample后缀作为正式文件
# 进入目录
cd /etc/fdfs/
# 通过cp命令拷贝storage.conf.sample,删除.sample后缀作为正式文件
cp storage.conf.sample storage.conf
2、编辑storage.conf文件修改相关参数
# 执行命令
vim storage.conf
# 主要修改
#storage存储data和log的跟路径,必须提前创建好
base_path=/usr/local/src/whwfastdfs/fastdfs/storage
#storge默认23000,同一个组的storage端口号必须一致
port=23000
#默认组名,根据实际情况修改
group_name=group1
#存储路径个数,需要和store_path个数匹配
store_path_count=1
#如果为空,则使用base_path
store_path0=/usr/local/src/whwfastdfs/fastdfs/storage
#配置该storage监听的tracker的ip和port
tracker_server=xxx.xxx.xxx.xxx:22122
3、启动storage(支持start|stop|restart)
# 启动
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
# 停止
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop
# 重启
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
4、查看storage启动日志:进入刚刚指定的base_path(/home/mm/fastdfs/storage)中有个logs目录,查看storage.log文件
5、此时再查看tracker日志:发现已经开始选举,并且作为唯一的一个tracker,被选举为leader
6、查看端口情况
netstat -apn|grep fdfs
7、通过monitor来查看storage是否成功绑定
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
五、安装Nginx和fastdfs-nginx-module模块
注意:fastdfs-nginx-module此处使用的是1.16版本,使用1.20版本可能会出错
(1)安装
1、解压nginx
# 进入软件存放目录
cd /home/mysoftware/fastdfs/
# 执行解压命令
tar -zxvf nginx-1.15.2.tar.gz
2、解压fastdfs-nginx-module
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
3、进入nginx目录
cd nginx-1.15.2
4、配置并加载fastdfs-nginx-module模块
# /usr/local/src/nginx/为nginx安装目录
./configure --prefix=/usr/local/src/nginx/ --add-module=/home/mysoftware/fastdfs/fastdfs-nginx-module/src/
5、编译
# 执行编译命令
make
# 如果安装出错,可执行make clean命令后进行修改配置后重新进行make编译安装
6、安装
# 执行安装命令
make install
7、查看安装路径
whereis nginx
8、启动、停止nginx
# 进入nginx安装目录
cd /usr/local/src/nginx/sbin
# 启动nginx
./nginx
# 停止nginx,此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程
./nginx -s stop
# 退出nginx,此方式停止步骤是待nginx进程处理任务完毕进行停止
./nginx -s quit
# 重新加载nginx
./nginx -s reload
9、查看nginx版本
# 进入nginx安装目录
cd /usr/local/src/nginx/sbin/
[root@iZ2ze11cqx7ixk06rhtp3yZ sbin]# ./nginx -v
nginx version: nginx/1.15.2
可能出现问题:
/usr/include/fastdfs/fdfs_define.h:15:27: fatal error: common_define.h: No such file or directory
解决方案:修改fastdfs-nginx-module-1.16/src/config文件,然后重新第7步开始
# 1.16版本修改(建议使用1.16版本的fastdfs-nginx-module)
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
# 1.20版本修改
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
(2)配置
1、将fastdfs-nginx-module/src下的mod-fastdfs.conf配置文件拷贝到/etc/fdfs文件目录下
# 切换目录
cd /home/mysoftware/fastdfs/fastdfs-nginx-module/src/
# 拷贝文件
cp mod_fastdfs.conf /etc/fdfs/
2、进入/etc/fdfs目录,修改mod_fastdfs.conf文件
base_path=/usr/local/src/whwfastdfs/fastdfs
# tracker的地址
tracker_server=xxx.xxx.xxx.xxx:22122
# 组名
group_name=group1
# url是否包含group名称
url_have_group_name=true
# 需要和storage配置的相同
storage_server_port=23000
# 存储路径个数,需要和store_path个数匹配
store_path_count=1
# 文件存储的位置
store_path0=/usr/local/src/whwfastdfs/fastdfs/storage
3、配置nginx,80端口,server增加location如图:
listen 80;
server_name localhost;
location ~/M00 {
root /usr/local/src/whwfastdfs/fastdfs/storage/data;
ngx_fastdfs_module;
}
4、最后需要拷贝fastdfs解压目录中的http.conf和mime.types到/etc/fdfs目录下
# 切换目录
cd /home/mysoftware/fastdfs/fastdfs-5.11/conf/
# 拷贝
cp mime.types http.conf /etc/fdfs/
六、常用命令测试
(1)上传文件
1、进入/etc/fdfs目录,用cp命令拷贝client.conf.sample,删除.sample后缀作为正式文件
# 进入目录
cd /etc/fdfs/
# 通过cp命令拷贝client.conf.sample,删除.sample后缀作为正式文件
cp client.conf.sample client.conf
2、修改client.conf相关配置
# tracker服务器文件路径
base_path=/usr/local/src/whwfastdfs/fastdfs/tracker
# tracker服务器IP地址和端口号
tracker_server=xxx.xxx.xxx.xxx:22122
http.tracker_server_port=80 # tracker服务器的http端口号,必须和tracker的设置对应起来
3、新建一个测试文档1.txt,内容为abc
# 切换到测试文件目录
# 创建并打开文件
vim 1.txt
# 按i键进行编辑,输入abc
wq!退出并保存
4、执行上传命令
# 语法
/usr/bin/fdfs_upload_file <config_file> <local_filename>
# 示例
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf 1.txt
[root@iZ2ze11cqx7ixk06rhtp3yZ mysoftware]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf 1.txt
group1/M00/00/00/rBLHDWCHhIGAc3vuAAAABLh3frE557.txt
# 说明
# 组名:group1
# 磁盘:M00
# 目录:00/00
# 文件名称:CnqV01trmeyAbAN0AAAABLh3frE677.txt
5、查看结果,进入storage的data目录:
# 切换目录
cd /usr/local/src/whwfastdfs/fastdfs/storage/data/00/00/
# 列出文件
ls
rBLHDWCHhIGAc3vuAAAABLh3frE557.txt
6、浏览器访问
(2)下载文件
# 语法
/usr/bin/fdfs_download_file <config_file> <file_id> [local_filename]
# 示例
/usr/bin/fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/CnqV01trmeyAbAN0AAAABLh3frE677.txt a.txt
(3)删除文件
# 语法
/usr/bin/fdfs_delete_file <config_file> <file_id>
# 示例
/usr/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/CnqV01trmeyAbAN0AAAABLh3frE677.txt
七、卸载FastDFS
注意:所有删除操作请务必先查看是否存在文件文件是否为FastDFS相关
FastDFS软件并未提供一键卸载功能,卸载比较麻烦,具体步骤可参考如下:
1、停止服务
# 停止tracker服务
service fdfs_trackerd stop
# 停止storage服务
service fdfs_storaged stop
2、通过storage.conf找到base_path和store_path,然后删除相关文件
cat /etc/fdfs/storage.conf |grep base_path
cat /etc/fdfs/storage.conf |grep store_path
# 注意,如果有未备份的文件,请先备份再删除
rm -rf base_path文件夹
rm -rf store_path文件夹
3、通过tracker.conf找到base_path和store_path,然后删除相关文件
cat /etc/fdfs/tracker.conf |grep base_path
rm -rf base_path文件夹
4、删除配置文件目录
rm -rf /etc/fdfs/
5、删除链接文件
rm –rf /usr/local/bin/fdfs_trackerd
rm –rf /usr/local/bin/stop.sh
rm –rf /usr/local/bin/restart.sh
6、删除storage的链接文件
rm –rf /usr/local/bin/fdfs_storaged
7、删除/usr/bin/目录下FastDFS的可执行文件
# 列表查看
ll /usr/bin/fdfs_*
# 执行删除
rm -rf /usr/bin/fdfs_*
8、删除/usr/include/目录下FastDFS相关的shell脚本
# 列表查看
ll /usr/include/fastdfs/*
# 删除
rm -rf /usr/include/fastdfs/
9、删除/usr/lib64/目录下的库文件
# 列表查看
ll libfdfsclient*
# 删除
rm -rf libfdfsclient*
10、删除/usr/lib/目录下的库
# 列表查看
ll libfdfsclient*
# 删除
rm -rf libfdfsclient*