1.安装gcc(c语言开发,需要使用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(调度服务器)
备注:tracker运行程序就是fasfdfs,fastDFS安装成功,只需要修改/etc/fdfs/tracker.conf
配置文件[目录:/etc/fdfs]
步骤一,修改base_path存储基本路径
base_path=/home/fastdfs //fastdfs需要手动创建,fastdfs在home目录下
步骤二,修改存在组
store_group=group1
步骤三,创建/home/fastdfs文件[目录:/home]
命令:mkdir fastdfs
12.启动tracker
命令:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
结果:waiting for pid [9077] exit ...
starting ...
13.安装storage(存储服务器)
备注:storage和fastDFS都是使用同一个程序。只需要配置storage配置文件即可。
配置storage.conf[目录:/etc/fdfs]
步骤一,配置组名
group_name=group1 //必须和tracker的组名相同
步骤二,配置基本存储路径base_path
base_path=/home/fastdfs
步骤三,配置文件存储路径
store_path0=/home/fastdfs/storage_path //storage_path需要手动创建,如果有多个存储路径,就可以依次往下顺延
步骤四,修改连接tracker服务器地址
tracker_server=127.0.0.1:22122
步骤五,创建文件存储路径storage_path[目录:/home/fastdfs]
命令:mkdir storage_path
14.启动storage服务
命令:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
结果:waiting for pid [9132] exit ...
starting ...
15.配置FastDFS的client.conf配置文件[目录:/usr/local/src/fastdfs-5.05/conf][目录:/etc/fdfs/]
步骤一,修改路径
#filesbase_path=/home/fastdfs
步骤二,修改调度服务器地址
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
结果:example file url:http://192.168.66.66/group1/M00/00/00/wKhCQlc1uJOAYKOhAABdrZgsqUU338_big.jpg
备注:图片已经上传成功,返回图片地址,但是不能使用浏览器访问,浏览器访问任何资源都必须遵循http协议,通过nginx访问分布式图片服务器,需要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
查看进程命令:ps -el | grep fdfs
启动storage命令:/etc/init.d/fdfs_storaged start
查看进程命令:ps -el | grep fdfs
启动nginx命令:/usr/local/nginx/sbin/nginx
停止命令:
停止tracker命令:/etc/init.d/fdfs_trackerd stop
关闭storage命令:/etc/init.d/fdfs_storaged stop
关闭nginx命令:/usr/local/nginx/sbin/nginx -s stop
删除上传文件:
/usr/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/地址
29.java连接FastDFS服务器
配置文件内容:
connect_timeout = 20 //连接超时时间
network_timeout = 30 //网络超时时间
charset = ISO8859-1 //字符集
http.tracker_http_port = 8888 //服务端口
http.anti_steal_token = no //防盗链Token
http.secret_key = FastDFS1234567890 //密钥:默认
tracker_server = 192.168.223.129:22122 //调度服务器
注意:
防火墙必须开启8888端口,22122端口,23000端口
防火墙未开启23000端口时:出现java.net.SocketTimeoutException: connect timed out错误!