FastDFS一步步搭建檔案管理系統
1、環境virtualBox+CentOs7,前提必須確保主機和虛擬機器網路可以互通,並且虛擬機器可以訪問網路
2、centos下建立目錄/softpackages
3、下載安裝 libfastcommon,libfastcommon是從 FastDFS 和 FastDHT 中提取出來的公共 C 函式庫,基礎環境
下載libfastcommon
解壓
進入libfastcommon-1.0.7,編譯、安裝
注意:如果出現上面情況請先安裝perl
然就可以順利編譯和安裝了
libfastcommon.so 安裝到了/usr/lib64/libfastcommon.so,但是FastDFS主程式設定的lib目錄是/usr/local/lib,所以需要建立軟連結。
4、下載安裝FastDFS
下載FastDFS
解壓、編譯、安裝
預設安裝方式安裝後的相應檔案與目錄
服務指令碼:
/etc/init.d/fdfs_storaged
/etc/init.d/fdfs_tracker
配置檔案(這三個是作者給的樣例配置檔案) :
/etc/fdfs/client.conf.sample
/etc/fdfs/storage.conf.sample
/etc/fdfs/tracker.conf.sample
命令工具在 /usr/bin/ 目錄下:
FastDFS 服務指令碼設定的 bin 目錄是 /usr/local/bin, 但實際命令安裝在 /usr/bin/ 下
兩種方式:
一、修改FastDFS 服務指令碼中相應的命令路徑,也就是把 /etc/init.d/fdfs_storaged 和 /etc/init.d/fdfs_tracker 兩個指令碼中的 /usr/local/bin 修改成 /usr/bin。
# vim fdfs_trackerd
使用查詢替換命令進統一修改:%s+/usr/local/bin+/usr/bin
# vim fdfs_storaged
使用查詢替換命令進統一修改:%s+/usr/local/bin+/usr/bin
二、是建立 /usr/bin 到 /usr/local/bin 的軟連結,本人用這種方式。
5、配置FastDFS跟蹤器(Tracker)
進入 /etc/fdfs,複製 FastDFS 跟蹤器樣例配置檔案 tracker.conf.sample,並重命名為 tracker.conf。
編輯tracker.conf ,標紅的需要修改下,其它的預設即可
建立tracker基礎資料目錄,即base_path對應的目錄
# mkdir -p /home/running/fastdfs/tracker
防火牆中開啟跟蹤埠(預設的22122)
新增如下埠行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT
重啟防火牆:
# service iptables restart
啟動Tracker
初次成功啟動,會在 /home/running/fdfsdfs/tracker/ (配置的base_path)下建立 data、logs 兩個目錄
啟動方式一:
啟動方式二:
# service fdfs_trackerd start
檢視 FastDFS Tracker 是否已成功啟動 ,22122埠正在被監聽,則算是Tracker服務安裝成功。
# netstat -unltp|grep fdfs
閉Tracker命令:
# service fdfs_trackerd stop
設定Tracker開機啟動
# chkconfig fdfs_trackerd on
或者
# vim /etc/rc.d/rc.local
加入配置:
/etc/init.d/fdfs_trackerd start
tracker server 目錄及檔案結構
Tracker服務啟動成功後,會在base_path下建立data、logs兩個目錄。目錄結構如下:
${base_path}
|__data
| |__storage_groups.dat:儲存分組資訊
| |__storage_servers.dat:儲存伺服器列表
|__logs
| |__trackerd.log: tracker server 日誌檔案
6、配置 FastDFS 儲存 (Storage)
進入 /etc/fdfs 目錄,複製 FastDFS 儲存器樣例配置檔案 storage.conf.sample,並重命名為 storage.conf
# cd /etc/fdfs
#cp storage.conf.sample storage.conf
#vi storage.conf
編輯storage.conf,紅色的修改就可以了,其它預設
建立Storage基礎資料目錄,對應base_path目錄建立Storage基礎資料目錄,對應base_path目錄
# mkdir -p /home/running/fastdfs/storage
#這是配置的store_path0路徑
# mkdir -p /home/running/fastdfs/file
防火牆中開啟儲存器埠(預設的 23000)
# vim /etc/sysconfig/iptables
新增如下埠行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT
重啟防火牆:
# service iptables restart
啟動 Storage
啟動Storage前確保Tracker是啟動的。初次啟動成功,會在 /home/running/fastdfs/storage 目錄下建立 data、 logs 兩個目錄。
可以用這種方式啟動
# /etc/init.d/fdfs_storaged start
也可以用這種方式,後面都用這種
# service fdfs_storaged start
檢視 Storage 是否成功啟動,23000 埠正在被監聽,就算 Storage 啟動成功
# netstat -unltp|grep fdfs
檢視Storage和Tracker是否在通訊:
#/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
設定 Storage 開機啟動
# chkconfig fdfs_storaged on
Storage 目錄
同 Tracker,Storage 啟動成功後,在base_path 下建立了data、logs目錄,記錄著 Storage Server 的資訊。
7、檔案上傳測試
修改 Tracker 伺服器中的客戶端配置檔案
# cd /etc/fdfs # cp client.conf.sample client.conf # vim client.conf
修改如下配置
上傳測試
在linux內部執行如下命令上傳 namei.jpeg 圖片
組名、磁碟名、目錄、檔名
8、安裝Nginx
安裝Nginx作為伺服器以支援Http方式訪問檔案,後面安裝FastDFS的Nginx模組也需要Nginx環境。Nginx只需要安裝到StorageServer所在的伺服器即可,用於訪問檔案。TrackerServer和StorageServer在一臺伺服器上。所以Nginx安裝在該機器上就可以了。
安裝nginx所需環境
a、gcc 安裝
# yum install gcc-c++
b、PCRE pcre-devel 安裝
# yum install -y pcre pcre-devel
c、zlib 安裝
# yum install -y zlib zlib-devel
d、OpenSSL 安裝
# yum install -y openssl openssl-devel
安裝Nginx
a、下載nginx
# wget -c https://nginx.org/download/nginx-1.12.1.tar.gz
b、解壓
# tar -zxvf nginx-1.12.1.tar.gz
# cd nginx-1.12.1
c、進入解壓縮後文件夾
d、配置編譯引數命令:(可以使用./configure --help查詢詳細引數)
./configure \ --prefix=/usr/local/nginx \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ --http-scgi-temp-path=/var/temp/nginx/scgi
e、注:安裝之前需要手動建立上面指定的nginx資料夾,即/var/temp、/var/temp/nginx、/var/run/nginx/資料夾,否則啟動時報錯
f、編譯並安裝
命令:make && make install
可以進入/usr/local/nginx檢視檔案是否存在conf、sbin、html資料夾,若存在則安裝成功
g、啟動nginx
進入安裝目錄
cd /usr/local/nginx/sbin/
啟動:./nginx
檢視是否啟動:ps -ef | grep nginx
如果有master和worker兩個程序證明啟動成功
若報錯:[emerg] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory)需要檢視下是不是在/var/run資料夾下不存在nginx資料夾,不存在則新建
其它命令 # ./nginx -s stop # ./nginx -s quit # ./nginx -s reload
設定開機啟動
# vi /etc/rc.local 新增一行: /usr/local/nginx/sbin/nginx # 設定執行許可權 # chmod 755 rc.local
防火牆中開啟Nginx埠(預設的 80) 然後在本機瀏覽器用ip+80埠,就可以訪問了
# vim /etc/sysconfig/iptables 新增如下埠行: -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 重啟防火牆: # service iptables restart
訪問檔案
修改nginx.conf
# vim /usr/local/nginx/conf/nginx.conf 新增如下行,將 /group1/M00 對映到 /home/running/fastdfs/file/data location /group1/M00 { alias /home/running/fastdfs/file/data; } # 重啟nginx # /usr/local/nginx/sbin/nginx -s reload
在瀏覽器訪問之前上傳的圖片、成功