1.安裝gcc(c語言開發(fā),需要使用gcc編譯)
命令:yum install make cmake gcc gcc-c++
2.安裝libevent(fastdfs依賴類庫)
命令:yum -y install libevent-devel
3.下載libfastcommon源碼[目錄:/usr/local/src/]
4.解壓源碼[目錄:/usr/local/src/]
命令:tar -zxvf libfastcommonV1.0.7.tar.gz
5.編譯安裝[目錄:/usr/local/src/libfastcommon-1.0.7]
命令:./make.sh && ./make.sh install
6.拷貝libfastcommon.so文件到/usr/lib[目錄:/usr/lib64]
命令:cp /usr/lib64/libfastcommon.so /usr/lib
注意:libfastcommon安裝好后會自動將庫文件拷貝至/usr/lib64下酝润,由于FastDFS程序引用usr/lib目錄所以需要將/usr/lib64下的庫文件拷貝至/usr/lib下
7.下載FastDFS源碼[目錄:/usr/local/src]
8.解壓源碼[目錄:/usr/local/src]
命令:tar -zxvf FastDFS_v5.05.tar.gz
9.編譯安裝
命令:./make.sh && ./make.sh install
10.拷貝配置文件[目錄:/usr/local/src/fastdfs-5.05/conf]
命令:cp * /etc/fdfs/
11.安裝tracker(調(diào)度服務(wù)器)
備注:tracker運(yùn)行程序就是fasfdfs燎竖,fastDFS安裝成功,只需要修改/etc/fdfs/tracker.conf
配置文件[目錄:/etc/fdfs]
步驟一,修改base_path存儲基本路徑
base_path=/home/fastdfs ? ?//fastdfs需要手動創(chuàng)建要销,fastdfs在home目錄下
步驟二,修改存在組
store_group=group1
步驟三,創(chuàng)建/home/fastdfs文件[目錄:/home]
命令:mkdir fastdfs
12.啟動tracker
命令:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
結(jié)果:waiting for pid [9077] exit ...
starting ...
13.安裝storage(存儲服務(wù)器)
備注:storage和fastDFS都是使用同一個(gè)程序构回。只需要配置storage配置文件即可。
配置storage.conf[目錄:/etc/fdfs]
步驟一,配置組名
group_name=group1 ? ?//必須和tracker的組名相同
步驟二,配置基本存儲路徑base_path
base_path=/home/fastdfs
步驟三,配置文件存儲路徑
store_path0=/home/fastdfs/storage_path //storage_path需要手動創(chuàng)建,如果有多個(gè)存儲路徑疏咐,就可以依次往下順延
步驟四,修改連接tracker服務(wù)器地址
tracker_server=127.0.0.1:22122
步驟五,創(chuàng)建文件存儲路徑storage_path[目錄:/home/fastdfs]
命令:mkdir storage_path
14.啟動storage服務(wù)
命令:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
結(jié)果:waiting for pid [9132] exit ...
starting ...
15.配置FastDFS的client.conf配置文件[目錄:/usr/local/src/fastdfs-5.05/conf][目錄:/etc/fdfs/]
步驟一,修改路徑
#filesbase_path=/home/fastdfs
步驟二,修改調(diào)度服務(wù)器地址
tracker_server=127.0.0.1:22122
16.測試上傳[目錄:/usr/local/src/fastdfs-5.05/conf]
命令:/usr/bin/fdfs_test client.conf upload anti-steal.jpg
結(jié)果:example file url:http://192.168.66.66/group1/M00/00/00/wKhCQlc1uJOAYKOhAABdrZgsqUU338_big.jpg
備注:圖片已經(jīng)上傳成功纤掸,返回圖片地址,但是不能使用瀏覽器訪問,瀏覽器訪問任何資源都必須遵循h(huán)ttp協(xié)議,通過nginx訪問分布式圖片服務(wù)器浑塞,需要nginx和FASTDFS整合
17.安裝Nginx
18.整合nginx和fastDFS
19.下載FastDFS-nginx-module[目錄:/usr/local/src]
20.解壓源碼[目錄:/usr/local/src]
命令:tar–zxvf fastdfs-nginx-module_v1.16.tar.gz
21.修改config配置文件[目錄:/usr/local/src/fastdfs-nginx-module/src]
兩處位置去掉錯誤路徑借跪,usr/local/include改為usr/include
22.拷貝mod_fastdfs.conf到etc/fdfs[目錄:/usr/local/src/fastdfs-nginx-module/src]
命令:cp mod_fastdfs.conf /etc/fdfs/
23.修改mod_fastdfs.conf配置文件[目錄:/usr/local/src/fastdfs-nginx-module/src][目錄:/etc/fdfs/]
a)base_path=/home/fastdfs/storage_path //此處必須是存儲路徑
b)tracker_server=127.0.0.1:22122
c)group_name=group1 //和前面配置組名保持一致
d)store_path0=/home/fastdfs/storage_path //M00
e)url_have_group_name = true //允許使用組名
24.拷貝庫文件[目錄:usr/lib64]
備注:將usr/lib64目錄下庫文件libfdfsclient.so拷貝到usr/lib目錄下
命令:cp /usr/lib64/libfdfsclient.so /usr/lib
25.整合(module添加nginx)[目錄:/usr/local/src/nginx-1.8.0]
命令:./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/
26.重新安裝編譯nginx[目錄:/usr/local/src/nginx-1.8.0]
命令:make && makeinstall
27.修改Nginx配置文件[目錄:/usr/local/src/nginx-1.8.0/conf]
listen 8888; //nginx里的端口要和配置FastDFS存儲中的storage.conf文件配置一致
server_name 127.0.0.1;
location /group1/M00/ {
#root html;
#index index.html index.htm;
ngx_fastdfs_module;
}
28.重新啟動Nginx
啟動命令:
啟動tracker命令:/etc/init.d/fdfs_trackerd start
查看進(jìn)程命令:ps -el | grep fdfs
啟動storage命令:/etc/init.d/fdfs_storaged start
查看進(jìn)程命令:ps -el | grep fdfs
啟動nginx命令:/usr/local/nginx/sbin/nginx
停止命令:
停止tracker命令:/etc/init.d/fdfs_trackerd stop
關(guān)閉storage命令:/etc/init.d/fdfs_storaged stop
關(guān)閉nginx命令:/usr/local/nginx/sbin/nginx -s stop
刪除上傳文件:
/usr/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/地址
29.java連接FastDFS服務(wù)器
配置文件內(nèi)容:
connect_timeout = 20? ? //連接超時(shí)時(shí)間
network_timeout = 30? ? //網(wǎng)絡(luò)超時(shí)時(shí)間
charset = ISO8859-1? ? //字符集
http.tracker_http_port = 8888 ? ?//服務(wù)端口
http.anti_steal_token = no? ? //防盜鏈Token
http.secret_key = FastDFS1234567890 ? ?//密鑰:默認(rèn)
tracker_server = 192.168.223.129:22122 ? ?//調(diào)度服務(wù)器
注意:
防火墻必須開啟8888端口,22122端口,23000端口
防火墻未開啟23000端口時(shí):出現(xiàn)java.net.SocketTimeoutException: connect timed out錯誤!