FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
一、安装libevent 或者libfastcommon
(1)FastDFS 内部绑定了 libevent 作为 http 服务器 ,在V2.X版本必须安装 libevent
如果已经安装了 libevent,请确认安装路径是 /usr , 因为 FastDFS 在编译源程序时,需要到此目录下查找一些依赖文件,否则编译 FastDFS 会出错 。
如果不是,建议首先卸载 libevent ,然后安装到 /usr 下。下载地址: http://monkey.org/~provos/libevent/
fastdfsv5.0.5不再依赖libevent,而是依据libfastcommon;
(2)本次安装说明
fastdfs安装在服务器192.168.0.17上,端口为22122;版本为fastdfsv5.0.5,java客户端版本jar包为fastdfs_client.jar,版本为1.25,
nginx-1.8.0,fastdfs-nginx-module_v1.16,以及依赖包zlib-1.2.8和pcre-8.36。
二、安装步骤;
1 wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz (在线获取libfastcommon)
2、libfastcommon安装:
cp V1.0.7.tar.gz /usr/local/
tar -zxvf V1.0.7.tar.gz
cd libfastcommon-1.0.7
./make.sh
./make.sh install
注意:我们这里使用的是最新版本的fastdfs,由于最新版的fastdfs取消了自带的http功能,所以这里我们就不对make.sh做修改。
libfastcommon.so默认安装到了/usr/lib64/libfastcommon.so,而FastDFS主程序设置的lib目录是/usr/local/lib,所以设置软连接
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
3、安装FastDFS:
(1)tar -zxvf V5.05.tar.gz -C /usr/local
cd /usr/local/FastDFS/
./make.sh
./make.sh install
cd /etc/fdfs
过程中没有报错,并且打开 /etc/fdfs 这个目录发现有配置文件存在,就说明安装成功了。
(2)配置文件设置:
配置文件解释:
tracker.conf //负责均衡调度服务器配置文件
client.conf //客户端上传配置文件
http.conf //http服务器配置文件
storage.conf//文件存储服务器配置文件
mime.types //文件类型配置文件
把配置文件都拷到etc/fdfs/目录下:
cp tracker.conf.sample tracker.conf
cp storage.conf.sample storage.conf
cp client.conf.sample client.conf
详细设置见附件
tracker.conf配置中要修改的几个项:
bind_addr=192.168.0.17
port=22122
http.server_port=8080
storage.conf配置中要修改的几个项:
group_name=group1
bind_addr=192.168.0.17
port=23000
base_path=/usr/local/fastdfsData (fastdfsData文件目录得存在,存放数据)
store_path0=/usr/local/fastdfsData
tracker_server=192.168.0.17:22122
http.server_port=8080
(3)启动关闭
启动tracker storage.conf
fdfs_trackerd /etc/fdfs/tracker.conf
fdfs_storaged /etc/fdfs/storage.conf
关闭:
killall fdfs_trackerd
killall fdfs_storaged
(4)测试文件上传:
fdfs_upload_file /etc/fdfs/client.conf /usr/local/join.jpg
如果显示
group1/M00/00/00/wKgAEVaAobCAN_ArAACl4tigN9Y909.jpg
则说明安装成功
(5)几个配置端口(这几个端口在高版本貌似无关紧要)
java客户端连接:
http.tracker_http_port = 8080
client.conf:
http.tracker_server_port=8080
tracker:
http.server_port=8080#设置http端口号 注意,这个配置在fastdfs5.05这个版本中已经不用配置,不用管这个!
storage.conf:
http.server_port=8888 #设置http端口号 注意,这个配置在fastdfs5.05这个版本中已经不用配置,不用管这个!
(6)FastDFS Version 4.05 remove embed HTTP support,FastDFS_4.0.5及以上版本取消自带的http功能,所以得安装第三方如apache或nginx的web服务。
三,安装nginx插件及nginx服务器(如果不安装,只能上传,不能下载(不用命令),浏览器无法访问):
4、安装nginx插件:
(1)安装
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
cd fastdfs-nginx-module/src/
(2)config文件修改:
vi config
修改如下配置,我这里原来是
CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
改成
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
这个是很重要的,不然在nginx编译的时候会报错的,我看网上很多在安装nginx的fastdfs的插件报错,都是这个原因,而不是版本不匹配。
cp mod_fastdfs.conf /etc/fdfs
修改配置
group_name=group1
tracker_server=192.168.0.17:22122
store_path0=/usr/local/fastdfsData
base_path=/usr/local/fastdfsData
url_have_group_name = true
2)、配置文件服务器的软连接
ln -s /usr/local/fastdfsData/data /usr/local/fastdfsData/data/M00 (配置文件中stoage存放数据的路径)
同时将以下两个文件复制到/etc/fdfs/
cp /usr/local/FastDFS/conf/http.conf /etc/fdfs/
cp /usr/local/FastDFS/conf/mime.types /etc/fdfs/
5、nginx安装:
在每个Storage服务器上安装Nginx
(1)pcre安装:
tar -zxvf pcre-8.36.tar.gz
cd pcre-8.36
./configure
make && make install
cd ../
ln -s /usr/local/lib/libpcre.so.1 /lib64/
(2)zlib安装:
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make && make install
cd ../
(3)nginx安装:
tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module/src
make
make install
cd /usr/local/nginx/conf
vi nginx.conf
在server中添加
location /group1/M00{
root /usr/local/fastdfsData/data;
ngx_fastdfs_module;
}
启动:
/usr/local/nginx/sbin/nginx
执行命令启动nginx: /usr/local/nginx/sbin/nginx ,如果/usr/local/nginx/logs/error.log中没有报错,同时访问192.168.0.17:8080这个url能看到 nginx的欢迎页面,说明,说明nginx安装成功。
有时候java程序里调用不到,那可能是开启了防火墙,关掉防火墙就可以了
安装完成。