一:下載fastdfs
我們總共需要三個檔案
1.fastdfs 分散式檔案儲存系統
2.libdf庫
3.fastdfs-nginx-module 連接nginx功能模組
下載時候請注意,此處下載的格式為.zip 並不是tar.gz。之所以如此是因為,在使用fastdfs-nginx-module模組整合nginx時候會出錯,原因是 fastdfs版本必須 >= 5.11才可以。否則編譯nginx的時候會報錯。可以看看模組的 install文件,裡面有說明。由於fastdfs發布的版本最高只到 5.10,作者還沒有將版本更新到5.11.但是github上的程式碼已經更新,所以直接下載即可。這裡是作者 github位址
註:解壓縮zip格式的文件,需要係統已經安裝了 unzip軟體。沒有的可以使用指令安裝: yum install zip unzip
# 為了安裝方便,操作過程中,可以切換到root權限進行操作
下載完成之後,將文件夾上傳到伺服器
再次提醒此處的都是zip格式的檔案,使用指令 unzip filename
逐一解壓縮每個zip檔。例如: unzip fastdfs-master
下面是解壓縮後的情況,因為不喜歡帶master 的後綴,在解壓縮之後刪除了。可使用指令操作 mv oldfilename newfilename
# 例如: mv fastdfs-master fastdfs
<img src="https://img.php.cn/upload/article/000/887/227/168422662134669.png" alt="FastDFS怎麼安裝和設定整合Nginx-1.13.3">
二:安裝fastdfs
1.安裝fastdfs函數庫 解壓縮之後,先進入
# cd libfastcommon
# 編譯檔案./make.sh
安裝:
./make.sh install
tracker server位址:
store_path 位址:
##註:以上的tracker server位址,請設定成伺服器對應位址。連接埠沒修改情況下,保持預設。
store_path路徑如果不修改,將無法啟動storage server服務。不會有任何提示,可以開啟 /fastdfs/logs 資料夾下的storaged.log文件,查看錯誤訊息。
ok,修改完成之後,啟動storage, /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
,同樣也是沒有任何反應。接著使用指令 netstat -unltp|grep fdfs
看看是否啟動
出現上圖的情況,說明tracker server、storage server已經成功啟動。
5.測試上傳服務
接下來開啟client.conf設定檔 vim client.conf
,只需要修改base_path和tracker_server兩個地方即可。
當修改完成之後,試試能否上傳文件,剛好目錄有一張圖片
使用指令將圖片上傳
/usr/bin/fdfs_test /etc/fdfs/client.conf upload ./anti-steal.jpg
當看到上面一長串的字符,ok 上傳成功了。並成功返回了 圖片地址。到儲存目錄下看看,發現多出了幾張圖片。其中一張圖片和商品圖片地址後綴一樣,那麼檔案已經儲存到本機。
雖然回傳圖片位址,但現在的fastdfs已經不支援http協定。在4.0.5版本時候已經移除了 http支持,因此不能直接透過圖片地址存取。所有我們透過fastdfs模組整合nginx,以提供http服務。
四.整合nginx和fastdfs
1.整合模組
此處假設你已經安裝過nginx及其依賴包,如果還沒有安裝nginx可以看我另一個文章:centos7 安裝nginx
整合nginx不需要安裝fastdfs模組,在配置nginx時候將fastdfs-nginx-module
模組添加進去即可。下面先開始設定nginx,進入nginx目錄下設定檔
./configure --prefix=/opt/nginx --with-pcre=/home/mgame/soft/pcre-8.41 --with-openssl=/home/mgame/soft/openssl-1.1.0f --with-zlib=/home/mgame/soft/zlib-1.2.11 --add-module=/home/mgame/soft/fastdfs-nginx-module/src
編譯make
安裝make install
在安裝過程如果出現下面的錯誤,請查看模組中的install文件,對fastdfs版本的要求(開頭部分已經說明本文的fastdfs版本必須>= 5.11)。
error: 'fdfshttpparams' has no member named 'support_multi_range'(pcontext->range_count > 1 && !g_http_params.support_multi_range))
#params.H#模組加入nginx並安裝完成之後,進入nginx安裝目錄/opt/nginx/conf 內,開啟nginx.conf設定檔。
註:此處的nginx目錄,是在設定nginx時候設定的,請依照各自的設置,開啟檔案。
將下面的配置加入到檔案中,連接埠其他設定不變。
location /group1/m00 { ngx_fastdfs_module; }
註:/group 前面必須有斜線,否則在存取的時候,根路徑為nginx安裝目錄。
2.設定模組參數
在設定完成之後, 如果現在直接啟動nginx那麼會發現,依然無法透過之前上傳成功的圖片位址存取。在百思不得其解情況下,想到了的nginx不是有個logs資料夾,用來記錄登入及錯誤訊息之類的詳情。
那麼開啟error.log檔案看看。 ok 找到問題所在了
明晃晃的兩個 error, 第一行說明了錯誤原因:file /etc/fdfs/mod_fastdfs.conf not exist 在 /etc/fdfs/ 目錄下不存在mod_fastdfs.conf檔案。該檔案在模組fastdfs-nginx-module的src目錄內
既然找到了檔案位置,那麼進入到 /fastdfs-nginx-module/src
#目錄下,將檔案檔案
以上是FastDFS怎麼安裝和設定整合Nginx-1.13.3的詳細內容。更多資訊請關注PHP中文網其他相關文章!