FastDFS不是通用的文件系統,只能經過專用的API來訪問,目前提供了C JAVA PHP的API,下面咱們來安裝php擴展。php
讓Fastdfs支持php,在FastDFS的源碼包解壓后里面有個php_client目錄,進入此目錄,參照README進行安裝:nginx
phpize ./configure make make install
安裝完成後會自動把modules/fastdfs_client.so 拷貝到/usr/lib/php5/20090626目錄下,只須要把fastdfs_client.ini copy到/etc/php5/conf.d目錄下,執行php fastdfs_test.php 進行測試,php5 -m也會看到fastdfs_client模塊,在README中還有相關的php函數解釋,能夠進行測試。web
測試:shell
建立一個test-file文件,內容:I'm test file,而後使用fdfs_upload_file命令上傳,結果以下:apache
編寫test.php測試界面:centos
<?php $file_info=fastdfs_get_file_info1('group1/M00/00/00/CgEGflArNZmlRB8kAAAADvvpdFc8638629'); var_dump($file_info); ?>
測試結果以下:瀏覽器
安裝apache2擴展:dom
在每臺storage server上部署web server,直接對外提供HTTP服務,tracker server上不須要部署web server,若是請求文件在當前storage上不存在,經過文件ID反解出源storage,直接請求源storage,FastDFS擴展模塊不依賴於FastDFS server,能夠獨立存在!函數
在storage上安裝apache2測試
apt-get install apache2 apache2.2-common apache2.2-bin apache2-utils apache2-mpm-prefork libapache2-mod-php5 apache2-prefork-dev
下載擴展包
wget http://fastdfs.googlecode.com/files/fastdfs-apache-module_v1.10.tar.gz
因爲默認的包的配置都是centos下的配置,因此在安裝前須要修改一下Makefile文件
tar zxvf fastdfs-apache-module_v1.10.tar.gz cd fastdfs-apache-module/src vi Makefile #相對應的變量改爲如下值,只針對debian6下apt方式安裝的apache2 APACHE_BASE_PATH=/usr/share/apache2/ APXS=/usr/bin/apxs2 APACHECTL=/usr/bin/apachectl
安裝
make make install
修改apache2配置
#建立mod_fastdfs.load文件 vi /etc/apache2/mods-available/mod_fastdfs.load LoadModule fastdfs_module /usr/lib/apache2/modules/mod_fastdfs.so <Location /M00> sethandler fastdfs </Location>
#加載mod_fastdfs.so模塊 a2enmod mod_fastdfs
#修改虛擬主機配置,修改相關變量值,增長alias行配置 vi /etc/apache2/sites-enabled/000-default DocumentRoot /opt/fdfs/data/ <Directory /opt/fdfs/data/> alias /group1/M00 /opt/fdfs/data
修改mod_fastdfs.conf配置
vi /etc/fdfs/mod_fastdfs.conf base_path=/opt/fdfs tracker_server=x.x.x.x:22122 store_path0=/opt/fdfs
配置生效
/etc/init.d/apache2 restart
測試先上傳一個圖片:
fdfs_upload_file /etc/fdfs/client.conf 2.jpg
返回文件ID:group1/M00/00/00/CgEGflArRqG5Nsu_AACLn3wEca8908.jpg
在瀏覽器中測試以下:
添加nginx擴展:
下載擴展包:
wget http://fastdfs-nginx-module.googlecode.com/files/fastdfs-nginx-module_v1.10.tar.gz
因爲nginx的模塊都爲靜態加載,因此須要編譯安裝nginx,過程以下:
./configure --prefix=/etc/nginx2/ --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-file-aio --with-ipv6 --add-module=/root/fastdfs-nginx-module/src make && make install
修改nginx.conf,添加以下內容:
vi /etc/nginx2/conf/nginx.conf #在server字段下添加如下內容 location /M00 { root /opt/fdfs/data; ngx_fastdfs_module; }
/etc/fdfs/mod_fastdfs.conf配置文件的修改和apache2一致,通過測試能夠正常工做