首先讲一下fastdht安装过程
1.下载安装BerkeleyDB,(版本可以自己更改就行),也可以通过网盘下载
http://download.oracle.com/berkeley-db/db-6.0.30.tar.gz
链接:https://pan.baidu.com/s/1XCWo2rYntmmEskkRPd9nRA
提取码:dqoh
2.把安装包上传到服务器并解压
tar -zxvf db-6.0.30.tar.gz
3.解压完成之后进入build-unix目录
cd /usr/local/db-6.0.30/build_unix/
4.然后执行命令
../dist/configure --prefix=/usr/local/db-6.0.30
5.编译安装
make
make install
安装完成之后,会在你指定的目录生成db-6.0.30
6.下载fastdht,上面的网盘里也包含了fastdht
https://github.com/happyfish100/fastdht
7.上传到服务器并解压
unzip fastdht-master.zip
8.进入解压好的目录
cd fastdht-master
9.修改make.sh
vi make.sh
CFLAGS='-Wall'
if [ -n "$GCC_VERSION" ] && [ $GCC_VERSION -ge 7 ]; then
CFLAGS="$CFLAGS -Wformat-truncation=0 -Wformat-overflow=0"
fiCFLAGS='$CFLAGS -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -I/usr/local/db-6.0.30/include/ -L/usr/local/db-6.0.30/lib/'
if [ "$DEBUG_FLAG" = "1" ]; then
CFLAGS="$CFLAGS -g -O -DDEBUG_FLAG"
else
CFLAGS="$CFLAGS -O3"
红色部分为添加部分,路径地址根据自己安装的BerkeleyDB地址
10.编译安装
./make.sh
./make.sh install
安装成功之后,会在/etc/fdht/下生成三个配置文件
11.进行配置(这一步很重要)
创建目录
cd /data
mkdir fastdht
修改fdht_client.conf
base_path=/data/fastdht
keep_alive=1
#include /etc/fdht/fdht_servers.conf (此处是需要加上#,##关闭,#打开)
修改fdht_servers.conf
group_count = 1
group0 = 172.14.3.232:11411
修改fdhtd.conf
port=11411
bash_path=/data/fastdht
#include /etc/fdht/fdht_servers.conf
修改/etc/fdht/目录下的storage.conf
check_file_duplicate=1
key_namespace=FastDFS
keep_alive=1
#include /etc/fdht/fdht_servers.conf
拷贝libdb.so到/usr/lib目录
cp /usr/local/db-6.0.30/lib/libdb-6.0.so /usr/lib/
cp /usr/local/db-6.0.30/lib/libdb-6.0.so /usr/lib64/
12.启动
fdhtd /etc/fdht/fdhtd.conf
注意:防火墙开放11411端口!
这个时候我发现fastdht查看进程并没有启动起来,于是我查看日志显示如下信息:
ERROR - file: func.c, line: 332, local host does not belong to any group, program exit!
经过我的排查发现是fdht_servers.conf文件中的group配置错误,它这个要的是内网地址。
比如我用的是腾讯的服务器,我如果配置公网地址,就会报上面那个错误,但如果配置内网地址就能启动成功。
具体为什么还不知道,有知道的小伙伴可以留言讨论