fastdfs安装失败主因是libfastcommon未安装、tracker_server误写localhost、base_path目录缺失;必须先装libfastcommon并建软链接,手动创建base_path等路径并设权限,tracker_server须用真实ip,client.conf需正确配置后用fdfs_test验证。

FastDFS 在 Linux 上安装失败,八成是依赖或路径没配对 —— 不是版本不兼容,而是 libfastcommon 没装、tracker_server 写了 localhost、或者 base_path 目录压根不存在。
libfastcommon 必须先装,且要建软链接
FastDFS 6.x 起不再自带 libfastcommon,不装它,fdfs_trackerd 启动时直接报错:libfastcommon.so: cannot open shared object file。装完后必须手动建软链接,否则运行时找不到库:
- 执行
./make.sh install后,检查/usr/lib64/libfastcommon.so是否存在 - 若存在,补两条软链:
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so和ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so - Ubuntu 系统还要确认装了
libevent-dev和libpcre3-dev,否则编译卡在event.h: No such file or directory
tracker.conf 和 storage.conf 的 base_path 必须手动创建并设权限
FastDFS 不会自动创建任何目录。配置里写的 base_path=/fastdfs/tracker 或 store_path0=/fastdfs/storage,如果目录不存在,服务静默失败,日志里只写“mkdir failed”。常见错误现象是 fdfs_trackerd 启动后立刻退出,查 /fastdfs/tracker/logs/trackerd.log 就能看到。
- 启动前必须手动执行:
mkdir -p /fastdfs/tracker /fastdfs/storage - 属主设为运行用户(如用 root 启动就
chown -R root:root /fastdfs;若用fdfs用户,则提前useradd fdfs并chown -R fdfs:fdfs /fastdfs) -
storage.conf中的group_name默认是group1,上传测试时命令里必须带这个组名,大小写敏感
storage.conf 里的 tracker_server 不能写 localhost
哪怕单机部署,storage.conf 中的 tracker_server 也必须写真实 IP,比如 192.168.1.100:22122。写 localhost 或 127.0.0.1 会导致 storage 启动后连不上 tracker,表现为 storaged.log 里反复出现 connect to tracker server fail。
- 云服务器务必在安全组放行两个端口:
22122(tracker)、23000(storage) - 启动顺序固定:
fdfs_trackerd /etc/fdfs/tracker.conf先起,等几秒再起fdfs_storaged /etc/fdfs/storage.conf - 验证是否连上:
ps aux | grep fdfs应看到两个进程;netstat -tlnp | grep :22122应有监听
client.conf 测试上传前必须配对 tracker_server 和 base_path
fdfs_test 是唯一可靠的初始化验证方式。但很多人漏配 client.conf,导致上传返回 ERROR: connect to tracker server fail,其实只是客户端自己没读到 tracker 地址。
- 复制模板:
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf - 编辑
/etc/fdfs/client.conf,只改两处:base_path=/fastdfs/client(需手动创建该目录),tracker_server=你的IP:22122 - 测试命令:
fdfs_test /etc/fdfs/client.conf upload /tmp/test.jpg,成功返回类似group1/M00/00/00/wKgBZl-xxx.jpg才算通
最容易被忽略的是:所有配置文件里路径(base_path、store_path0)必须和实际 mkdir 的路径完全一致,包括结尾斜杠有无、空格、大小写;Nginx 集成时 mod_fastdfs.conf 中的 store_path0 值还必须和 storage.conf 里的一模一样,差一个字符都 404。











