FastDFS一步步搭建文件管理系统
1、环境virtualBox+CentOs7,前提必须确保主机和虚拟机网络可以互通,并且虚拟机可以访问网络
2、centos下创建目录/softpackages
3、下载安装 libfastcommon,libfastcommon是从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库,基础环境
下载libfastcommon
解压
进入libfastcommon-1.0.7,编译、安装
注意:如果出现上面情况请先安装perl
然就可以顺利编译和安装了
libfastcommon.so 安装到了/usr/lib64/libfastcommon.so,但是FastDFS主程序设置的lib目录是/usr/local/lib,所以需要创建软链接。
4、下载安装FastDFS
下载FastDFS
解压、编译、安装
默认安装方式安装后的相应文件与目录
服务脚本:
/etc/init.d/fdfs_storaged
/etc/init.d/fdfs_tracker
配置文件(这三个是作者给的样例配置文件) :
/etc/fdfs/client.conf.sample
/etc/fdfs/storage.conf.sample
/etc/fdfs/tracker.conf.sample
命令工具在 /usr/bin/ 目录下:
FastDFS 服务脚本设置的 bin 目录是 /usr/local/bin, 但实际命令安装在 /usr/bin/ 下
两种方式:
一、修改FastDFS 服务脚本中相应的命令路径,也就是把 /etc/init.d/fdfs_storaged 和 /etc/init.d/fdfs_tracker 两个脚本中的 /usr/local/bin 修改成 /usr/bin。
# vim fdfs_trackerd
使用查找替换命令进统一修改:%s+/usr/local/bin+/usr/bin
# vim fdfs_storaged
使用查找替换命令进统一修改:%s+/usr/local/bin+/usr/bin
二、是建立 /usr/bin 到 /usr/local/bin 的软链接,本人用这种方式。
5、配置FastDFS跟踪器(Tracker)
进入 /etc/fdfs,复制 FastDFS 跟踪器样例配置文件 tracker.conf.sample,并重命名为 tracker.conf。
编辑tracker.conf ,标红的需要修改下,其它的默认即可
创建tracker基础数据目录,即base_path对应的目录
# mkdir -p /home/running/fastdfs/tracker
防火墙中打开跟踪端口(默认的22122)
添加如下端口行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT
重启防火墙:
# service iptables restart
启动Tracker
初次成功启动,会在 /home/running/fdfsdfs/tracker/ (配置的base_path)下创建 data、logs 两个目录
启动方式一:
启动方式二:
# service fdfs_trackerd start
查看 FastDFS Tracker 是否已成功启动 ,22122端口正在被监听,则算是Tracker服务安装成功。
# netstat -unltp|grep fdfs
闭Tracker命令:
# service fdfs_trackerd stop
设置Tracker开机启动
# chkconfig fdfs_trackerd on
或者
# vim /etc/rc.d/rc.local
加入配置:
/etc/init.d/fdfs_trackerd start
tracker server 目录及文件结构
Tracker服务启动成功后,会在base_path下创建data、logs两个目录。目录结构如下:
${base_path}
|__data
| |__storage_groups.dat:存储分组信息
| |__storage_servers.dat:存储服务器列表
|__logs
| |__trackerd.log: tracker server 日志文件
6、配置 FastDFS 存储 (Storage)
进入 /etc/fdfs 目录,复制 FastDFS 存储器样例配置文件 storage.conf.sample,并重命名为 storage.conf
# cd /etc/fdfs
#cp storage.conf.sample storage.conf
#vi storage.conf
编辑storage.conf,红色的修改就可以了,其它默认
创建Storage基础数据目录,对应base_path目录创建Storage基础数据目录,对应base_path目录
# mkdir -p /home/running/fastdfs/storage
#这是配置的store_path0路径
# mkdir -p /home/running/fastdfs/file
防火墙中打开存储器端口(默认的 23000)
# vim /etc/sysconfig/iptables
添加如下端口行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT
重启防火墙:
# service iptables restart
启动 Storage
启动Storage前确保Tracker是启动的。初次启动成功,会在 /home/running/fastdfs/storage 目录下创建 data、 logs 两个目录。
可以用这种方式启动
# /etc/init.d/fdfs_storaged start
也可以用这种方式,后面都用这种
# service fdfs_storaged start
查看 Storage 是否成功启动,23000 端口正在被监听,就算 Storage 启动成功
# netstat -unltp|grep fdfs
查看Storage和Tracker是否在通信:
#/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
设置 Storage 开机启动
# chkconfig fdfs_storaged on
Storage 目录
同 Tracker,Storage 启动成功后,在base_path 下创建了data、logs目录,记录着 Storage Server 的信息。
7、文件上传测试
修改 Tracker 服务器中的客户端配置文件
# cd /etc/fdfs # cp client.conf.sample client.conf # vim client.conf
修改如下配置
上传测试
在linux内部执行如下命令上传 namei.jpeg 图片
组名、磁盘名、目录、文件名
8、安装Nginx
安装Nginx作为服务器以支持Http方式访问文件,后面安装FastDFS的Nginx模块也需要Nginx环境。Nginx只需要安装到StorageServer所在的服务器即可,用于访问文件。TrackerServer和StorageServer在一台服务器上。所以Nginx安装在该机器上就可以了。
安装nginx所需环境
a、gcc 安装
# yum install gcc-c++
b、PCRE pcre-devel 安装
# yum install -y pcre pcre-devel
c、zlib 安装
# yum install -y zlib zlib-devel
d、OpenSSL 安装
# yum install -y openssl openssl-devel
安装Nginx
a、下载nginx
# wget -c https://nginx.org/download/nginx-1.12.1.tar.gz
b、解压
# tar -zxvf nginx-1.12.1.tar.gz
# cd nginx-1.12.1
c、进入解压缩后文件夹
d、配置编译参数命令:(可以使用./configure --help查询详细参数)
./configure \ --prefix=/usr/local/nginx \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ --http-scgi-temp-path=/var/temp/nginx/scgi
e、注:安装之前需要手动创建上面指定的nginx文件夹,即/var/temp、/var/temp/nginx、/var/run/nginx/文件夹,否则启动时报错
f、编译并安装
命令:make && make install
可以进入/usr/local/nginx查看文件是否存在conf、sbin、html文件夹,若存在则安装成功
g、启动nginx
进入安装目录
cd /usr/local/nginx/sbin/
启动:./nginx
查看是否启动:ps -ef | grep nginx
如果有master和worker两个进程证明启动成功
若报错:[emerg] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory)需要查看下是不是在/var/run文件夹下不存在nginx文件夹,不存在则新建
其它命令 # ./nginx -s stop # ./nginx -s quit # ./nginx -s reload
设置开机启动
# vi /etc/rc.local 添加一行: /usr/local/nginx/sbin/nginx # 设置执行权限 # chmod 755 rc.local
防火墙中打开Nginx端口(默认的 80) 然后在本机浏览器用ip+80端口,就可以访问了
# vim /etc/sysconfig/iptables 添加如下端口行: -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 重启防火墙: # service iptables restart
访问文件
修改nginx.conf
# vim /usr/local/nginx/conf/nginx.conf 添加如下行,将 /group1/M00 映射到 /home/running/fastdfs/file/data location /group1/M00 { alias /home/running/fastdfs/file/data; } # 重启nginx # /usr/local/nginx/sbin/nginx -s reload
在浏览器访问之前上传的图片、成功