目录
- 引言:虚拟机系统为CentOS7,原来虚拟机上已经安装了FastDFS,由于版本问题,无法运行,所以删掉原来的FastDFS系统后,重新安装。
- 注意:由于一开始删除FastDFS删除不干净,以及cmake的版本不太对和各种小问题,出现了各种小问题,不过将FastDFS删除干净后,升级了一下cmake后,成功重新安装FastDFS。
- 建议:鉴于多次在虚拟机安装环境的经验,建议对虚拟机进行操作之前,先拍摄【虚拟机的快照】,方便后面出错时进行回滚,减少时间消耗。
1. 安装libfastcommon
- 1.1 获取libfastcommon安装包:
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.38.tar.gz
- 1.2 解压安装包:
tar -zxvf V1.0.38.tar.gz -C 想要安装的目录
- 1.3 进入目录:
cd libfastcommon-1.0.38
- 1.4 执行编译:
./make.sh
- 1.5 安装:
./make.sh install
2. 安装FastDFS
- 2.1 获取fdfs安装包:
wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz
- 2.2 解压安装包:
tar -zxvf V5.11.tar.gz -C 想要安装的目录
- 2.3 进入目录:
cd fastdfs-5.11
- 2.4 执行编译:
./make.sh
- 2.5 安装
./make.sh install
3. 配置Tracker服务
- 3.1 进入/etc/fdfs目录,有三个.sample后缀的文件(自动生成的fdfs模板配置文件),通过cp命令拷贝tracker.conf.sample,删除.sample后缀作为正式文件:
cp tracker.conf.sample tracker.conf
- 3.2 创建tracker存储data和log的根路径
mkdir -p /home/mm/fastdfs/tracker
- 3.3 编辑tracker.conf:vi tracker.conf,修改相关参数
base_path=/home/mm/fastdfs/tracker #tracker存储data和log的根路径
port=22122 #tracker默认22122
http.server_port=80 #http端口,需要和nginx相同
- 3.4 启动tracker(支持start|stop|restart):
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
- 3.5 查看tracker启动日志:进入刚刚指定的base_path(/home/mm/fastdfs/tracker)中有个logs目录,查看tracker.log文件
cat /home/mm/fastdfs/tracker/logs/trackerd.log
- 3.6 查看端口情况:
netstat -apn|grep fdfs
4. 配置Storage服务
-
4.1 进入/etc/fdfs目录,有cp命令拷贝storage.conf.sample,删除.sample后缀作为正式文件;
-
4.2 编辑storage.conf:vi storage.conf,修改相关参数:
base_path=/home/mm/fastdfs/storage #storage存储data和log的跟路径,必须提前创建好
port=23000 #storge默认23000,同一个组的storage端口号必须一致
group_name=group1 #默认组名,根据实际情况修改
store_path_count=1 #存储路径个数,需要和store_path个数匹配
store_path0=/home/mm/fastdfs/storage #如果为空,则使用base_path
tracker_server=10.122.149.211:22122 #配置该storage监听的tracker的ip和port
- 4.3 启动storage(支持start|stop|restart):
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
- 4.4 查看storage启动日志:进入刚刚指定的base_path(/home/mm/fastdfs/storage)中有个logs目录,查看storage.log文件
- 4.5 此时再查看tracker日志:发现已经开始选举,并且作为唯一的一个tracker,被选举为leader
- 4.6 查看端口情况:netstat -apn|grep fdfs
- 4.7 通过monitor来查看storage是否成功绑定:
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
5. 安装Nginx和fastdfs-nginx-module模块
- 5.1 下载Nginx安装包
wget http://nginx.org/download/nginx-1.15.2.tar.gz
- 5.2 下载fastdfs-nginx-module安装包(虽然github文件上上要求FastDFS-5.12版本以上,第一次安装出现问题,我以为可能是这里有问题,不过后来发现是前一个FastDFS没删除干净,第二次安装成功了)
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz
- 5.3 解压nginx:
tar -zxvf nginx-1.15.2.tar.gz -C 想要安装的目录
- 5.4 解压fastdfs-nginx-module:
tar -zxvf V1.20.tar.gz -C 想要安装的目录
-
5.5 进入nginx目录:cd nginx-1.10.1
-
5.6 安装依赖的库
yum -y update
yum -y install libpcre3 libpcre3-dev openssl libssl-dev libperl-dev
- 5.7 配置,并加载fastdfs-nginx-module模块:(–add-module指fastdfs-nginx-module-1.20存放的路径)
./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/fastdfs-nginx-module-1.20/src/
- 5.8 编译安装:
make
make install
- 5.9 查看安装路径:whereis nginx
- 5.10 查看此时的nginx版本:发现fastdfs模块已经安装好了
- 可能的报错:
/usr/include/fastdfs/fdfs_define.h:15:27: fatal error: common_define.h: No such file or directory
解决方案:修改fastdfs-nginx-module-1.20/src/config文件,然后重新第7步开始
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
6. 配置Nginx和fastdfs-nginx-module模块
- 6.1 配置mod-fastdfs.conf,并拷贝到/etc/fdfs文件目录下
cd fastdfs-nginx-module-1.20/src/
cp mod_fastdfs.conf /etc/fdfs
- 6.2 进入/etc/fdfs修改mod-fastdfs.conf:
base_path=/home/mm/fastdfs
tracker_server=10.122.149.211:22122 #tracker的地址
url_have_group_name=true #url是否包含group名称
storage_server_port=23000 #需要和storage配置的相同
store_path_count=1 #存储路径个数,需要和store_path个数匹配
store_path0=/home/mm/fastdfs/storage #文件存储的位置
- 6.3 配置nginx,80端口server增加location如图:
cd /usr/local/nginx/conf/
vi nginx.conf
location ~/M00 {
root /home/fastdfs/storage/data;
ngx_fastdfs_module;
}
- 6.4 最后需要拷贝fastdfs解压目录中的http.conf和mime.types:
cd /usr/local/src/fastdfs-5.11/conf
cp mime.types http.conf /etc/fdfs/
7. FastDFS测试
- 7.1 进入/etc/fdfs目录,有cp命令拷贝client.conf.sample,删除.sample后缀作为正式文件;
- 7.2 修改client.conf相关配置:
base_path=/home/mm/fastdfs/tracker //tracker服务器文件路径
tracker_server=虚拟机ip:22122 //tracker服务器IP地址和端口号,虚拟机ip可以通过ifconfig命令查询
http.tracker_server_port=80 # tracker服务器的http端口号,必须和tracker的设置对应起来
-
7.3 新建一个测试文档1.txt,内容为abc
-
7.4 /usr/bin/fdfs_upload_file <config_file> <local_filename>
-
7.5 示例
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf 1.txt
- 7.6 通过wget和浏览器方式访问成功:
wget http://10.122.149.211/group1/M00/00/00/CnqV01trmeyAbAN0AAAABLh3frE677.txt