Centos7安装FastDFS教程

安装包下载: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*
posted @ 2021-05-12 09:18  码农小匠  阅读(767)  评论(0编辑  收藏  举报