1、安装前说明
本次安装全程在root用户下进行
安装环境及相关软件版本如下:
PS:本次试验服务器在外网环境,如果是内网环境不能连接外网,需要在服务器配置本地yum源,并下载好相关软件
libfastcommon下载地址:https://sourceforge.net/projects/libfastcommon/
fastDFS下载地址:https://sourceforge.net/projects/fastdfs/
nginx下载地址:http://nginx.org/download/
fastdfs-nginx-module下载地址:https://sourceforge.net/projects/fastdfs/files/FastDFS%20Nginx%20Module%20Source%20Code/
2、编译环境准备(tracker和storage服务器都执行)
如果是内网环境,需要先配置本地yum源才能执行,否则报错
yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y
3、磁盘目录
所有安装包存储位置:/usr/local/src
数据存储位置:/home/fastdfs
#创建文件夹
mkdir /home/fastdfs
mkdir /home/fastdfs/tracker #存放tracker数据和日志
mkdir /home/fastdfs/storage #存放storage数据和日志
4、下载安装libfastcommon(tracker和storage服务器都执行)
#进入安装包目录
cd /usr/local/src
#下载libfastcommon压缩包
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
#重命名(此步可以跳过)
mv V1.0.7 libfastcommon-1.0.7.tar.gz
#解压
tar -zxvf libfastcommon-1.0.7.tar.gz
#进入解压后目录
cd libfastcommon-1.0.7/
#编译并且安装
./make.sh && ./make.sh install
#libfastcommon安装好后会自动将库文件拷贝至/usr/lib64下,由于FastDFS程序引用usr/lib目录所以需要将/usr/lib64下的库文件拷贝至/usr/lib下
cp /usr/lib64/libfastcommon.so /usr/lib/
5、下载安装fastDFS(tracker和storage服务器都执行)
#进入安装包目录
cd /usr/local/src
#下载fastdfs压缩包
wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
#重命名(此步可跳过)
mv V5.05 FastDFS_v5.05.tar.gz
#解压
tar -zxvf FastDFS_v5.05.tar.gz
#进入解压后目录
cd fastdfs-5.05/
#编译安装
./make.sh && ./make.sh install #编译安装
#拷贝配置文件
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #客户端文件,测试用
cp /usr/local/src/fastdfs-5.05/conf/http.conf /etc/fdfs/ #供nginx访问使用
cp /usr/local/src/fastdfs-5.05/conf/mime.types /etc/fdfs/ #供nginx访问使用
6、配置tracker服务器并启动服务
#修改tracker.conf配置命令
vim /etc/fdfs/tracker.conf
#需修改内容如下
port=22122 #tracker服务器端口(默认22122,一般不修改)
base_path=/home/fastdfs/tracker #tracker数据文件和日志存储根目录
#拷贝相关文件,否则下面的启动命令报错
cp /usr/bin/fdfs_trackerd /usr/local/bin/fdfs_trackerd
cp /usr/bin/stop.sh /usr/local/bin/stop.sh
cp /usr/bin/restart.sh /usr/local/bin/restart.sh
#启动tracker
service fdfs_trackerd start #启动命令
service fdfs_trackerd restart #重启命令(不需要执行)
service fdfs_trackerd stop #停止命令(不需要执行)
#查看fdfs进程是否成功启动
ps -ahx|grep fdfs
7、配置storage服务器并启动服务
#修改storage.conf配置命令
vim /etc/fdfs/storage.conf
#需要修改的内容如下
port=23000 #storage服务端口(默认23000,一般不修改)
base_path=/home/fastdfs/storage #storage数据文件和日志存储根目录
store_path0=/home/fastdfs/storage #实际文件存储路径
tracker_server=192.168.56.107:22122 #tracker服务器IP和端口
http.server_port=8888 #http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
#拷贝相关文件,否则下面的启动命令报错
cp /usr/bin/fdfs_storaged /usr/local/bin/fdfs_storaged
cp /usr/bin/stop.sh /usr/local/bin/stop.sh
cp /usr/bin/restart.sh /usr/local/bin/restart.sh
#启动storage
service fdfs_storaged start #启动命令
service fdfs_storaged restart #重启命令(不需要执行)
service fdfs_storaged stop #停止命令(不需要执行)
#查看fdfs进程是否成功启动
ps -ahx|grep fdfs
8、client客户端测试(tracker服务上执行)
#修改client.conf命令
vim /etc/fdfs/client.conf
#需要修改的内容如下
base_path=/home/fastdfs/tracker #tracker服务器文件路径
tracker_server=192.168.56.107:22122 #tracker服务器IP和端口
#生成一个文件
echo asasasa > ~/test.txt
#测试,返回ID表示成功 如:group1/M00/00/00/xx.txt
fdfs_test /etc/fdfs/client.conf upload ~/test.txt
#保存返回的地址,用于第12步的测试,如:http://192.168.56.108/group1/M00/00/00/wKgaaGNSDvSAQIUlAAAACE6c2W4470_big.txt
如果需要通过http请求访问已上传的文件,则需要继续进行下面的操作
9、下载安装fastdfs-nginx-module(storage服务器执行)
#进入安装包目录
cd /usr/local/src
#下载fastdfs-nginx-module压缩包
wget http://jaist.dl.sourceforge.NET/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz
#解压
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
#拷贝配置文件
cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs
10、下载安装nginx(storage服务器执行)
#进入安装包目录
cd /usr/local/src
#下载nginx压缩包
wget http://nginx.org/download/nginx-1.11.8.tar.gz
#解压nginx压缩包
tar -zxvf nginx-1.11.8.tar.gz
#进入解压后目录
cd nginx-1.11.8/
#添加fastdfs-nginx-module模块
./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/
#建立软连接
ln -s /usr/include/fast* /usr/local/include/
#编译安装
make && make install
#查看nginx编译模块情况,看是否有fastdfs-nginx-module模块,没有的话后面启动会报错
./nginx -V
11、配置nginx,可通过http访问
#修改mod_fastdfs.conf配置命令
vim /etc/fdfs/mod_fastdfs.conf
#需要修改的内容如下
tracker_server=192.168.56.107:22122 #tracker服务器IP以及端口号
url_have_group_name=true #http路径中有group名称
store_path0=/home/fastdfs/storage #服务器中建立的存储实际文件的存储路径
#修改nginx.config配置命令
vim /usr/local/nginx/conf/nginx.conf
#修改内容如下
#(1)将pid前面的#去掉,并将地址改成正确的
pid /usr/local/nginx/logs/nginx.pid;
#(2)将sever内容修改如下
server {
listen 8888; #该端口与storage.conf中的http.server_port相同
server_name localhost;
location /group1/M00 {
root /usr/local/fastdfs/storage/data;
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#查看/usr/local/nginx/logs/nginx.pid文件是否存在,如果不存在则新建一个
touch /usr/local/nginx/logs/nginx.pid #新建pid
#建立M00至storage存储目录的符号连接
ln -s /home/fastdfs/storage/data/ /home/fastdfs/storage/data/M00
#启动nginx
cd /usr/local/nginx/sbin #进入目录
./nginx #启动命令
./nginx -s reload #重启命令
./nginx -s stop #停止命令
12、用浏览器访问刚才步骤8中测试上传的文件(记得加上端口号)
http://192.168.56.108:8888/group1/M00/00/00/wKgaaGNSDvSAQIUlAAAACE6c2W4470_big.txt