FastDFS-单机版安装
Posted Archibald Witwicky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FastDFS-单机版安装相关的知识,希望对你有一定的参考价值。
转载自: 搭建单机版的FastDFS服务器
* 为了便于理解,其中顺序有改变。
1、第八步创建软链接,可以等到第九步结束后进行。如果提前在第八步创建软链接,因为还没有安装 libfdfsclient.so文件,则创建软链接时会提示此文件不存在,但是不影响创建软链接。
- 为什么创建软链接: libfastcommon.so默认安装到了/usr/lib64/libfastcommon.so,而FastDFS主程序设置的lib目录是/usr/local/lib,所以设置软连接
- 先给被创建软链接的文件权限,然后进行软链接操作,否则会因为文件没有权限而出现闪烁现象(无法成功创建软链接的表现)。
- chmod 777 /usr/lib64/libfdfsclient.so
- chmod 777 /usr/lib64/libfastcommon.so
2、如果等到第九步完成 之后在进行创建,则不会有问题。如下如:
3、需要预先安装的软件
vim-enhanced(关联安装了 perl perl-devel)、make 、cmake、gcc、gcc-c++、zip、unzip、zlib、zlib-devel、openssl、opssl-devel
==============================
由于FastDFS集群搭建非常复杂,对于初期学习FastDFS来说,搭建个单机版的作为入门更为实际一些。
第一步:搭建虚拟环境
FastDFS需要在Linux系统上安装,我们一般使用的都是Windows系统,这样就需要有虚拟环境,我这里使用Vmware12创建虚拟机,关于虚拟机最小化的安装大家可以参考:http://blog.csdn.net/u012453843/article/details/68947589这篇博客进行学习
第二步:配置静态IP而且要保证能上网
大家可以参考:http://blog.csdn.net/u012453843/article/details/52839105这篇博客进行学习,需要提醒的是,由于最小化安装默认是没有vim命令的,因此在配置静态IP时使用vi命令即可。
第三步:安装vim命令
之所以安装vim命令是因为在安装它的同时会自动帮我们安装perl,而perl在进行编译安装时是必须要有的。安装vim的命令是:yum install vim-enhanced
第四步:安装gcc
使用命令:yum install make cmake gcc gcc-c++进行安装即可
第五步:上传安装文件到Linux服务器
为了便于管理,我们在Linux服务器上新建一个/usr/local/software目录,专门用于存放安装包,如下所示
- [root@fastdfs ~]# mkdir /usr/local/software
- [root@fastdfs ~]#
下面我们把需要用到的安装包都上传到/usr/local/software目录下,我们可以使用XShell和Xftp5相结合来方便的进行上传下载操作,大家可以参考http://blog.csdn.net/u012453843/article/details/68951776这篇博客进行学习。也可以通过安装rzsz命令来进行上传下载操作,安装rzsz的命令是yum install lrzsz,安装完之后,rz表示上传,sz 文件表示下载。
大家可以到http://download.csdn.net/detail/u012453843/9802538这个地址下载需要的安装包,上传完之后,如下所示
- [root@fastdfs software]# ll
- 总用量 1248
- -rw-r--r--. 1 root root 17510 11月 28 00:19 fastdfs-nginx-module_v1.16.tar.gz
- -rw-r--r--. 1 root root 345400 11月 28 00:20 FastDFS_v5.05.tar.gz
- -rw-r--r--. 1 root root 102378 11月 28 00:19 libfastcommon-master.zip
- -rw-r--r--. 1 root root 804164 11月 28 01:11 nginx-1.6.2.tar.gz
- [root@fastdfs software]#
第六步:安装zip和unzip命令
由于解压.zip结尾的文件需要用到unzip命令,因此我们需要安装,安装命令是yum install zip unzip
第七步:安装libfastcommon
1、解压
- [root@fastdfs software]# unzip libfastcommon-master.zip -d /usr/local/fast/
2、进入目录
- [root@fastdfs software]# cd /usr/local/fast/libfastcommon-master/
- [root@fastdfs libfastcommon-master]# ll
- 总用量 28
- -rw-r--r--. 1 root root 2913 2月 27 2015 HISTORY
- -rw-r--r--. 1 root root 582 2月 27 2015 INSTALL
- -rw-r--r--. 1 root root 1342 2月 27 2015 libfastcommon.spec
- -rwxr-xr-x. 1 root root 2151 2月 27 2015 make.sh
- drwxr-xr-x. 2 root root 4096 2月 27 2015 php-fastcommon
- -rw-r--r--. 1 root root 617 2月 27 2015 README
- drwxr-xr-x. 2 root root 4096 2月 27 2015 src
- [root@fastdfs libfastcommon-master]#
3、编译
- [root@fastdfs libfastcommon-master]# ./make.sh
4、安装
- [root@fastdfs libfastcommon-master]# ./make.sh install
第八步移动至第九步之后
第九步:安装FastDFS
1、进入到cd /usr/local/software下,解压FastDFS_v5.05.tar.gz文件
- [root@fastdfs fast]# cd /usr/local/software/
- [root@fastdfs software]# ll
- 总用量 1248
- -rw-r--r--. 1 root root 17510 4月 11 03:28 fastdfs-nginx-module_v1.16.tar.gz
- -rw-r--r--. 1 root root 345400 4月 11 03:28 FastDFS_v5.05.tar.gz
- -rw-r--r--. 1 root root 102378 4月 11 03:28 libfastcommon-master.zip
- -rw-r--r--. 1 root root 804164 4月 11 03:29 nginx-1.6.2.tar.gz
- [root@fastdfs software]# tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local/fast/
2、编译安装
- [root@fastdfs software]# cd /usr/local/fast/FastDFS/
- [root@fastdfs FastDFS]# ./make.sh
- [root@fastdfs FastDFS]# ./make.sh install
安装完后,服务脚本位置如下
- [root@fastdfs FastDFS]# cd /etc/init.d/ && ls | grep fdfs
- fdfs_storaged
- fdfs_trackerd
- [root@fastdfs init.d]#
配置文件位置如下:
- [root@fastdfs init.d]# cd /etc/fdfs/
- [root@fastdfs fdfs]# ll
- 总用量 20
- -rw-r--r--. 1 root root 1461 4月 11 04:10 client.conf.sample
- -rw-r--r--. 1 root root 7829 4月 11 04:10 storage.conf.sample
- -rw-r--r--. 1 root root 7102 4月 11 04:10 tracker.conf.sample
- [root@fastdfs fdfs]#
FastDFS一系列执行脚本如下,可以看到有上传文件脚本、下载文件脚本等等。
- [root@fastdfs fdfs]# cd /usr/bin/ && ls | grep fdfs
- fdfs_appender_test
- fdfs_appender_test1
- fdfs_append_file
- fdfs_crc32
- fdfs_delete_file
- fdfs_download_file
- fdfs_file_info
- fdfs_monitor
- fdfs_storaged
- fdfs_test
- fdfs_test1
- fdfs_trackerd
- fdfs_upload_appender
- fdfs_upload_file
- [root@fastdfs bin]#
3、因为FastDFS服务脚本设置的bin目录为/usr/local/bin/下,但是实际我们安装在了/u sr/bin/下面。所以我们需要修改FastDFS配置文件中的路径,也就是需要修改两个配置文件
使用命令vim /etc/init.d/fdfs_storaged进入编辑模式,然后直接输入":",光标会定位到最后一行,在":"后输入"%s+/usr/local/bin+/usr/bin",如下图所示。输入完之后回车,会提示修改了7处。为了确保所有的/usr/local/bin都被替换了,我们可以再打开文件确认一下。
接着修改第二个配置文件,我们使用命令vim /etc/init.d/fdfs_trackerd进入编辑模式,接着按照上面那样输入":%s+/usr/local/bin+/usr/bin "并按回车,同样会提醒我们修改了7处。
第 在此处执行 第八步:创建软链接
libfastcommon.so默认安装到了/usr/lib64/libfastcommon.so,而FastDFS主程序设置的lib目录是/usr/local/lib,所以设置软连接
如下所示。
- [root@fastdfs libfastcommon-master]# ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
- [root@fastdfs libfastcommon-master]# ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
- [root@fastdfs libfastcommon-master]# ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
- [root@fastdfs libfastcommon-master]# ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
第十步:配置跟踪器
1、进入到/etc/fdfs目录并且复制一份tracker.conf.sample并命名为tracker.conf,如下所示。
- [root@fastdfs bin]# cd /etc/fdfs/
- [root@fastdfs fdfs]# ll
- 总用量 20
- -rw-r--r--. 1 root root 1461 4月 11 04:10 client.conf.sample
- -rw-r--r--. 1 root root 7829 4月 11 04:10 storage.conf.sample
- -rw-r--r--. 1 root root 7102 4月 11 04:10 tracker.conf.sample
- [root@fastdfs fdfs]# cp tracker.conf.sample tracker.conf
- [root@fastdfs fdfs]#
2、使用命令vim /etc/fdfs/tracker.conf进入编辑模式,然后修改base_path的值为/fastdfs/tracker,如下图所示。
/
3、我们在上图配置文件中配置的/fastdfs/tracker目前是不存在的,因此我们需要创建一下该目录
- [root@fastdfs fdfs]# mkdir -p /fastdfs/tracker
- [root@fastdfs fdfs]#
4、配置防火墙,放开tracker使用的端口22122,使用命令vim /etc/sysconfig/iptables进入编辑模式,添加一行内容-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT,如下图所示。
5、重启防火墙
- [root@fastdfs fdfs]# service iptables restart
- iptables:将链设置为政策 ACCEPT:filter [确定]
- iptables:清除防火墙规则: [确定]
- iptables:正在卸载模块: [确定]
- iptables:应用防火墙规则: [确定]
- [root@fastdfs fdfs]#
6、在启动tracker之前,/fastdfs/tracker目录下是没有任何文件的,如下所示
- [root@fastdfs tracker]# cd /fastdfs/tracker/ && ll
- 总用量 0
- [root@fastdfs tracker]#
启动tracker,启动完之后,可以看到这个目录下多了两个目录data和logs。如下所示。
- [root@fastdfs tracker]# /etc/init.d/fdfs_trackerd start
- Starting FastDFS tracker server:
- [root@fastdfs tracker]# cd /fastdfs/tracker/ && ll
- 总用量 8
- drwxr-xr-x. 2 root root 4096 4月 11 05:01 data
- drwxr-xr-x. 2 root root 4096 4月 11 05:01 logs
- [root@fastdfs tracker]#
7、设置开机自启动,在rc.local文件中添加/etc/init.d/fdfs_trackerd start,如下所示。
- [root@fastdfs tracker]# vim /etc/rc.d/rc.local
- #!/bin/sh
- #
- # This script will be executed *after* all the other init scripts.
- # You can put your own initialization stuff in here if you don\'t
- # want to do the full Sys V style init stuff.
- touch /var/lock/subsys/local
- /etc/init.d/fdfs_trackerd start
第十一步:配置FastDFS存储
1、进入/etc/fdfs目录,复制一份storage.conf.sample文件并命名为storage.conf,如下所示。
- [root@fastdfs tracker]# cd /etc/fdfs/
- [root@fastdfs fdfs]# ll
- 总用量 28
- -rw-r--r--. 1 root root 1461 4月 11 04:10 client.conf.sample
- -rw-r--r--. 1 root root 7829 4月 11 04:10 storage.conf.sample
- -rw-r--r--. 1 root root 7098 4月 11 04:45 tracker.conf
- -rw-r--r--. 1 root root 7102 4月 11 04:10 tracker.conf.sample
- [root@fastdfs fdfs]# cp storage.conf.sample storage.conf
- [root@fastdfs fdfs]# ll
- 总用量 36
- -rw-r--r--. 1 root root 1461 4月 11 04:10 client.conf.sample
- -rw-r--r--. 1 root root 7829 4月 11 05:07 storage.conf
- -rw-r--r--. 1 root root 7829 4月 11 04:10 storage.conf.sample
- -rw-r--r--. 1 root root 7098 4月 11 04:45 tracker.conf
- -rw-r--r--. 1 root root 7102 4月 11 04:10 tracker.conf.sample
- [root@fastdfs fdfs]#
2、修改storage.conf文件 ,我们使用命令vim /etc/fdfs/storage.conf进入编辑模式,对以下四项进行修改,192.168.156.13是我的虚拟机的IP,大家根据自己虚拟机的IP自行设置。
- base_path=/fastdfs/storage
- store_path0=/fastdfs/storage
- tracker_server=192.168.156.13:22122
- http.server_port=8888
3、创建存储目录,如下所示。
- [root@fastdfs fdfs]# mkdir -p /fastdfs/storage
- [root@fastdfs fdfs]#
4、配置防火墙,允许外界访问storage的默认端口23000,如下所示。
- [root@fastdfs fdfs]# vim /etc/sysconfig/iptables
- # Firewall configuration written by system-config-firewall
- # Manual customization of this file is not recommended.
- *filter
- :INPUT ACCEPT [0:0]
- :FORWARD ACCEPT [0:0]
- :OUTPUT ACCEPT [0:0]
- -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- -A INPUT -p icmp -j ACCEPT
- -A INPUT -i lo -j ACCEPT
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT
- -A INPUT -j REJECT --reject-with icmp-host-prohibited
- -A FORWARD -j REJECT --reject-with icmp-host-prohibited
- COMMIT
添加完之后,重启防火墙,如下所示。
- [root@fastdfs fdfs]# service iptables restart
- iptables:将链设置为政策 ACCEPT:filter [确定]
- iptables:清除防火墙规则: [确定]
- iptables:正在卸载模块: [确定]
- iptables:应用防火墙规则: [确定]
- [root@fastdfs fdfs]#
5、在启动storage之前,/fastdbf/storage目录下是没有任何文件的
- [root@fastdfs fdfs]# cd /fastdfs/storage/ && ll
- 总用量 0
- [root@fastdfs storage]#
启动storage,启动后再看/fastdfs/storage目录,可以看到多了data和logs。
- [root@fastdfs storage]# /etc/init.d/fdfs_storaged start
- Starting FastDFS storage server:
- [root@fastdfs storage]# cd /fastdfs/storage/ && ll
- 总用量 8
- drwxr-xr-x. 68 root root 4096 4月 11 05:21 data
- drwxr-xr-x. 2 root root 4096 4月 11 05:20 logs
- [root@fastdfs storage]#
6、查看FastDFS tracker和storage 是否启动成功,当看到如下所示信息时说明都启动成功了。
- [root@fastdfs storage]# ps -ef | grep fdfs
- root 2124 1 0 05:01 ? 00:00:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
- root 2228 1 0 05:21 ? 00:00:00 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf
- root 2238 1360 0 05:22 pts/0 00:00:00 grep fdfs
- [root@fastdfs storage]#
7、我们进入到 /fastdfs/storage/data/目录下,可以看到两级共256*256个目录,每级都是从00到FF,如下只是列出了第一级的目录,点进去每个目录都还有00到FF共256个目录。
- [root@fastdfs storage]# cd /fastdfs/storage/data/ && ls
- 00 09 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87 90 99 A2 AB B4 BD C6 CF D8 E1 EA F3 FC
- 01 0A 13 1C 25 2E 37 40 49 52 5B 64 6D 76 7F 88 91 9A A3 AC B5 BE C7 D0 D9 E2 EB F4 FD
- 02 0B 14 1D 26 2F 38 41 4A 53 5C 65 6E 77 80 89 92 9B A4 AD B6 BF C8 D1 DA E3 EC F5 fdfs_storaged.pid
- 03 0C 15 1E 27 30 39 42 4B 54 5D 66 6F 78 81 8A 93 9C A5 AE B7 C0 C9 D2 DB E4 ED F6 FE
- 04 0D 16 1F 28 31 3A 43 4C 55 5E 67 70 79 82 8B 94 9D A6 AF B8 C1 CA D3 DC E5 EE F7 FF
- 05 0E 17 20 29 32 3B 44 4D 56 5F 68 71 7A 83 8C 95 9E A7 B0 B9 C2 CB D4 DD E6 EF F8 storage_stat.dat
- 06 0F 18 21 2A 33 3C 45 4E 57 60 69 72 7B 84 8D 96 9F A8 B1 BA C3 CC D5 DE E7 F0 F9 sync
- 07 10 19 22 2B 34 3D 46 4F 58 61 6A 73 7C 85 8E 97 A0 A9 B2 BB C4 CD D6 DF E8 F1 FA
- 08 11 1A 23 2C 35 3E 47 50 59 62 6B 74 7D 86 8F 98 A1 AA B3 BC C5 CE D7 E0 E9 F2 FB
- [root@fastdfs data]#
8、设置storage开机自启动,添加一行/etc/init.d/fdfs_storaged start,如下所示。
- [root@fastdfs data]# vim /etc/rc.local
- #!/bin/sh
- #
- # This script will be executed *after* all the other init scripts.
- # You can put your own initialization stuff in here if you don\'t
- # want to do the full Sys V style init stuff.
- touch /var/lock/subsys/local
- /etc/init.d/fdfs_trackerd start
- /etc/init.d/fdfs_storaged start
第十二步:测试图片上传
1、进入到/etc/fdfs目录下并复制一份client.conf.sample并更名为client.conf,如下所示。
- [root@fastdfs data]# cd /etc/fdfs
- [root@fastdfs fdfs]# ll
- 总用量 36
- -rw-r--r--. 1 root root 1461 4月 11 04:10 client.conf.sample
- -rw-r--r--. 1 root root 7820 4月 11 05:12 storage.conf
- -rw-r--r--. 1 root root 7829 4月 11 04:10 storage.conf.sample
- -rw-r--r--. 1 root root 7098 4月 11 04:45 tracker.conf
- -rw-r--r--. 1 root root 7102 4月 11 04:10 tracker.conf.sample
- [root@fastdfs fdfs]# cp client.conf.sample client.conf
- [root@fastdfs fdfs]# ll
- 总用量 40
- -rw-r--r--. 1 root root 1461 4月 11 05:40 client.conf
- -rw-r--r--. 1 root root 1461 4月 11 04:10 client.conf.sample
- -rw-r--r--. 1 root root 7820 4月 11 05:12 storage.conf
- -rw-r--r--. 1 root root 7829 4月 11 04:10 storage.conf.sample
- -rw-r--r--. 1 root root 7098 4月 11 04:45 tracker.conf
- -rw-r--r--. 1 root root 7102 4月 11 04:10 tracker.conf.sample
- [root@fastdfs fdfs]#
2、使用命令vim /etc/fdfs/client.conf进入编辑模式并修改如下两项内容,如下所示。
- base_path=/fastdfs/tracker
- tracker_server=192.168.156.13:22122
3、我们找到命令的脚本位置,并且使用命令,进行文件的上传。
- [root@fastdfs bin]# cd /usr/bin/ && ls | grep fdfs
- fdfs_appender_test
- fdfs_appender_test1
- fdfs_append_file
- fdfs_crc32
- fdfs_delete_file
- fdfs_download_file
- fdfs_file_info
- fdfs_monitor
- fdfs_storaged
- fdfs_test
- fdfs_test1
- fdfs_trackerd
- fdfs_upload_appender
- fdfs_upload_file
- [root@fastdfs bin]#
下面使用fdfs_upload_file脚本进行文件上传操作,如下所示。可以看到已经上传成功了,返回的是图片的保存位置:group1/M00/00/00/wKicDVjr_ayAE4VVAAHk-VzqZ6w020.jpg
- [root@fastdfs bin]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/software/3.jpg
- group1/M00/00/00/wKicDVjr_ayAE4VVAAHk-VzqZ6w020.jpg
- [root@fastdfs bin]#
小结:
1、至此,我们就完成了FastDFS的安装, 可以通过 程序自带的上传工具进行上传文件,也可以通过程序进行上传。详细可参见:http://blog.csdn.net/u012453843/article/details/69946109
2、虽然我们已经可以将文件上传至服务器,但是无法通过浏览器连接直接访问到(也可以通过程序下载文件),我们将FastDFS程序与nginx结合,可以通过链接进行访问,详细功能可以参考上面的链接。
================================
第十三步:FastDFS与nginx相结合
1、先安装nginx,大家可以参考http://blog.csdn.net/u012453843/article/details/69396434这篇博客的第四步Nginx安装(我们已经安装过的vim、gcc等就不需要重复安装了)。
2、安装fastdfs-nginxmodule_v1.16.tar.gz(fast与nginx相结合的模块安装包), 进入 /usr/local/software目录并解压,如下所示。
- [root@fastdfs nginx-1.6.2]# cd /usr/local/software/
- [root@fastdfs software]# tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast/
- fastdfs-nginx-module/
- fastdfs-nginx-module/src/
- fastdfs-nginx-module/src/ngx_http_fastdfs_module.c
- fastdfs-nginx-module/src/mod_fastdfs.conf
- fastdfs-nginx-module/src/config
- fastdfs-nginx-module/src/common.h
- fastdfs-nginx-module/src/common.c
- fastdfs-nginx-module/INSTALL
- fastdfs-nginx-module/HISTORY
- [root@fastdfs software]#
3、进入到/usr/local/fast目录下可以看到解压的fastdfs-nginx-module目录,然后进入到fastdfs-nginx-module/src/目录下,可以看到config文件。
- [root@fastdfs software]# cd /usr/local/fast/
- [root@fastdfs fast]# ll
- 总用量 12
- drwxr-xr-x. 10 8980 users 4096 4月 11 04:10 FastDFS
- drwxrwxr-x. 3 500 500 4096 5月 4 2014 fastdfs-nginx-module
- dr
以上是关于FastDFS-单机版安装的主要内容,如果未能解决你的问题,请参考以下文章