fastdfs安装介绍
-
环境准备
- 本人的阿里云服务器
CentOS Linux release 7.9.2009 (Core)
版本(通过命令cat /etc/redhat-release
查看自己的Linux版本信息) - 过程中使用的软件包都是从github上面下载的,也可以依赖服务器的wget工具远程拉取软件包
- 这里推荐一篇github的安装篇幅
https://github.com/happyfish100/fastdfs/wiki
,本人在按照这个文章按照时一直出现问题,所以才写了这篇文章记录一下成功安装的过程 - 最重要的一点,后续配置nginx进行访问url时,切记要开放端口访问权限,如果不想只单独开放一个端口访问,那就使用
systemctl stop firewalld
把防火墙关闭了,直到本地Win10电脑能通过浏览器访问到fastdfs的文件时才算成功。
-
开启安装
- 先执行下面的命令,安装所需要的环境和工具,一般来说,使用服务器执行下面的命令安装工具是不会出现问题的,如果出现问题,那就另求别路。
yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y
- 新建
/home/dfs
目录用来存储数据
mkdir /home/dfs
- 切换到
/usr/local/src
目录下,该目录专门用来存储本次过程使用的安装包
cd /usr/local/src
- 下载并安装libfastcommon,下面有两种方式
- 通过git工具克隆(过程中可能会卡死,可以使用第二种方式)
git clone https://github.com/happyfish100/libfastcommon.git --depth 1
- 通过
https://github.com/happyfish100/libfastcommon.git
来到GitHub页面并下载zip压缩包,通过传输工具(传输工具我用的Xftp)传输到服务器的/usr/local/src
目录。 - 此时我们在
/usr/local/src
目录,对于zip压缩包而言使用unzip 压缩包名称
就可以进行解压缩,解压之后进入libfastcommon目录,执行./make.sh
,之后执行./make.sh install
(也可以使用一条./make.sh && ./make.sh install
命令完成两步操作)(这里的其他文件先不要理会))
- 退出libfastcommon目录,准备安装下一个内容
- 下载并安装fastdfs,下面有两种方式
- 先执行下面的命令,安装所需要的fastdfs安装包,或者进入其github地址下载zip压缩包并手动上传。
git clone https://github.com/happyfish100/fastdfs.git --depth 1
- 当前在
/usr/local/src
目录执行下面的命令
unzip fastdfs-master.zip #解压
cd fastdfs-master #进入解压目录
./make.sh #编译
./make.sh install #安装
- 执行完毕之后退回原目录
- 注意:
上面的流程我在试了多个fastdfs版本之后
都没有问题,如果有问题,说明问题并不是常见的问题,只能自己去百度对症下药,从下面的环节开始,就出现了几个比较常见的问题(我也是去搜索了很久) - 配置fastdfs
- 一开始我是依靠于上面的github文章安装,文章地址
https://github.com/happyfish100/fastdfs/wiki
,此时就应该执行下面的命令,将配置文件拷贝出来一份
- 在终端执行命令
ll /etc/fdfs
就可以看到,我们当前的目录中,是不存在tracker.conf.sample
,storage.conf.sample
,client.conf.sample
三个文件的,而是存在tracker.conf
,storage.conf
,client.conf
三个文件,所以我们这里不用执行上面三个命令 - 我们只需要执行下面两条命令就行了
cp /usr/local/src/fastdfs-master/conf/http.conf /etc/fdfs/ #供nginx访问使用
cp /usr/local/src/fastdfs-master/conf/mime.types /etc/fdfs/ #供nginx访问使用
- 上面就先到这里
- 下载并安装fastdfs-nginx-module
- git下载命令
注意此刻所处的目录依旧是/usr/local/src
目录
git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1
- 执行下面的命令,注意
这个目录解压出来可能不是fastdfs-nginx-module
的命名,记得使用mv 解压后命名 fastdfs-nginx-module
命令重命名一下。
cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs
- 此刻执行
ll /etc/fdfs
命令,结果如下
- 下载并安装nginx
- git命令(这里直接用wget下载,速度很快的)
wget http://nginx.org/download/nginx-1.15.4.tar.gz
- 解压(此时依旧在
/usr/local/src
目录)
tar -zxvf nginx-1.15.4.tar.gz
- 进入nginx解压目录,并执行下面的命令
cd nginx-1.15.4/
./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/
- 直到遇到下面的情况,error因为是特殊关键字所以会爆红,这个不管。
Configuration summary
+using system PCRE library
+OpenSSL library is not used
+using system zlib library
nginx path prefix: “/usr/local/nginx”
nginx binary file: “/usr/local/nginx/sbin/nginx”
nginx modules path: “/usr/local/nginx/modules”
nginx configuration prefix: “/usr/local/nginx/conf”
nginx configuration file: “/usr/local/nginx/conf/nginx.conf”
nginx pid file: “/usr/local/nginx/logs/nginx.pid”
nginx error
log file: “/usr/local/nginx/logs/error.log”
nginx http access log file: “/usr/local/nginx/logs/access.log”
nginx http client request body temporary files: “client_body_temp”
nginx http proxy temporary files: “proxy_temp”
nginx http fastcgi temporary files: “fastcgi_temp”
nginx http uwsgi temporary files: “uwsgi_temp”
nginx http scgi temporary files: “scgi_temp”
- 此时在该目录下执行最后一条命令即可
make && make install
-
配置信息
- 上面的后半部分安装如果出现问题了,只能自己去找答案了,反正我是没有安装方面的问题
- 配置tracker
- 执行命令
vim /etc/fdfs/tracker.conf
- 在配置文件中找到
base_path
字段,整体修改为base_path = /home/dfs
,这里的/home/dfs
是文章一开始就让大家创建的目录,用于存储数据(这个过程使用到vim,没学过的我也没辙)
- 配置storage
- 执行命令
vim /etc/fdfs/storage.conf
- 在配置文件找到下面几个字段进行修改(下面列出的字段都是需要修改,并且是修改之后的值),修改成和我一样就行了,我也是参照github那篇文章
base_path=/home/dfs # 数据和日志文件存储根目录
store_path0=/home/dfs # 第一个存储目录
tracker_server=本机ip:22122 # 本机ip改成自己服务器的ip
http.server_port=9000
- 上面的配置信息和文章有两点我要声明一下,第一个就是
tracker_server
的取值,本机ip填写的就是服务器的公网ip,第二个就是http.server_port我这里设置为9000,原始是8888端口,因为8888端口已经被我的服务器某个软件使用,所以我这里修改一下,这里修改成9000,后面有个地方注意一下同步修改就行了,后面再说
- 启动tracker和storage,命令如下
这里就是我主要出错的地方,我们上面的安装方式,只需要通过命令执行我们之前创建的etc/fdfs/tracker.conf
文件即可(storage同理),別的教程没有用下面的命令,是我在结合其他地方知道的
fdfs_trackerd /etc/fdfs/tracker.conf
fdfs_storaged /etc/fdfs/storage.conf
- 测试结果
- 配置client信息
vim /etc/fdfs/client.conf
- 需要修改的配置信息如下
base_path=/home/dfs
tracker_server=本机ip:22122 #本机ip修改为服务器的公网ip
- 执行测试命令(该命令是github那篇参考文章的)
测试的时候关闭防火墙systemctl stop firewalld
,并且在阿里云控制台开放安全组的端口,我这里测试太多次,导致开了很多端口,这里就列举给大家参考,我开放的端口有9000、22122、80、443、8888
,特别注意,这里的9000就是我们上面设置过的端口,这里必须开放
fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/nginx-1.15.4.tar.gz
- 执行成功之后会出现下面的结果,说明我们存储成功了,这里保存路径,留在后面测试
group1/M00/00/00/L3C-WmKIVtGATeOiAA-itrfn0m4.tar.gz
-
配置nginx访问
-
修改mod_fastdfs.conf配置文件
vim /etc/fdfs/mod_fastdfs.conf
-
需要修改的内容如下
tracker_server=本机ip:22122 #本机ip修改为服务器ip
url_have_group_name=true
store_path0=/home/dfs
-
配置nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
-
找到nginx本身就有的server,其端口为80,如下图所示
-
往下滚,找到第一个server的结束大括号,然后添加我们的配置,自己看着图片对应的添加,格式太丑了也没事,就按照下面的做(自己调整缩进,原谅我不会使用csdn展示代码)
server {
listen 9000; ## 该端口为storage.conf中的http.server_port相同
server_name localhost;
location ~/group[0-9]/ {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
-
最后一个注意点就是上面的文件,监听的端口为9000,和一开始我们在/etc/fdfs/storage.conf
文件设置的9000端口保持一致
-
启动nginx
我就是因为下面命令报的错误:8888端口被占用,才采用9000端口
/usr/local/nginx/sbin/nginx
-
通过ps -ef|grep nginx
查看nginx是否真正启动,在win10电脑浏览器访问http://虚拟机ip:9000/
成功访问到nginx欢迎页面,访问http://虚拟机ip:9000/group1/M00/00/00/xx.tar.gz
成功则弹出我们之前设置好的nginx安装包,代表fastdfs正常工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)