由於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 ~]#
大家可以到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
第七步:安裝libfastcommon1、解壓
- [root@fastdfs software]# unzip libfastcommon-master.zip -d /usr/local/fast/
- [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]#
- [root@fastdfs libfastcommon-master]# ./make.sh
- [root@fastdfs libfastcommon-master]# ./make.sh install
第八步:創建軟鏈接
FastDFS主程序設置的目錄爲/usr/local/lib/,所以我們需要創建/ usr/lib64/下的一些核心執行程序的軟連接文件。如下所示。
- [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、進入到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/
- [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]#
- [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]#
使用命令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處。
第十步:配置跟蹤器
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]#
/
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]#
- [root@fastdfs tracker]# cd /fastdfs/tracker/ && ll
- 總用量 0
- [root@fastdfs tracker]#
- [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]#
- [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
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]#
- base_path=/fastdfs/storage
- store_path0=/fastdfs/storage
- tracker_server=192.168.156.13:22122
- http.server_port=8888
- [root@fastdfs fdfs]# mkdir -p /fastdfs/storage
- [root@fastdfs fdfs]#
- [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]#
- [root@fastdfs fdfs]# cd /fastdfs/storage/ && ll
- 總用量 0
- [root@fastdfs storage]#
- [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]#
- [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]#
- [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]#
- [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]#
- base_path=/fastdfs/tracker
- tracker_server=192.168.156.13:22122
- [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]#
- [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、先安裝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]#
- [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
- drwxr-xr-x. 4 root root 4096 4月 11 03:30 libfastcommon-master
- [root@fastdfs fast]# cd fastdfs-nginx-module/src/
- [root@fastdfs src]# ll
- 總用量 76
- -rw-rw-r--. 1 500 500 33207 8月 30 2013 common.c
- -rw-rw-r--. 1 500 500 3479 1月 3 2012 common.h
- -rw-rw-r--. 1 500 500 447 11月 4 2010 config
- -rw-rw-r--. 1 500 500 3679 3月 30 2013 mod_fastdfs.conf
- -rw-rw-r--. 1 500 500 28542 5月 4 2014 ngx_http_fastdfs_module.c
- [root@fastdfs src]#
4、fastdfs與nginx進行結合,由於我們剛纔安裝過nginx了,因此在/usr/local目錄下已經生成了一個nginx目錄了,如下圖所示。
爲了將nginx與fastdfs相結合,我們先把這個nginx目錄刪除掉,如下圖所示,可以看到已經沒有nginx目錄了。
進入到nginx-1.6.2/目錄下並執行配置和編譯安裝,如下所示。
- [root@fastdfs local]# cd nginx-1.6.2/
- [root@fastdfs nginx-1.6.2]# ./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/
- [root@fastdfs nginx-1.6.2]# make && make install
- [root@fastdfs fdfs]# cd /usr/local/fast/fastdfs-nginx-module/src/
- [root@fastdfs src]# ll
- 總用量 76
- -rw-rw-r--. 1 500 500 33207 8月 30 2013 common.c
- -rw-rw-r--. 1 500 500 3479 1月 3 2012 common.h
- -rw-rw-r--. 1 500 500 435 4月 11 06:09 config
- -rw-rw-r--. 1 500 500 3679 3月 30 2013 mod_fastdfs.conf
- -rw-rw-r--. 1 500 500 28542 5月 4 2014 ngx_http_fastdfs_module.c
- [root@fastdfs src]# cp /usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
- [root@fastdfs src]#
- connect_timeout=10
- tracker_server=192.168.156.13:22122
- url_have_group_name = true
- store_path0=/fastdfs/storage
- [root@fastdfs fdfs]# cd /usr/local/fast/FastDFS/conf/
- [root@fastdfs conf]# ll
- 總用量 84
- -rw-r--r--. 1 8980 users 23981 12月 2 2014 anti-steal.jpg
- -rw-r--r--. 1 8980 users 1461 12月 2 2014 client.conf
- -rw-r--r--. 1 8980 users 858 12月 2 2014 http.conf
- -rw-r--r--. 1 8980 users 31172 12月 2 2014 mime.types
- -rw-r--r--. 1 8980 users 7829 12月 2 2014 storage.conf
- -rw-r--r--. 1 8980 users 105 12月 2 2014 storage_ids.conf
- -rw-r--r--. 1 8980 users 7102 12月 2 2014 tracker.conf
- [root@fastdfs conf]# cp http.conf mime.types /etc/fdfs/
- [root@fastdfs conf]#
- [root@fastdfs conf]# ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
- [root@fastdfs conf]#
修改的內容如下圖示
可以直接複製下面的內容。
- listen 8888;
- location ~/group([0-9])/M00 {
- ngx_fastdfs_module;
- }
設置nginx開機自啓動,這樣下次重啓設備之後,tracker、storage、nginx都自動啓動了,直接就可以使用服務,如下所示。
- [root@fastdfs ~]# 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
- /etc/init.d/fdfs_storaged start
- /usr/local/nginx/sbin/nginx
啓動nginx,如下所示。
- [root@fastdfs conf]# /usr/local/nginx/sbin/nginx
- ngx_http_fastdfs_set pid=6809
- [root@fastdfs conf]#
配置完防火牆後重啓防火牆
- [root@fastdfs conf]# service iptables restart
- iptables:將鏈設置爲政策 ACCEPT:filter [確定]
- iptables:清除防火牆規則: [確定]
- iptables:正在卸載模塊: [確定]
- iptables:應用防火牆規則: [確定]
- [root@fastdfs conf]#
至此,一個單機版的FastDFS便搭建完畢了!!