最近项目中需要用到文件服务,于是就开始了解fastDFS,并在linux中搭建一个单机
的文件服务。安装过程中也遇到一些问题,于是记录下来,方便以后查询。
fastDFS是由国人开源的一个分布式文件系统。在[github]以(https://github.com/happyfish100/fastdfs)上可以搜到源码以及相关的下载包。
安装fastDFS需要分别安装fastdfs-nginx-module,fastdfs,nginx,libfastcommon。我安装的fastDFS版本是v5.11,相关的tar.gz在我的下载中。
安装过程:
1.将所有的tar.gz文件上传到目录中。我新建的目录是/fileservice/fast
在这里插入图片描述
相关文件的上传位置如下图:
在这里插入图片描述
安装gcc依赖:yum -y install gcc make
安装libfastcommon
进入fast目录:cd /fileservice/fast
解压文件: tar -zxvf libfastcommon-1.0.35.tar.gz
进入libfast文件目录:cd libfastcommon-1.0.35
执行编译:./make.sh
安装:./make.sh install
在这里插入图片描述
安装fastDFS
进入fast目录:cd /fileservice/fast
解压文件:tar -zxvf V5.11.tar.gz
进入解压后的目录:cd fastdfs-5.11
执行编译:./make.sh
安装:./make.sh install
在这里插入图片描述
安装成功后查看所有可执行的fast命令:ls -la /usr/bin/fdfs*
在这里插入图片描述
配置Tracker服务
进入fast目录,新建文件tracker用于存放图片以及日志:
cd /fileservice/fast
mkdir tracker
cd /etc/fdfs
进入/etc/fdfs目录进行配置,其中有client.conf.sample(配置客户端的配置文件),storage.conf.sample(storage配置文件),tracker.conf.sample(tracker的配置文件)。
在这里插入图片描述
拷贝tracker.conf.sample到tracker.conf:cp tracker.conf.sample tracker.conf (拷贝完可以删除tracker.conf.sample)
编辑tracker.conf:vim tracker.conf修改相关参数

base_path=/fileservice/fast/tracker  #tracker存储data和log的跟路径,必须提前创建好
port=22122 #tracker默认22122
http.server_port=8888 #http端口,需要和nginx相同

启动tracker(支持start|stop|restart):

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

到/fileservice/fast/tracker/logs中查看trackerd.log,查看日志:
在这里插入图片描述
查看端口情况:netstat -apn|grep fdfs
在这里插入图片描述

可能遇到的报错:
/usr/bin/fdfs_trackerd: error while loading shared libraries: libfastcommon.so: cannot open shared object file: No such file or directory
解决方案:建立libfastcommon.so软链接
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so

配置Storage服务

在/fileservice/fast建一个storage文件夹

cd /fileservice/fast
mkdir storage

进入/etc/fdfs,拷贝storage.conf.sample到storage.conf

cd /etc/fdfs
cp storage.conf.sample storage.conf

编辑storage.conf修改配置内容如下:

base_path=/fileservice/fast/storage   #storage存储data和log的跟路径,必须提前创建好
port=23000  #storge默认23000,同一个组的storage端口号必须一致
group_name=group1  #默认组名,根据实际情况修改
store_path_count=1  #存储路径个数,需要和store_path个数匹配
store_path0=/fileservice/fast/storage  #如果为空,则使用base_path
tracker_server=114.116.47.34:22122 #配置该storage监听的tracker的ip和port

启动storage(支持start|stop|restart):/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
进入/fileservice/fast/storage/logs中查看storaged.log日志:
在这里插入图片描述
查看端口情况:netstat -apn|grep fdfs(需打开22122.23000端口)
在这里插入图片描述
通过monitor来查看storage是否成功绑定:/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
在这里插入图片描述
安装nginx及fastdfs-nginx-module
进入/fileservice/fast/中,解压nginx及fastdfs-nginx-module:

cd /fileservice/fast/
tar -zxvf nginx-1.15.2.tar.gz
tar -xvf V1.20.tar.gz

进入fastdfs-nginx-module中修改配置文件:

cd /fileservice/fast/fastdfs-nginx-module-1.20/src
vim config

修改内容:

ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

安装pcre依赖:

cd /fileservice/thirdlib
tar -zxvf pcre-8.42.tar.gz
cd pcre-8.42
./configure
make
make install

安装zlib依赖:

cd /fileservice/thirdlib
tar -xvf zlib-1.2.11.tar
cd zlib-1.2.11
./configure
make
make install

安装openssl依赖

cd /fileservice/thirdlib
tar -zxvf openssl-1.1.1.tar.gz
cd openssl-1.1.1
./config
make
make install

配置client
cd /etc/fdfs
cp client.conf.sample client.conf
vim client.conf

base_path=/fileservice/fast/tracker //tracker服务器文件路径
tracker_server=114.116.47.34:22122 //tracker服务器IP地址和端口号
http.tracker_server_port=8888 # tracker服务器的http端口号,必须和tracker的设置对应起来

进入解压后的nginx文件夹:cd /fileservice/fast/nginx-1.15.2
配置并加载fastdfs-nginx-module模块:(/fileservice/nginx为nginx的安装目录,/fileservice/fast/fastdfs-nginx-module-1.20/src为fastdfs-nginx-module解压后的目录)
./configure --prefix=/fileservice/nginx --add-module=/fileservice/fast/fastdfs-nginx-module-1.20/src/ --with-pcre=/fileservice/thirdlib/pcre-8.42 --with-zlib=/fileservice/thirdlib/zlib-1.2.11 --with-openssl=/fileservice/thirdlib/openssl-1.1.1
编译:make
安装:make install

配置nginx:
进入nginx的安装目录进行配置修改:
cd /fileservice/nginx/conf
vim nginx.conf
修改端口及location:
location ~/M00{
root /fileservice/fast/storage/data;#配置的图片存放的地址
ngx_fastdfs_module;
}
在这里插入图片描述
拷贝文件:
cd /fileservice/fast/fastdfs-5.11/conf
cp mime.types http.conf /etc/fdfs/

配置mod_fastdfs.conf:
进入/etc/fdfs/中编辑mod_fastdfs.conf文件(如果没有从/fileservice/fast/fastdfs-nginx-module-1.20/src中复制)

base_path=/fileservice/fast
tracker_server=114.116.47.34:22122 #tracker的地址
url_have_group_name=true #url是否包含group名称
storage_server_port=23000 #需要和storage配置的相同
store_path_count=1  #存储路径个数,需要和store_path个数匹配
store_path0=/fileservice/fast/storage #文件存储的位置

进入nginx的目录启动nginx:
cd /fileservice/nginx/sbin/
./nginx

测试上传文件:
通过在/fileservice中放一个2.jpg文件,进入/fileservice;
上传:/usr/bin/fdfs_upload_file /etc/fdfs/client.conf 2.jpg
在这里插入图片描述

访问图片:
http://114.116.47.34:8888/group1/M00/00/00/wKgAk1zTm9qAYl2HAABIrdngbwg205.jpg 如果可以成功则说明fast安装成功。
删除文件:
/usr/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgAk1zTnC-ACUV9AABIrdngbwg193.jpg

关闭fast:
killall fdfs_trackerd
killall fdfs_storaged

设置开机自启动:
vim /etc/rc.d/rc.local
在其中加入以下代码:

# fastdfs start
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

# nginx start
/fileservice/nginx/sbin/nginx

修改文件权限(centos7中):chmod +x /etc/rc.d/rc.local

Logo

更多推荐