首先是需求需要安装一个fdfs服务,在网络上找了好多教程,都不太对。
有的还在用最老的版本去安装部署,本篇文章主要是记录我的安装过程,最重要的是过程中的一些思想。
下面直接开始。
虚拟机安装
- 创建新的虚拟机
- 选择自定义
- 稍后安装操作系统
- 选择Linux 64位 --centos7
- 选择CPU 和内存,选择安装位置
- 使用桥接网络
- 编辑虚拟机,选择CD -- ISO镜像
- 确定 -- 开启虚拟机
关键点
最小选择安装的内容比较少,各种编译工具可能都没有,还没有图形化界面。 所以这里选择 开发及生成工作站 ,安装的软件比较全面。 等待安装完成。。。重启
- 重启完成接收许可证,设置网络连接
我这边需要配置IP,如果是自动获取就可以不配置
说明:主机IP是192.168.1.108,因为想在安装完成FDFS后在同一个网段内直接使用,所以选择桥接
FDFS内容获取
github地址:github.com/happyfish10… 有3个需要下载,fastdfs、libfastcommon、fastdfs-nginx-module
进入项目里面,点 tag 选择版本
鼠标右键复制链接地址,我这里选择的是: github.com/happyfish10…
nginx下载页面 nginx.org/en/download… 在 nginx 版本上 右键 复制链接地址,我这里选择的是1.22.0 版本 nginx.org/download/ng…
思想:各种软件工具都会有不同的版本,要学会从官网找资源,渠道要正规
FDFS安装
进入到centos 命令行,使用wget 将资源下载下来,也可以下载完成后上传到centos中,我这里放到了 /usr/local 下。
注意关闭防火墙,否则可能远程不上去
查看防火墙状态: systemctl status firewalld
关闭防火墙:systemctl stop firewalld
也可以使用 disable 禁用
思想:要学会理解命令,更要学会查看命令的帮助文档,刚开始可能看不懂,多看一些就理解了,思维方式有了就能看懂了,而且官方文档是最标准的
然后是 tar 解压这些内容
然后在 fdfs 的3个目录里可以找到 INSTALL 这个文件,3个INSTALL文件就是 3 个帮助文档了。
思想:望文生义,自己工作的时候也应该有这个习惯
安装libfastcommon
./make.sh clean && ./make.sh && ./make.sh install
报错提示没有gcc,解决: yum install gcc -y
安装成功
安装fastfds
./make.sh clean && ./make.sh && ./make.sh install
然后按照INSTALL 步骤操作
FDFS 文件目录我这里使用的是代码中的路径 /home/yuqing/fastdfs 没有做修改
需要创建目录 mkdir -p /home/yuqing/fastdfs
各配置文件需要看一下,修改tracker IP地址
启动fdfs
需要启动 storege 和 tracker,在启动之前看一下有哪些进程和服务
ps -ef| grep tracker
ps -ef| grep storage
service fdfs_storaged status
service fdfs_trackerd status
也可以用 systemctl 查看
systemctl status fdfs_storaged
systemctl status fdfs_trackerd
然后直接尝试启动服务
用service 或 systemctl 启动,命令行不会跳到完成状态,ctrl+c 结束之后,查看进程已经启动了
这个不知道咋回事
另外 也可以直接用 /usr/bin/fdfs* /etc/fdfs/*.conf command 形式启动
思想:理解命令,不要死记硬背
此时 可以在浏览器上访问 http://192.168.1.109:22122/
虽然没有内容,但是我们可以通过访问响应时间 知道已经启动成功,不然浏览器会一致转圈圈的
验证的脚本: /usr/bin/fdfs_monitor /etc/fdfs/client.conf
我们还可以通过上传一个文件来验证
通过命令可以看到 /usr/bin 下面有这些fdfs脚本
我们使用 upload file
echo hello >a.txt
将hello 写入到a.txt 文件
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf a.txt
文件已上传成功,输出的是路径
安装nginx模块
下面我们将安装 nginx 和 nginx module ,去访问a.txt
配置nginx ./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module-1.22/src
指定了nginx 安装路径和 fdfs nginx 模块
我们可以看到1)增加了fastdfs-nginx-module,2)PCRE not found ,3)error ,4)需要install pcre
所以 yum install pcre-devel -y
然后再次执行
又报错 需要安装 zlib yum -y install zlib-devel
然后 make && make install
成功!
配置nginx
我这边是直接修改了 nginx.conf 中8000的配置,把注释放开就行
启动nginx ./nginx
缺少mod_fastdfs.conf文件,在 fastdfs 中找找吧
嗯、是配置nginx 用到的,所以应该在 nginx module 里找,在src 里面找到
cp mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf
找到{tracker_server=tracker:22122} 修改为{tracker_server=192.168.1.109:22122}
重启nginx 之后
a.txt 上传时 路径 group1/M00/00/00/wKgBbWLolZqAFXMWAAAABjY6MCA288.txt
访问 http://192.168.1.109:8000/M00/00/00/wKgBbWLolZqAFXMWAAAABjY6MCA288.txt
成功显示txt 内容。
如果路径中包含 group1 ,可以在nginx 配置中修改一下 location