完整安装流程
下载libfastcommon、fastdfs、fastdfs-nginx-module
下载的包都存放在/home/jason/fdfs-package目录下:
mkdir /home/jason/fdfs-package
cd /home/jason/fdfs-package
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.39.tar.gz -SO libfastcommon.tar.gz
wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz -SO fastdfs.tar.gz
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz -SO fastdfs-nginx-module.tar.gz
tar -zxf xxx.tar.gz
安装libfastcommon
cd home/jason/fdfs-package
cd libfastcommon-1.0.39
./make.sh
./make.sh install
安装fastdfs
cd home/jason/fdfs-package
cd fastdfs-5.11
./make.sh
./make.sh install
安装好后,程序是在/usr/bin目录下:
$ which fdfs_trackerd
/usr/bin/fdfs_trackerd

而配置文件是在/etc/fdfs目录下
[root@k8s02 ~]
anti-steal.jpg client.conf client.conf.sample http.conf mime.types mod_fastdfs.conf storage.conf storage.conf.sample storage_ids.conf storage_ids.conf.sample tracker.conf tracker.conf.sample
但是这些配置文件是不全的,而且都是模板,所以需要从fastdfs包中拷贝过来,并修改配置:
$ cd /home/jason/fdfs-package/fastdfs-5.11/conf
$ ls
anti-steal.jpg client.conf http.conf mime.types storage.conf storage_ids.conf tracker.conf
$ sudo cp /home/jason/fdfs-package/fastdfs-5.11/conf/* /etc/fdfs
修改配置tracker、storage、client、mod_fastdfs的conf文件
sudo vi /etc/fdfs/tracker.conf:
port=22122
base_path=/home/jason/fdfs
http.server_port=9270
sudo vi /etc/fdfs/storage.conf:
group_name=group1
port=23000
base_path=/home/jason/fdfs
store_path0=/home/jason/fdfs
tracker_server=191.8.1.77:22122
http.server_port=8888
sudo vi /etc/fdfs/client.conf:
base_path=/home/jason/fdfs/client
tracker_server=191.8.1.77:22122
http.tracker_server_port=9270
sudo vi /etc/fdfs/mod_fastdfs.conf:
base_path=/tmp
tracker_server=191.8.1.77:22122
storage_server_port=23000
group_name=group1
store_path0=/home/jason/fdfs
配置过程中有几点要注意:
- 确保配置中用到的目录已经创建了。比如 /home/jason/fdfs/client、/home/jason/fdfs/data、/home/jason/fdfs/logs
- 确保各种配置文件之间引用的端口一直。比如:
-
- mod_fastdfs.conf文件中 tracker_server的端口应该跟 tracker.conf中 port一致;
-
- mod_fastdfs.conf文件中 storage_server_port的端口应该跟跟 storage.conf中 port一致;
其他配置或文件虽然不用修改,但是 fastdfs-nginx-module模块会用到:
anti-steal.jpg
http.conf
mime.types
启动 tracker和storage:
fdfs_trackerd /etc/fdfs/tracker.conf start
fdfs_storaged /etc/fdfs/storage.conf start
tail -n10 ~/fdfs/logs/trackerd.log
tail -n10 ~/fdfs/logs/storaged.log
用 fdfs_test测试上传
mkdir -p /home/jason/fdfs/test_images/
cd /home/jason/fdfs/test_images/
rz xxx.jpg
$ fdfs_test /etc/fdfs/client.conf upload home/jason/jason/test_images/xxx.jpg
测试输出后报错如下:
[2019-10-08 17:02:01] DEBUG - base_path=/home/jason/fdfs, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_ps, use_storage_id=0, storage server id count: 0
[2019-10-08 17:02:01] ERROR - file: tracker_proto.c, line: 48, server: 172.28.23.96:22122, response status 2 != 0
[2019-10-08 17:02:01] ERROR - file: ../client/tracker_client.c, line: 1085, fdfs_recv_response fail, result: 2
[2019-10-08 17:02:01] ERROR - file: tracker_proto.c, line: 48, server: 172.28.23.96:22122, response status 2 != 0
[2019-10-08 17:02:01] ERROR - file: ../client/tracker_client.c, line: 907, fdfs_recv_response fail, result: 2
tracker_query_storage fail, error no: 2, error info: No such file or directory
报错如图所示:

解决办法:
安装fastdfs-nginx-module