centos搭建FastDFS服務器!

CentOS fastDFS結合nginx的配置以及php端的調用方法  

2013-04-18 22:54:55|  分類: 默認分類 |  標籤:centos  fastdfs  nginx  php  |字號 訂閱 php

fastDFS的介紹就不說了  想了解的人直接百度。 html

源碼: http://code.google.com/p/fastdfs/ nginx

論壇: http://bbs.chinaunix.net/forum-240-1.html git

配置說明: http://bbs.chinaunix.net/thread-1941456-1-1.html github

開始吧 web


-------------------------------------------------- apache

環境: centos

CentOS 6.3 x64      3臺 瀏覽器

FastDFS_v4.04.tar.gz      http://fastdfs.googlecode.com/files/FastDFS_v4.04.tar.gz 服務器

fastdfs-nginx-module_v1.13.tar.gz   http://fastdfs.googlecode.com/files/fastdfs-nginx-module_v1.13.tar.gz

libevent-1.4.14b-stable.tar.gz   https://github.com/downloads/libevent/libevent/libevent-1.4.14b-stable.tar.gz

nginx-1.0.10.tar.gz   http://nginx.org/download/nginx-1.0.10.tar.gz

pcre-8.20.tar.gz   http://sourceforge.net/projects/pcre/files/pcre/8.20/pcre-8.20.tar.gz


tracker server  IP: 192.168.41.160

storage server IP: 192.168.41.162

storage server IP: 192.168.41.163

PHP客戶端 IP: 192.168.41.156

--------------------------------------------------

一、安裝部署

1.0.1安裝依賴包libevent  (全部機器 )

tar zxvf  libevent-1.4.14b-stable.tar.gz

cd libevent-1.4.14b-stable

./configure --prefix=/usr/local/libevent

make

make install


1.0.2安裝fastDFS ( tracker、 storage、php端都按照此方法 ) (全部機器)

tar zxvf  FastDFS_v4.04.tar.gz

cd FastDFS

vi make.sh   //   tracker才須要,storage、php不用操做此步驟

//64行左右 刪除#號開啓WITH_HTTPD和WITH_LINUX_SERVICE 

//開啓自帶的http,聽說最新版已經取消自帶的http功能

./make.sh C_INCLUDE_PATH=/usr/local/libevent/include LIBRARY_PATH=/usr/local/libevent/lib 

./make.sh install

//到這裏安裝就完畢了

//能夠看到fastDFS的相關配置文件

ls /etc/fdfs/

tracker.conf   // 負責均衡調度服務器配置文件

client.conf   // 客戶端上傳配置文件

http.conf // http服務器配置文件

storage.conf // 文件存儲服務器配置文件

mime.types //文件類型配置文件


1.0.3啓動fastDFS tracker     ( 192.168.41.160)

//建立目錄,用於記錄  tracker 日誌、storage server等信息。

mkdir -m 777 -p /www/fastDFS

//修改 tracker.conf

vi /etc/fdfs/ tracker.conf

 把 22  行 改爲  base_path=/www/fastDFS

 把 222行 改爲 http.server_port=8088        //若是本機沒用到8080能夠不修改

 把 244行 改爲 #include http.conf        //注意,改完前面有個#,不要所有去掉

//啓動 tracker

/usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf  

(若是你的centos是64位的啓動時候會報錯!! 提示找不到libevent-2.0.so.5) 因此執行命令:

ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5

//查看端口是否開啓,看到22122 和8088就說明啓動正常。若是沒有,查看/www/ fastDFS/logs裏的日誌

netstat -tnlp

CentOS fastDFS結合nginx的配置以及php端的調用方法 - 李坤山 - 李坤山VS斷懸

1.0.4啓動fastDFS  storage  ( 192.168.41.162  192.168.41.163)

//建立目錄,用於存儲文件

mkdir -m 777 -p /www/ fastDFS

//修改 storage.conf

vi /etc/fdfs/storage.conf

把 33  行   改爲 base_path=/www/fastDFS

把 100行  改爲  store_path0=/www/fastDFS

把 109行  改爲  tracker_server=192.168.41.160:22122 //根據本身的IP

把 252行  改爲  http.disabled=true     //由於咱們要用nginx了,這個就關閉它

把 259行  改爲  http.server_port=80

//啓動 storage    

/usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf

//查看端口是否開啓,看到23000就說明啓動正常。若是沒有,查看/www/ fastDFS/logs裏的日誌

CentOS fastDFS結合nginx的配置以及php端的調用方法 - 李坤山 - 李坤山VS斷懸

 //這個時候能夠看下  storage與  tracker的鏈接狀況

netstat -tnlpa| grep 22122

CentOS fastDFS結合nginx的配置以及php端的調用方法 - 李坤山 - 李坤山VS斷懸  


 

 二、測試上傳

2.0.1  配置客戶端上傳文件 (192.168.41.160)

vi /etc/fdfs/client.conf

把 10 行 改爲 base_path= /www/fastDFS

把 14 行 改爲  tracker_server=192.168.41.160:22122   //根據本身的IP

把 29 行 改爲   http.tracker_server_port=8088 //這個必定要跟 tracker.conf裏面配置的同樣

把 32 行  改爲 #include http.conf       //注意,改完前面有個#,不要所有去掉

//隨意上傳個文件

echo 'fastDFS_test' >/tmp/test.txt

fdfs_test /etc/fdfs/client.conf upload /tmp/test.txt

CentOS fastDFS結合nginx的配置以及php端的調用方法 - 李坤山 - 李坤山VS斷懸

//看到相似上面的返回,說明文件已經成功上傳。若是不是,說明配置出錯了,查看日誌。

//記錄下這個URL:http://192.168.41.160:8080/group1/M00/00/00/wKgpolFwG-WANaKzAAAADVt_Kt4300_big.txt


三、nginx配置

3.0.1  nginx拓展模塊安裝 ( 192.168.41.162  192.168.41.163 )

//nginx的安裝比較簡單,這裏不作解釋

//曾經有過疑問,既然文件是直接被保持在storage服務器上,那直接用nginx就能夠訪問了,爲何還要添加這個模塊?

//答:

//使用擴展模塊來解決文件同步延遲問題

//若是請求文件在當前storage上不存在,經過文件ID反解出源storage,直接請求源storage

//tracker server上不須要任何web server

//在每臺storage server上部署web server,直接對外提供HTTP服務

//目前已提供apache和nginx擴展模塊

//推薦使用擴展模塊方式

//假設nginx已經在系統被安裝過。

tar zxvf fastdfs-nginx-module_v1.13.tar.gz

/usr/local/nginx/sbin/nginx -V

//運行後獲得原來的編譯參數,如:

// --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-openssl=/root/openssl-1.0.0d

cd nginx-1.0.10

./configure  --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-openssl=/root/openssl-1.0.0d  --add-module=/root/fastdfs-nginx-module/src       // fastdfs-nginx-module的路徑根據本身的環境修改

make

make install

cp /root/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

vi /etc/fdfs/mod_fastdfs.conf

把 3  行  改爲connect_timeout=20      //默認2秒有點小,可改可不改

把 10行  改爲 base_path=/www/fastDFS/  

把 40行  改爲 tracker_server=192.168.41.160:22122 // //根據本身的IP

把 62行  改爲 store_path0=/www/fastDFS

把53行 改爲 url_have_group_name = true (若是不修改用瀏覽器訪問的時候加上group1的時候不能訪問報400錯誤!!)

ln -s  /www/fastDFS/data    /www/fastDFS/data/M00

//編輯nginx.conf

 vi /usr/local/nginx/conf/nginx.conf

//在server段添加以下內容:

location /group1/M00/ { alias /www/fastDFS/data/; ngx_fastdfs_module; }

/usr/local/nginx/sbin/nginx -t

/usr/local/nginx/sbin/nginx -s stop

/usr/local/nginx/sbin/nginx

//這裏直接用 usr/local/nginx/sbin/nginx -s  reload 有時候會出現nginx沒辦法訪問。

3.0.2  nginx拓展模塊驗證 ( 192.168.41.162  192.168.41.163 )

//用瀏覽器打開咱們上面記錄的URL:

//http://192.168.41.160:8080/group1/M00/00/00/wKgpolFwG-WANaKzAAAADVt_Kt4300_big.txt

    //訪問 tracker 會被302跳轉到一臺可用的 storage上面去請求

CentOS fastDFS結合nginx的配置以及php端的調用方法 - 李坤山 - 李坤山VS斷懸

//固然,在另外一個節點上也是能夠訪問的,手動更改url:

CentOS fastDFS結合nginx的配置以及php端的調用方法 - 李坤山 - 李坤山VS斷懸

四、PHP客戶端配置

 

4.0.1  php拓展模塊安裝 (PHP端)  

//php的客戶端安裝也會依賴 FastDFS自己的一些庫文件,因此請保證已經安裝了 FastDFS。

cd /root/FastDFS/php_client/

/usr/local/php/bin/phpize

./configure  --with-php-config=/usr/local/php/bin/php-config

make

make install

cat fastdfs_client.ini >> /usr/local/php/etc/php.ini

 //驗證模塊是否被正常加載

 /usr/local/php/bin/php -m |grep fastdfs_client

 //若是有返回,就說明成功。

cp ../conf/etc/fdfs/ /etc/fdfs/

vi /etc/fdfs//etc/fdfs/

把 14 行改爲    tracker_server=192.168.41.160:22122

 把 29 行改爲  http.tracker_server_port=8088

 //重啓加載php

/usr/local/php/sbin/php-fpm  reload

 

4.0.2  php拓展模塊驗證 (PHP端)  

 

//隨意建立個文件,上傳用  

 

echo 'php_upload_test'  >/tmp/upload.txt  


//建立個上傳test.php  內容以下:  

 

 

<?php 

var_dump(function_exists('fastdfs_storage_upload_by_filename')); 

$ret = fastdfs_storage_upload_by_filename('  

/tmp/upload.txt  

'); 

var_dump($ret); 

?>

//執行:

/usr/local/php/bin/php test.php

CentOS fastDFS結合nginx的配置以及php端的調用方法 - 李坤山 - 李坤山VS斷懸  

  //看到上面的返回,應該很熟悉吧,說明成功了。用瀏覽器訪問下:  

CentOS fastDFS結合nginx的配置以及php端的調用方法 - 李坤山 - 李坤山VS斷懸  

關於fastDFS php插件的使用方法和函數調用方法,能夠查看/root/FastDFS/php_client/README 


OK。


fastdfs 配置文件詳解 http://my.oschina.net/guol/blog/72845

安裝遇到的錯誤:http://blog.sina.com.cn/s/blog_69b226650100wyn0.html

 http://192.168.1.220:8080/group1/M00/00/00/wKgB3FIvWm6AF_HmAAu-28LMRow_big.tar.gz

相關文章
相關標籤/搜索