title: Linux7.5安装使用FastDFS
date: 2020-08-13 14:34:54
categories: 乐优商城学习
tags:
- Linux
- FastDFS
top:
password:
一、安装FastDFS
1、安装编译工具以及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
2、上传所需文件到linux虚拟机中
此处放于/usr/local/leyou
可以使用xftp工具或者npm install -y lrzsz
建议版本与上述推荐一致,避免不必要的错误
3、安装libfastcommon
此处!建议使用libfastcommon-master-zip版本,其余版本eglibfastcommon_v1.04.tar.gz可能在编译安装完成之后,再去FastDFS中编译安装会报错,缺少文件
1 mkdir -p /usr/local/leyou
2 cd /usr/local/leyou
3 unzip libfastcommon-master.zip #解压到当前文件夹
4 cd ./libfastcommon-master
5 ./make.sh && ./make.sh install #是c语言写的,实现编译与安装
编译安装后,发现libfastcommon默认安装到/usr/lib64/中
ls | grep libfastcommon.so #可以通过此命令在/usr/lib64和/usr/lib目录均查看
1 cd /usr/lib
2 ls | grep libfastcommon.so
3 cd /usr/lib64/
4 ls | grep libfastcommon.so
创建软连接,由于FastDFS主程序设置的目录为/usr/local/lib,所以需要创建/usr/lib64/下的一些核心执行程序的软连接文件
1 cd /usr/local/lib #如果不存在则手动创建
#建立软连接
2 ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
3 ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
4 ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
5 ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
#如果是FastDFS5.0.8,在创建时,可能有的会提示已存在(无所谓,下面不做特殊说明,均用5.08版本)
4、安装FastDFS
1 cd /usr/local/leyou
2 tar -zxvf FastDFS_v5.08.tar.gz
3 cd ./FastDFS
4 ./make.sh && ./make.sh install
如果编译安装成功,显示如图
1 cd /etc/init.d/
2 ll
3 cd /etc/fdfs/
4 ll
cd /usr/bin && ls | grep fdfs #进入/usr/bin目录下,且显示fdfs的所有执行脚本
这里提一下,5.05版本需要更改,5.08默认是/usr/bin
1 #因为FastDFS服务脚本设置的bin目录为/usr/local/bin/下,但是实际我们安装在了/usr/bin/下面。所以我们需要修改FastDFS配置文件中的路径,也就是需要修改两个配置文件
2 yum install -y vim
3 vim /etc/init.d/fdfs_storaged
4 :%s+/usr/local/bin+/usr/bin #然后回车,执行全局替换命令,:wq!保存退出
5 vim /etc/init.d/fdfs_trackerd
6 :%s+/usr/local/bin+/usr/bin #然后回车,执行全局替换命令,:wq!保存退出
1 cd /etc/fdfs/
2 cp storage.conf.sample storage.conf
3 cp client.conf.sample client.conf
4 cp tracker.conf.sample tracker.conf
编辑tracker.conf:
1 vim /etc/fdfs/tracker.conf
2 base_path=/fastdfs/tracker
3 mkdir -p /fastdfs/tracker
关闭防火墙
systemctl stop firewalld
启动tracker
#第一种方式
1 /etc/init.d/fdfs_trackerd start
2 /etc/init.d/fdfs_trackerd stop
#第二种方式
3 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start #启动tracker命令
4 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop #关闭tracker命令
如果启动成功
1 ps -ef | grep fdfs #会出现三个进程
2 cd /fastdfs/tracker/ && ll #会生成data和logs文件夹
修改client.conf
1 vim /etc/fdfs/client.conf
2 base_path=/fastdfs/tracker
3 tracker_server=192.168.77.131:22122 #如果是主机连接虚拟机,则填写虚拟机的ip
4 http.tracker_server_port=80 #端口统一
1 vim /etc/fdfs/storage.conf
2 #修改内容如下
3 base_path=/fastdfs/storage
4 store_path0=/fastdfs/storage
5 tracker_server=192.168.77.131:22122 ##改成自己的虚拟机IP地址
6 http.server_port=80
启动storaged
#第一种方法
1 /etc/init.d/fdfs_storaged start #启动storaged
2 /etc/init.d/fdfs_storaged stop #关闭storaged
#第二种方法
3 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start #启动storaged
4 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop #关闭storaged
如果成功启动
1 cd /fastdfs/storage/data && ls
设置服务开机自启
1 vim /etc/rc.d/rc.local
#加入下列配置
2 /etc/init.d/fdfs_trackerd start
3 /etc/init.d/fdfs_storaged start
5、测试FastDFS
原本/fastdfs/storage/data/00/00为空,并没有文件。
接下来我们进行上传操作,比如将/usr/local/leyou/中的一个照片上传到FastDFS系统中
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/leyou/picture1.jpg
效果如下:
注:
这生成的group1/M00/00/00/wKhNgl80y26ALvZBAAdhomzfHGU319.jpg就是我们访问路径的一部分,完整路径是192.168.77.131/group1/M00/00/00/wKhNgl80y26ALvZBAAdhomzfHGU319.jpg
二、安装nginx
·此处建议不用yum方式安装nginx,因为需要添加模块,没有./configure
1 cd /usr/local/leyou
2 tar -zxvf nginx-1.14.1.tar.gz -C /usr/local
安装pcre:
#可以直接下载安装包解压,也可以使用wget
1 cd /usr/local/leyou
2 yum install -y wget
3 wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz #安装pcre
4 tar -zxvf pcre-8.35.tar.gz -C /usr/local #解压到/usr/local
5 cd /usr/local/pcre-8.35
6 ./configure
7 make && make install
8 pcre-config --version #查看版本号
进入nginx安装目录
1 cd /usr/local/nginx-1.14.1
2 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module
3 make && make install
启动nginx
cd /usr/nginx
#可以看到四个文件夹
#conf配置文件
#html网页文件
#logs日志文件
#sbin主要二进制程序
#启动nginx
./sbin/nginx
#查看进程
ps -ef | grep nginx
现在可以在主机的浏览器中输入你的ip地址,效果如下:
三、FastDFS与Nginx整合
首先需要安装fastdfs-nginx-module
1 cd /usr/local/leyou/ && ll
2 tar ./fastdfs-nginx-module_v1.16.tar.gz
3 cd ./fastdfs-nginx-module/src/
4 vim ./config
5 :%s+/usr/local+/usr #将config文件中的/usr/local替换成/usr
1 cd /usr/local/
2 rm -rf nginx
3 cd ./nginx-1.14.1
#编译时要添加模块
./configure --prefix=/usr/local/nginx --add-module=/usr/fastdfs-nginx-module/src
#这一步可能会报错,直接看下面的错误解决
5 make && make install
#复制fastdfs-nginx-module中的配置文件,到etc/fdfs中
1 cp /usr/local/leyou/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
#接下来在etc/fdfs中修改盖菜copy的mod_fastdfs.conf文件
2 vim /etc/fdfs/mod_fastdfs.conf
#修改内容如下
3 connect_timeout=10
4 tracker_server=192.168.59.131:22122
5 url_have_group_name = true
6 store_path0=/fastdfs/storage
1 cd /usr/local/leyou/FastDFS/conf
2 cp http.conf mime.types /etc/fdfs
##创建一个软连接,在/fastdfs/storage文件存储目录下创建软连接,将其链接到实际存放数据 的目录。
3 cd /fastdfs/storage #进入/fastdfs/storage目录下
4 ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
1 cd /usr/local/nginx/conf
2 vim nginx.conf
location ~/group([0-9])/M00 {
root /fastdfs/storage/data;
ngx_fastdfs_module;
}
注意:nginx里的端口要和配置FastDFS存储中的storage.conf文件配置一致, 也就是(http.server_port=80)
注意
这里的nginx启动命令是:
关闭nginx命令:/usr/local/nginx/sbin/nginx -s stop
启动nginx命令:/usr/local/nginx/sbin/nginx
查看版本命令:/usr/local/nginx/sbin/nginx -v
如果直接用nginx -s stop,nginx -s reload,nginx -v 会报错:
解决方法
1 vim /etc/profile
2 PATH=$PATH:/usr/local/nginx/sbin
3 source /etc/profile
四、最后一步测试
开启storage、tracker、nginx
1 /etc/init.d/fdfs_trackerd start
2 /etc/init.d/fdfs_storaged start
3 nginx
#查看是否启动成功
4 ps -ef | grep fdfs
5 ps -ef | grep nginx
当主机访问http://192.168.77.130/group1/M00/00/00/wKhNgl80y26ALvZBAAdhomzfHGU319.jpg
时,即可显示
五、可能出现的错误
1、/usr/src/fastdfs-nginx-module/src/common.c:21:25:致命错误:fdfs_define.h:没有那个文件或目录 #include
编译中断。
原因:编译安装nginx的fastdfs插件的头文件没有找到,由于编译nginx时候系统会到/usr/local /include,
而编译安装fastdfs-nginx-module时则默认保存在了/usr/include目录。
修复:ln -s /usr/include/fast* /usr/local/include/