wget https://codeload.github.com/happyfish100/libfastcommon/zip/master
下载后解压、进入解压后的文件夹,执行./make.sh && ./make.sh install
libfastcommon.so默认被安装到了/usr/lib64/libfastcommon.so,但是FastDFS主程序设置的lib目录是/usr/local/lib,所以需要创建软链接(快捷方式):
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
下载fdfs安装包:wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz;
解压、进入后编译、安装(./make.sh && ./make.sh install)
进入/etc/fdfs目录,复制tracker.conf.sample:
cp
tracker.conf.sample
tracker.conf,
修改vim tracker.conf:
base_path=/home/mm/fastdfs/tracker #tracker存储data和log的跟路径,必须提前创建好
port=23000 #tracker默认23000
http.server_port=80 #http端口,需要和nginx相同
三、启动tracker
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
注:可通过如下命令建立软连接,随后可通过service fdfs_trackerd start启动:
# ln -s /usr/bin/fdfs_trackerd /usr/local/bin # ln -s /usr/bin/fdfs_storaged /usr/local/bin # ln -s /usr/bin/stop.sh /usr/local/bin # ln -s /usr/bin/restart.sh /usr/local/bin
可以在base_path配置的路径下查看启动日志:
查看tracker服务状态:
进入/etc/fdfs目录,有cp命令拷贝storage.conf.sample:cp storage.conf.sample storage.conf
编辑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,注意:ip不能为127.0.0.1
启动storage(支持start|stop|restart):
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
查看启动后的状态:
service fdfs_storaged status:
查看启动日志,发现已经开始选举,并且作为唯一的一个tracker,被选举为leader:
查看端口情况:
通过如下命令查看storage是否被绑定:
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
1、修改 Tracker 服务器中的客户端配置文件
# cd /etc/fdfs
# cp client.conf.sample client.conf
# vim client.conf
修改如下配置即可,其它默认。
# Client 的数据和日志目录
base_path=/ljzsg/fastdfs/client
# Tracker端口
tracker_server=file.ljzsg.com:22122
② 上传测试
在linux内部执行如下命令上传文件
# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf test1.txt
上传成功后会返回文件路径:
在文件存储路径下可以看到上传的文件:
这个过程参考下方报错中的:3、整合nginx时,报错:[emerg] unknown directive "ngx_fastdfs_module" ngix
1、/usr/include/fastdfs/fdfs_define.h:15:27: fatal error: common_define.h: No such file or directory(https://blog.csdn.net/C18298182575/article/details/96428764)
解决方案:
将fastdfs-nginx-module-1.20/src/config的内容替换为如下,然后重新执行./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module-1.20/src/:
ngx_addon_name=ngx_http_fastdfs_module
if test -n "${ngx_module_link}"; then
ngx_module_type=HTTP
ngx_module_name=$ngx_addon_name
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
ngx_module_libs="-lfastcommon -lfdfsclient"
ngx_module_srcs="$ngx_addon_dir/ngx_http_fastdfs_module.c"
ngx_module_deps=
CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE=‘256*1024‘ -DFDFS_MOD_CONF_FILENAME=‘\"/etc/fdfs/mod_fastdfs.conf\"‘"
. auto/module
else
HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_fastdfs_module.c"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -lfastcommon -lfdfsclient"
CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE=‘256*1024‘ -DFDFS_MOD_CONF_FILENAME=‘\"/etc/fdfs/mod_fastdfs.conf\"‘"
fi
2、测试上传命令时,报错如下:

解决方案:
查看tracker服务状态有报错信息如下:
搜索undefined symbol: g_current_time,通过http://www.mamicode.com/info-detail-2316419.html方案解决的:rm -rf /usr/local/lib/libfastcommon.so.1
3、整合nginx时,报错:[emerg] unknown directive "ngx_fastdfs_module" ngix
按照https://www.w3xue.com/exp/article/20191/18398.html方案解决的:
(1)、安装fastdfs-nginx-module
参考博客:https://blog.csdn.net/u010098331/article/details/51646921
(2)安装nginx
配置nginx:
4、访问文件地址返回404错误:
检查下nginx、mod_fastdfs.conf里面的数据文件路径配置:
数据存放路径:

nginx配置:
mod_fastdfs.conf路径配置:
原文:https://www.cnblogs.com/Xiaojiangzi/p/13061278.html