由于最近做项目需要用到文件系统,选择了fastdfs+nginx 但是在安装过程中出现了各种报错,在此把踩过的坑都记录一下,下面我介绍的方法,是我亲自验证过的,只要安装的版本和我的一致应该是没问题的。安装过程出现报错大部分都是版本问题,请更换版本安装,尽量选择新版本
1.下载所需的软件以及工具包
fastdfs作者的github:github.com/happyfish10… 所需的所有软件包都可以在这里下载
我安装的对应的版本: fastdfs-6.07 fastdfs-nginx-module-1.22 nginx-1.10.1
下载对应软件包 下面是所需软件的下载地址
fastdfs v6.07
Fastdfs-nginx-module v1.22
libfastcommon v1.0.53
nginx 1.10.1
下面开始安装
在/usr/local/src
目录下新建fastdfs 文件夹 用于存放安装所需的所有软件包源码
[root@VM-16-12-centos ~]# mkdir /usr/local/src/fastdfs
[root@VM-16-12-centos ~]# cd /usr/local/src/fastdfs/
[root@VM-16-12-centos fastdfs]#
首先安装基础环境
yum -y install zlib zlib-devel pcre pcre-devel gcc gcc-c++ openssl openssl-devel libevent libevent-devel perl unzip net-tools wget
下载fastdfs安装所需软件包 下面是所有软件包 请自行前往上面提供的链接下载
下面开始安装
首先安装libfastcommon
tar -zxvf libfastcommon-1.0.53.tar.gz #解压软件包
cd libfastcommon-1.0.53/ # 进入目录
./make.sh #编译
./make.sh install # 安装
验证是否安装成功
添加软连接
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
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
安装fastdfs
tar -zxvf fastdfs-6.07.tar.gz #解压
cd fastdfs-6.07/ #进入解压目录
./make.sh #编译
./make.sh install #安装
fastdfs 默认安装在 /etc/fdfs
目录下
cd /etc/fdfs/ ##进入安装目录
#将下列三个配置文件全部cp 一份
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf
cp client.conf.sample client.conf
配置tracker服务
新建fastdfs 数据的存放目录 下面是我存放的位置
修改tracker的配置文件 需要修改下面几个配置项
base_path = /home/yuqing/fastdfs 修改为 base_path = /usr/fdfs_data (对应你自己的目录)
http.server_port = 8080 修改为 http.server_port = 8888 (http服务对应的端口)
启动 tracker 服务
配置storage
vim /etc/fdfs/storage.conf
修改下面配置项
base_path = /home/yuqing/ 修改为 base_path = /usr/fdfs_data
store_path0 = /usr/fdfs_data/storage 修改为 store_path0 = /usr/fdfs_data/storage
tracker_server = 192.168.1.2:22122 修改为 tracker_server = 服务器ip:22122
http.server_port = 8080 修改为http.server_port = 8888
启动storage 服务
下面配置 client 服务 测试上传功能
vim /etc/fdfs/client.conf
修改下面配置项
base_path = /usr/fdfs_data
tracker_server = 192.168.0.196:22122 修改为 tracker_server = 服务器ip:22122
http_tracker_server_port =80 修改为http_tracker_server_port = 8888
测试上传文件
将fastdfs源码conf目录下的两个配置文件复制到/etc/fdfs目录下
cp /usr/local/src/fastdfs/fastdfs-6.07/conf/http.conf /etc/fdfs/
cp /usr/local/src/fastdfs/fastdfs-6.07/conf/mime.types /etc/fdfs/
配置Nginx 整合fastdfs-nginx-module访问
配置 fastdfs-nginx-module
tar -zxvf fastdfs-nginx-module-1.20.tar.gz ##解压
tar -zxvf nginx-1.10.1.tar.gz
cd ./nginx-1.10.1
./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/fastdfs/fastdfs-nginx-module-1.22/src
make
make install
修改 fastdfs-nginx-module-1.22/src/mod_fastdfs.conf 配置文件 并复制到 /etc/fdfs 目录
修改下列几项
base_path=/usr/fdfs_data
tracker_server=服务器ip:22122 对应tracker服务的ip
store_path0=/usr/fdfs_data/storage
url_have_group_name = true
配置nginx 代理
vim /usr/local/nginx/conf/nginx/conf
nginx.conf
server {
listen 8888;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location /group1/M00{
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
启动nginx
/usr/local/nginx/sbin/nginx
测试上传一张图片
使用nginx 访问上传的图片
安装完成!!!
下面开始添加图片压缩功能
重新进入nginx 源码目录
yum install gd gd-devel ## 安装所需依赖
cd /usr/local/src/fastdfs/nginx-1.10.1
/usr/local/nginx/sbin/nginx -s stop #停止nginx服务
./configure --prefix=/usr/local/nginx --with-http_image_filter_module \
--add-module=/usr/local/src/fastdfs/fastdfs-nginx-module-1.22/src/
make
make install
查看nginx安装的模块
/usr/local/nginx/sbin/nginx -V
修改nginx配置文件
location ~group1/M00/(.+)_(\d+)x(\d+)\.(jpg|gif|png){
ngx_fastdfs_module;
set $w $2;
set $h $3;
image_filter resize $w $h;
image_filter_buffer 10M;
rewrite group1/M00(.+)_(\d+)x(\d+)\.(jpg|gif|png)$ group1/M00$1.$4 break;
}
location ~/group([0-9])/{
ngx_fastdfs_module;
}
重新启动nginx
访问上传的图片
大功告成!!!!