一、准备资源
准备好下图中资源包
如果没有可以去此下载
https://codeload.github.com/happyfish100/libfastcommon/tar.gz/V1.0.43
https://codeload.github.com/happyfish100/fastdfs/tar.gz/V6.06
https://codeload.github.com/happyfish100/fastdfs-nginx-module/tar.gz/V1.22
http://nginx.org/en/download.html
或者在linux中使用yum命令进行安装。
把准备好的安装包上传到linux中 例如:/usr/local/src
1.安装依赖
yum -y install gcc-c++
yum -y install libevent
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
二、安装libfastcommon(FastDFS依赖程序)
1.进入到/usr/local/src路径下解压安装包
- cd /usr/local/src
- tar -zxf libfastcommonV1.0.7.tar.gz
2.进入到解压后的目录下编译安装
- cd libfastcommon-1.0.7
- ./make.sh
- ./make.sh install
3.由于fastdfs把创建的libfastcommon.so放到了lib64目录下面,但是系统扫描是去lib目录下面,所以把文件拷贝到lib目录下
- cp /usr/lib64/libfastcommon.so /usr/lib
4.创建数据存储目录
- mkdir -p /usr/local/FastDFS/tracker //可以自定义
- mkdir -p /usr/local/FastDFS/storage //可以自定义
- mkdir -p /usr/local/FastDFS/client //可以自定义
可以看到创建的目录下有client,storage,tracker三个目录(这里我已经安装过了,所以有别的目录和文件)
三、安装FastDFS
1.解压
- cd /usr/local/src
- tar -zxf FastDFS_v5.05.tar.gz
2.进入目录,编译 安装
- cd FastDFS
- ./make.sh
- ./make.sh install
3.把解压目录下的conf目录下的文件全部cp到/etc/fdfs里面
- cd conf
- cp * /etc/fdfs
4.进入/etc/fdfs目录,修改tracker.conf文件
- vi /etc/fdfs/tracker.conf
//找到basebase_path=你上面创建的数据存储目录(我这里是/usr/local/FastDFS/tracker)
base_path=/usr/local/FastDFS/tracker
5.启动tracker
- /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
6.进入/etc/fdfs目录,修改storage.conf文件
- vi /etc/fdfs/storage.conf
//找到base_path
base_path=你上面创建的数据存储目录(我这里是/usr/local/FastDFS/storage)
//找到base_path0
store_path0=这里是默认的存储路径自定义(我这里是/usr/local/FastDFS/storage)
//找到tracker_server
tracker_server=你的服务器的ip:22122
7.启动storage
- /usr/bin/fdfs_storaged /etc/fdfs/storage.conf
8.配置测试
从编译完的FastDFS目录复制libfdfsclient.so 到/usr/lib目录
- cd /usr/local/src/FastDFS/client
- cp libfdfsclient.so /usr/lib
9.修改测试配置文件
- vi /etc/fdfs/client.conf
//找到base_path
base_path=你上面创建的数据存储目录(我这里是/usr/local/FastDFS/client)
tracker_server=你的服务器的ip:22122
四、测试上传
注意:先关闭防火墙再测试
测试:
例如将/home下的a.png上传到服务则有:
- /usr/bin/fdfs_test /etc/fdfs/client.conf upload /home/a.png
/usr/bin/fdfs_test /etc/fdfs/client.conf upload 要上传的文件路径
上传成功会返回你上传文件的访问路径
比如:http://服务器IP/group1/M00/00/00/wKhMeGNL3ROAR2GaABDQ7Qx13Gk393_big.png
此时浏览器还无法访问返回的这个链接,这里我们使用nginx进行代理
五、安装fastdfs-nginx-module插件(nginx和fastdfs的桥梁插件模块)
1.依赖的安装(前面已经安装过,如果没安装请安装一下)
- yum install -y gcc-c++
- yum install -y pcre pcre-devel
- yum install -y zlib zlib-devel
- yum install -y openssl openssl-devel
2.解压fastdfs-nginx-module
- cd /usr/local/src
- tar -zxf fastdfs-nginx-module_v1.16.tar.gz
3.进入解压后的目录fastdfs-nginx-module/src/,修改配置config文件,将所有的/local去掉
把CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
修改为:CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
把CORE_LIBS="$CORE_LIBS -L/usr/local/lib -lfastcommon -lfdfsclient"
修改为:CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"
4.复制fastdfs-nginx-module/src/mod_fastdfs.conf 到/etc/fdfs目录下
- cp mod_fastdfs.conf /etc/fdfs
5.在/etc/fdfs目录下修改mod_dastdfs.conf文件
- vim /etc/fdfs/mod_fastdfs.conf
//找到tracker_server
tracker_server=你的服务器IP:22122
storage_server_port=23000
group_name=group1
//找到url_have_group_name
url_have_group_name = true
//找到store_path0
store_path0=你上面设置的默认数据存储目录(我这里是/usr/local/FastDFS/storage)
六、nginx安装(用于做文件请求http代理服务器)
1.解压nginx并进入nginx目录
- cd /usr/local/src
- tar -zxf nginx-1.8.0.tar.gz
- cd nginx-1.8.0
2、如果已经安装了nginx
//找到已安装的nginx源码包,进入文件夹
1.配置了ssl的配置方法:
./configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=/usr/local/src/fastdfs-nginx-module/src/(后面的"="号后面路径是你的插件安装地址)
2.没有配置ssl的配置方法:./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/("="号后面路径是你的插件安装地址)
编译和安装(注意一定不要make install)
make //编译
cp ./objs/nginx /usr/local/nginx/sbin/ 把编译后的nginx替换你安装的nginx
3.如果没有安装nginx
①.进入/usr/local/src路径下解压安装包
- cd /usr/local/src
- tar -zxf nginx-1.8.0.tar.gz
②.进入解压后的目录文件,执行第2步中已安装nginx未配置ssl的步骤
- cd nginx-1.8.0
- ./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/
③.编译 安装
- make && make install
④.安装好的nginx目录应该在/usr/local目录下面
4.最后,配置nginx.conf文件
- vim /usr/local/nginx/conf/nginx.conf
server {
listen 8088;//如果没有改过端口号,默认是80端口
server_name localhost;
location /group1/M00/{
ngx_fastdfs_module;
}
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
5.进入sbin中重启nginx服务
- cd /usr/local/nginx/sbin/
- ./nginx
启动nginx如果遇到提示
像这种情况,是端口被占用了,有两种方法,一种是更换nginx端口号,一种是关闭占用端口的进程
①.更改端口号在/usr/local/nginx/conf/下的nginx.conf文件中更改(参照六.4)
②.查找占用端口的进程(我这里是8088端口被占用)
- fuser -n tcp 8088
③.关掉相应进程后启动nginx就好了
- kill -9 5725 5726
- cd /usr/local/nginx/sbin/
- ./nginx
七、最后浏览器访问测试
关闭防火墙测试
- systemctl stop firewalld
使用浏览器打开之前返回的网址,便可以看到上传到服务器的图片了
如果忘记了地址,可以再次执行第四步后浏览器打开返回的网址。