参考https://www.cnblogs.com/chiangchou/p/fastdfs.html
参考https://www.cnblogs.com/handsomeye/p/9451568.html
第一步 配置FastDFS基础环境(libfastcommon)
1.下载libfastcommon相应版本:
wget https://codeload.github.com/happyfish100/libfastcommon/tar.gz/V1.0.43
备注:wget 如果命令不可用 则:使用以下命令
yum -y install wget
2.解压安装包:
tar -zxvf V1.0.43
3.进入目录:
cd libfastcommon-1.0.43
4.执行编译:
./make.sh
备注:(这句话可能会提示 gcc common not found,以下命令安装gcc)
yum install gcc
然后输入 y 确定,待下载完成之后重新执行第四步
5.安装:
./make.sh instal
第二步 配置FastDFS
1 先返回根目录,以免还在 libfastcommon目录里,如图
[root@localhost /] #
2 下载FastDFS版本(如果连接失败,重新运行几次应该就好了)
wget https://codeload.github.com/happyfish100/fastdfs/tar.gz/V6.06
3 解压安装包:
tar -zxvf V6.06
4 进入目录:
cd fastdfs-6.06
5 执行编译:
./make.sh
6 安装:
./make.sh install
备注:如果第5步和第6步错误,提示perl 命令没有找到,
则回到跟目录,下载perl
参考 https://blog.csdn.net/qq_35439782/article/details/79790027
1 wget https://www.cpan.org/src/5.0/perl-5.24.4.tar.gz //下载perl
2 tar -zxvf perl-5.24.4.tar.gz //解压
3 cd perl-5.24.4 //解压完成之后进入
4 ./Configure -des -Dprefix=/usr/local/perl //执行 (可能是配置安装的意思)
5 make install //执行 (执行make命令我这不管用,所以用make install)
6 perl –v //检查是否安装成功
下方也是一种安装perl方式:参考 https://blog.csdn.net/qq_38446413/article/details/106240804
yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget
如果有这个错误 undefined reference to ''g_exe_name 则 ./make.sh clean清除,从新运行。参考https://blog.csdn.net/qq_38572383/article/details/86689396
第三步 配置FastDFS跟踪器(Tracker)
1 进入/etc/fdfs目录,有多个.sample后缀的文件(自动生成的fdfs模板配置文件),拷贝一份tracker.conf.sample,然后再删除tracker.conf.sample文件,相当于修改了一下名字:
cp tracker.conf.sample tracker.conf
rm -rf tracker.conf.sample
2 编辑 tracker.conf文件,修改相关参数
vi tracker.conf
修改以下三项
port=22122 #tracker默认 不用修改
base_path=/home/fastdfs/tracker #tracker存储data和log的跟路径,必须提前创建好
http.server_port=80 #http端口,需要和nginx相同
3 返回根目录,然后进入home文件夹下,执行以下命令 即配置的base_path
mkdir fastdfs
cd fastdfs
mkdir tracker
4.启动Tracker, 初次成功启动,会在/home/fastdfs/tracker (配置的base_path)下创建 data、logs 两个目录。
service fdfs_trackerd start
5 查看 FastDFS Tracker 是否已成功启动 ,22122端口正在被监听,则算是Tracker服务安装成功。
netstat -unltp|grep fdfs
备注:如果netstat命令的时候报command not found,则执行yum install net-tools
6 停止该端口
service fdfs_trackerd stop
7 设置Tracker开机启动(两种方式)
第一种
chkconfig fdfs_trackerd on
第二种:
vi /etc/rc.d/rc.local
加入配置,保存退出
/etc/init.d/fdfs_trackerd start
第四步 配置 FastDFS 存储 (Storage)
1.同第三步第1一样
cd /etc/fdfs
cp storage.conf.sample storage.conf
rm -rf storage.conf.sample
2 进入编辑模式
vi storage.conf
//修改以下内容
base_path=/home/fastdfs/storage #storage根路径
store_path0=/home/fastdfs/storage
tracker_server= 172.16.0.129:22122 #tracker所在机器的ip:端口
3 返回根目录创建base_path目录 在home文件夹下
mkdir fastdfs
cd fastdfs //这两步第三步已经创建了,所以直接进入到该目录,然后直接用下一步命令即可
mkdir storage //创建storage根路径
4 启动Tracker 初次成功启动,会在/home/fastdfs/tracker (配置的base_path)下创建 data、logs 两个目录。
注意:启动之前 Tracker必须先启动 service fdfs_trackerd start
service fdfs_storaged start
5 查看 Storage 是否成功启动,23000 端口正在被监听,就算 Storage 启动成功。
netstat -unltp|grep fdfs
6 关闭Storage命令:
service fdfs_storaged stop
7 设置 Storage 开机启动
chkconfig fdfs_storaged on
第五步 文件上传测试
1 进入/etc/fdfs目录,有cp命令拷贝client.conf.sample,删除.sample后缀作为正式文件,同上
cd /etc/fdfs
cp client.conf.sample client.conf
vi client.conf
2 进入编辑模式,修改如下配置即可
base_path=/home/fastdfs/client/
tracker_server=172.16.0.129:22122 //tracker服务器IP地址和端口号
http.tracker_server_port=80 # tracker服务器的http端口号,必须和tracker的设置对应起来
3 上传文件,在当前目录下新建文件 1.txt
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf 1.txt
返回 grounp1/M00 /00/00/ wCKJKllkakdsalsdmnkfasdfac2asdf.txt
组名 磁盘 矩阵目录 文件名
4 查看结果,进入storage的data目录:
第六步 安装Nginx和fastdfs-nginx-module模块
上面将文件上传成功了,但我们无法浏览,下载。因此安装Nginx作为服务器以支持Http方式访问文件。
同时,后面安装FastDFS的Nginx模块也需要Nginx环境。
Nginx只需要安装到StorageServer所在的服务器即可,用于访问文件。我这里由于是单机,TrackerServer和StorageServer在一台服务器上。
查看是否安装某包
yum list installed | grep “gcc”
准备:
在安装nginx前首先要确认系统中安装了gcc、pcre-devel、zlib-devel、openssl-devel。否则下面将会有错误
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
一 安装Nginx
1 下载Nginx
wget http://nginx.org/download/nginx-1.18.0.tar.gz
2 解压
tar -zxvf nginx-1.18.0.tar.gz
3 配置到/usr/local文件夹下
cd nginx-1.18.0
./configure --prefix=/usr/local/nginx (需要下载pcre-devel,zlib-devel库)
4 编译 安装
make
make install
5 查看是否安装成功
cd /usr/loca/nginx/ //进入改文件夹下
./sbin/nginx -t //执行
6 启动nginx
cd /usr/local/nginx/sbin/
./nginx
其他命令
./nginx -s stop #此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程
./nginx -s quit #此方式停止步骤是待nginx进程处理任务完毕进行停止
./nginx -s reload
7 在浏览器中测试
在浏览器中输入文件服务器的ip地址,如:172.16.0.129 。正常情况下 是访问不到的
解决:nginx 端口号默认80,需要把80端口开放 端口开放示例 端口号改成80即可
访问成功如下
自定义路径,使其可以访问到图片
vi /usr/local/nginx/conf/nginx.conf
添加如下行,将 /group1/M00 映射到 /home/fastdfs/storage/data(自己设置的srotrage 下data路径)
location /group1/M00 {
alias /home/fastdfs/storage/data; //注意冒号
}
重启nginx
/usr/local/nginx/sbin/nginx -s reload
8 设置开机启动
vi /etc/rc.local
二 安装配置fastdfs-nginx-module模块
1 fastdfs-nginx-module 模块说明
FastDFS 通过 Tracker 服务器,将文件放在 Storage 服务器存储, 但是同组存储服务器之间需要进行文件复制, 有同步延迟的问题。
假设 Tracker 服务器将文件上传到了 192.168.51.128,上传成功后文件 ID已经返回给客户端。
此时 FastDFS 存储集群机制会将这个文件同步到同组存储 192.168.51.129,在文件还没有复制完成的情况下,客户端如果用这个文件 ID 在 192.168.51.129 上取文件,就会出现文件无法访问的错误。
而 fastdfs-nginx-module 可以重定向文件链接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误。
2 下载
wget https://codeload.github.com/happyfish100/fastdfs-nginx-module/tar.gz/V1.22
3 解压
tar -zxvf V1.22
4 配置Nginx,进入nginx目录 注意:是上一步的Nginx目录不是刚刚解压的fastdfs-nginx-module
cd nginx-1.18.0
先停掉nginx服务
/usr/local/nginx/sbin/nginx -s stop
添加模块
./configure --add-module=/fastdfs-nginx-module-1.22/src //刚刚下载的fastdfs-nginx-module目录
重新编译、安装
make
make install
查看Nginx的模块
/usr/local/nginx/sbin/nginx -V
出现以下则是成功
5 复制 fastdfs-nginx-module 源码中的配置文件到/etc/fdfs 目录, 并修改
cd /fastdfs-nginx-module-1.22/src
cp mod_fastdfs.conf /etc/fdfs/
修改 etc/fdfs/mod_fastdfs.conf
tracker_server=10.122.149.211:22122 #tracker的地址
url_have_group_name=true #url是否包含group名称
store_path0=/home/fastdfs/storage #文件存储的位置
6 配置nginx,修改nginx.conf
vi /usr/local/nginx/conf/nginx.conf
添加
location ~/group([0-9])/M00 {
root /home/fastdfs/storage/data;
ngx_fastdfs_module;
}
7 将FastDFS配置目录下的2个文件复制到/etc/fdfs目录下:
cp /fastdfs-6.06/conf/http.conf /etc/fdfs/ //前边是fastdfs下载的路径
cp /fastdfs-6.06/conf/mime.types /etc/fdfs/
8 启动nginx
/usr/local/nginx/sbin/nginx
成功标志如下图: