前提條件
libfastcommon-1.0.7.tar.gz
FastDFS_v5.05.tar.gz
fastdfs-nginx-module_v1.16.tar.gz
環境搭建過程
先安裝libfastcommon
①解壓libfastcommon-1.0.7.tar.gz壓縮包
tar -zxvf libfastcommon-1.0.7.tar.gz
②進入壓縮後目錄
cd libfastcommon-1.0.7
③編譯libfastcommon
./make.sh
④安裝libfastcommon
./make.sh install
我這裡出現一個錯誤
/make.anzhuang e 99: perl: command not found ./make.sh: line 100: perl: command not found cc -c -fPIC -o sockopt.lo sockopt.c
這裡是因為沒有安裝perl
yum install perl
⑤安裝完成會在/usr下出現一個lib64檔案夾,裡面有一個libfastcommon.so,把/usr/lib64/libfastcommon.so檔案向/usr/lib/下複制一份
cp /usr/lib64/libfastcommon.so /usr/lib
安裝FastDFS_v5.05.tar.gz
①解壓FastDFS_v5.05.tar.gz壓縮包
tar zxf FastDFS_v5.05.tar.gz
②進入壓縮後目錄
cd FastDFS
③編譯FastDFS
./make.sh
④安裝FastDFS
./make.sh install
安裝後在/usr/bin/目錄下有以fdfs開頭的檔案都是編譯出來的 使用ll fdfs_*檢視
并且會在/etc/fdfs目錄下生成幾個配置檔案
⑤把FastDFS/conf目錄下的所有的配置檔案都複制到/etc/fdfs下。(之前寫的是沒拷貝,然後下面會報錯,這裡修改一下,直接全部拷貝走)
配置tracker服務
①配置base_path:
base_path為日志檔案儲存路徑
原來 base_path=/home/yuqing/fastdfs 這裡需要改為自己的檔案路徑
如:base_path=/home/fastdfs/tracker (這裡的檔案目錄必須存在,如果沒有,需要自己建立,不然會報錯)
②啟動tracker服務
啟動指令:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
重新開機指令:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
配置storage服務
注意:同一個組内的不同的storage的配置要相同(友善同步檔案)
①配置storage屬于哪個group:
group_name=group1 (因為現在先隻是配一個組,是以這裡就為group1)
②配置base_path:
base_path為日志檔案儲存路徑
原來 base_path=/home/yuqing/fastdfs 這裡需要改為自己的檔案路徑,
如:base_path=/home/fastdfs/storage (這裡的檔案目錄必須存在,如果沒有,需要自己建立,不然會報錯)
③配置store_path0:
store_path0為實際的圖檔存放路徑
這裡 store_path0=/home/yuqing/fastdfs 也要改為自己的檔案路徑
如: store_path0=/home/fastdfs/storage (建議與bast_path一樣)
④配置tracker_server:
還有:tracker_server要改為自己的trakcer_server的ip
如:tracker_server=192.168.1.104:22122
(多個tracker_server往下羅列就行了)
⑤啟動storage服務
啟動指令:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
重新開機指令:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
配置client服務
①配置base_path:
base_path:為日志檔案儲存路徑
原來 base_path=/home/yuqing/fastdfs 這裡需要改為自己的檔案路徑,
如:base_path=/home/fastdfs/client (這裡的檔案目錄必須存在,如果沒有,需要自己建立,不然會報錯)
②配置tracker_server:
還有:tracker_server要改為自己的trakcer_server的ip
如:tracker_server=192.168.1.104:22122
測試是否可以上傳圖檔
/usr/bin/fdfs_test /etc/fdfs/client.conf upload anti-steal.jpg
(要在這張圖檔所在的路徑下執行這條指令,或者把圖檔寫成絕對路徑)
③将/usr/lib64/libfdfsclient.so拷貝至/usr/lib下
cp /usr/lib64/libfdfsclient.so /usr/lib
和Nginx內建
安裝Nginx 安裝教程: http://blog.csdn.net/qq_34021712/article/details/68927236
安裝fastdfs-nginx-module插件
①解壓fastdfs-nginx-module_v1.16.tar.gz
tar zxf fastdfs-nginx-module_v1.16.tar.gz
②修改解壓後fastdfs-nginx-module/src/config檔案,把其中的local去掉
③把/root/fastdfs-nginx-module/src/mod_fastdfs.conf檔案複制到/etc/fdfs目錄下,編輯
配置base_path=/tmp預設的,可以修改為自己想配置的位置
配置tracker_server=192.168.1.104:22122
配置url_have_group_name
隻有一個group時配置url_have_group_name = false為預設即可
多個group的配置,配置url_have_group_name= true 即通路位址使用分組名
配置store_path0=/home/fastdfs/storage 圖檔所在路徑
Nginx的配置
①對安裝好的nginx重新config
指令如下:注意:要先關閉所有的nginx程序,在進行下面這一步驟
./configure --add-module=/root/software/fastdfs-nginx-module/src
(/root/software/fastdfs-nginx-module/src路徑為自己解壓tar包後的路徑,根據自己壓縮路徑切換)
make
make install
如果在make install 的時候報異常如下,是因為沒有拷貝/usr/lib64/libfdfsclient.so到/usr/lib下 拷貝後再make install
-lpthread -lcrypt -L/usr/lib -lfastcommon -lfdfsclient -lpcre -lcrypto -lcrypto -lz
/usr/bin/ld: cannot find -lfdfsclient
collect2: ld returned 1 exit status
make[1]: *** [objs/nginx] Error 1
②配置nginx.conf
server {
listen 80;
server_name 192.168.1.104;
location /group([0-9])/M00/ {
#root /home/FastDFS/fdfs_storage/data;
ngx_fastdfs_module;
}
}
③啟動nginx
/usr/local/nginx/sbin/nginx
使用ps -ef|grep nginx 看到隻有一個master程序, cat /usr/local/nginx/logs/error.log 報錯
ERROR - file: ini_file_reader.c, line: 315, include file "http.conf" not exists, line: "#include http.conf"
[2017-04-11 15:58:20] ERROR - file: /usr/local/software/fastdfs-nginx-module/src/common.c, line: 155, load conf file "/etc/fdfs/mod_fastdfs.conf" fail, ret code: 2
2017/04/11 15:58:20 [alert] 14910#0: worker process 14911 exited with fatal code 2 and cannot be respawned
原來是忘記把http.conf和mime.types 拷貝到/etc/fdfs下了,這兩個檔案在解壓的FastDFS_v5.05.tar.gz 的conf目錄下
然後再啟動nginx通路就可以了