FastDFS安装失败的原因,归根结底就是那么几个:libfastcommon没有安装或者软链接未创建、tracker_server配置了localhost、base_path目录根本不存在。解决方法其实也很明确——先正确安装libfastcommon并建立两条软链接,手动创建所有必要的目录并设置好权限,tracker_server必须填写真实IP地址。真正让开发者卡住的,从来不是编译命令本身,而是那些不报错却静默失败的路径、权限、IP以及日志配置。

libfastcommon未安装或软链接缺失导致fdfs_trackerd启动失败
从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。这也是“启动后立刻消失”最常见的原因,没有其他情况比它更频繁。
- 启动前必须手动执行:
mkdir -p /fastdfs/tracker /fastdfs/storage - 属主必须匹配运行用户:用
root启动就执行chown -R root:root /fastdfs;如果打算用fdfs用户,则先useradd fdfs,再chown -R fdfs:fdfs /fastdfs - 路径中不要包含空格或中文字符,
/fastdfs是最稳妥的选择
storage.conf中tracker_server填写localhost导致连接失败
即使是单机部署,storage.conf中的tracker_server也必须填写真实IP,例如192.168.1.100:22122。如果写成localhost或127.0.0.1,storaged.log里就会反复出现connect to tracker server fail。这是新手最容易踩的坑。
tracker.conf里的bind_addr默认是空,表示监听所有地址,这没有问题- 但
storage是主动发起连接的一方,它解析localhost会走回环地址,而tracker可能绑定在物理网卡上,两者根本不在同一个网络平面 - 云服务器还需要在安全组中放行
22122(tracker)和23000(storage)端口
验证前一定要按顺序启动,并且认真查看日志。不要急着运行fdfs_test,先确保两个进程都活着、端口监听正常、日志里没有ERROR。FastDFS几乎所有问题的线索都在日志中,重装解决不了任何问题。
- 启动顺序固定:先启动
fdfs_trackerd /etc/fdfs/tracker.conf,等3秒后再启动fdfs_storaged /etc/fdfs/storage.conf - 检查进程:
ps aux | grep fdfs应看到两个进程 - 检查监听:
netstat -tlnp | grep :22122应有fdfs_trackerd在监听 - 日志重点看三处:
/fastdfs/tracker/logs/trackerd.log(查看bind是否失败、端口是否被占用)、/fastdfs/storage/logs/storaged.log(查看连接tracker是否失败、group_name是否匹配)、系统日志/var/log/messages
把base_path目录建好、软链接打全、tracker_server换成真实IP、日志文件打开看一眼——这四件事做完,90%的安装问题就解决了。
