说明:因为没有root用户权限,只能自己自定义目录安装,比默认安装改的东西要多一些
1.下载FastDFS相关包,链接:https://github.com/happyfish100,nginx包链接:http://nginx.org/download
也可以下载我的,链接:https://download.csdn.net/download/weixin_41481806/11974974
FastDFS是C语言开发,编译需要gcc环境,开发环境应该都有,这里就不多说了
linux两种包的不同的解压命令:
unzip XXX.zip
tar -zxvf XXX.tar.gz
2.新建目录,将下载的文件包放到soft目录下,fastdfs为安装的目录
mkdir fastDFS/fastdfs
mkdir fastDFS/soft
3.编译安装环境变量,设置一个环境变量,软件的安装路径,make.sh文件中有这个变量,否则默认root用户编译的安装在系统根目录下,但普通用户是没有根目录的写入权限的,我的是web用户,DESTDIR,变量名别写错
export DESTDIR=/data/web/fastDFS/fastdfs
4.查看环境变量是否设置成功
env
5.解压安装文件libfastcommon-master,成功后的目录结构如下,会生成一个usr目录
cd /data/web/fastDFS/soft
unzip libfastcommon-master.zip
cd libfastcommon-master
./make.sh
./make.sh install
6.解压安装文件fastdfs-5.11
cd /data/web/fastDFS/soft
unzip fastdfs-5.11.zip
cd /data/web/fastDFS/fastdfs/usr/lib64
pwd
7.pwd命令后的路径复制下来,修改fastdfs-5.11下的make.sh文件,如图位置(编译完程序运行时额外读取lib文件路径)
vi /data/web/fastDFS/soft/fastdfs-5.11/make.sh
8.修改tracker、storage、client下的Makefile.in文件中的 INC_PATH和LIB_PATH的值 原有和修改后对照图
vi /data/web/fastDFS/soft/fastdfs-5.11/tracker/Makefile.in
vi /data/web/fastDFS/soft/fastdfs-5.11/storage/Makefile.in
vi /data/web/fastDFS/soft/fastdfs-5.11/client/Makefile.in
9.fastdfs-5.11的编译和安装,会多一个etc文件目录
cd /data/web/fastDFS/soft/fastdfs-5.11
./make.sh
./make.sh install
10.解压安装文件nginx和fastdfs-nginx-module
cd /data/web/fastDFS/soft
unzip fastdfs-nginx-module-1.20.zip
tar -zxvf nginx-1.7.5.tar.gz
11.修改fastdfs-nginx-module编译配置
vi /data/web/fastDFS/soft/fastdfs-nginx-module-1.20/src/config
12.复制fastdfs-nginx-module下的src中的mod_fastdfs.conf文件复制到fastdfs存放配置文件目录
cp /data/web/fastDFS/soft/fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /data/web/fastDFS/fastdfs/etc/fdfs/
13.编译安装Nginx,成功后会创建nginx-fdfs文件目录,编译和安装成功后的截图
(命令make后将DESTDIR置空,否则会创建重复目录,然后在intall安装)
cd /data/web/fastDFS/soft/nginx-1.17.5
./configure --prefix=/data/web/fastDFS/fastdfs/nginx-fdfs --add-module=/data/web/fastDFS/soft/fastdfs-nginx-module-1.20/src --with-http_ssl_module --with-ld-opt="-L /data/web/fastDFS/fastdfs/usr/lib -Wl,-rpath=/data/web/fastDFS/fastdfs/usr/lib64"
make
export DESTDIR=""
make install
14.将fastdfs源码参考配置文件复制到fastdfs的安装目录中
cp /data/web/fastDFS/soft/fastdfs-5.11/conf/* /data/web/fastDFS/fastdfs/etc/fdsf/
15.准备启动脚本,编辑脚本文件
vi /data/web/fastDFS/fastdfs/ect/init.d/fdfs_storage
vi /data/web/fastDFS/fastdfs/ect/init.d/fdfs_trackerd
#fdfs_storage修改部分
PRG=/data/web/fastDFS/fastdfs/usr/bin/fdfs_storaged
CONF=/data/web/fastDFS/fastdfs/etc/fdfs/storage.conf
#fdfs_trackerd修改部分
PRG=/data/web/fastDFS/fastdfs/usr/bin/fdfs_trackerd
CONF=/data/web/fastDFS/fastdfs/etc/fdfs/tracker.conf
16.可以自己创建启动目录,将默认启动目录的脚本拷贝到自己定义的目录中(次步可以省略)
mkdir /data/web/fastDFS/fastdfs/bin
cp /data/web/fastDFS/fastdfs/etc/init.d/* /data/web/fastDFS/fastdfs/bin/
17.配置tracker,新建一个tracker工作目录 ,配置完后启动tracker(启动命令在19步骤)
mkdir /data/web/fastDFS/fastdfs/tracker
vi /data/web/fastDFS/fastdfs/etc/fdfs/tracker.conf
disabled=false #默认开启
port=22122 #默认端口号
base_path=/data/web/fastDFS/fastdfs/tracker #刚刚创建的目录
http.server_port=6666 #默认端口是8080
18.配置storage,新建storage工作目录和storage_data数据存储目录,配置完后启动storage(启动命令在19步骤)
mkdir /data/web/fastDFS/fastdfs/storage
mkdir /data/web/fastDFS/fastdfs/storage_data
vi /data/web/fastDFS/fastdfs/etc/fdfs/storage.conf
disabled=false #默认
group_name=group1 #组名,根据实际情况修改
port=23000 #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致
base_path=/data/web/fastDFS/fastdfs/storage #设置storage数据文件和日志目录
store_path_count=2 #存储路径个数,需要和store_path个数匹配
store_path0=/data/web/fastDFS/fastdfs/storage_data/db1 #实际文件存储路径
store_path1=/data/web/fastDFS/fastdfs/storage_data/db2 #实际文件存储路径
tracker_server=20.200.54.230:22122 #我的ip地址1
tracker_server=20.200.54.231:22122 #我的ip地址2
#多节点另一台服务器在重启配置一遍,只不过两台的storage.conf中要加入两个server的地址
mod_fastdfs.conf中的配置要和storage.conf的对应
vi /data/web/fastDFS/fastdfs/etc/fdfs/mod_fastdfs.conf
base_path=/data/web/fastDFS/fastdfs/storage
tracker_server=20.200.54.230:22122
tracker_server=20.200.54.231:22122
url_have_group_name=true
group_count=1
[group1]
group_name=group1
store_path_count=2
storage_server_port=23000
store_path0=data/web/fastDFS/fastdfs/storage_data/db1
store_path1=data/web/fastDFS/fastdfs/storage_data/db2
19.启动、停止命令
./data/web/fastDFS/fastdfs/bin/fdfs_trackerd start|stop|restart|status
./data/web/fastDFS/fastdfs/bin/fdfs_storaged start|stop|restart|status
20.查看是否成功启动,并确认storage是否注册到tracker中去
netstat -unltp|grep fdfs
/data/web/fastDFS/fastdfs/usr/bin/fdfs_monitor /data/web/fastDFS/fastdfs/etc/fdfs/storage.conf
21.配置客户端
vi /data/web/fastDFS/fastdfs/etc/fdfs/client.conf
base_path=/data/web/fastDFS/fastdfs/tracker #tracker服务器文件路径
tracker_server=20.200.54.230:22122 #tracker服务器IP地址和端口号
http.tracker_server_port=6666 # tracker 服务器的 http端口号,必须和tracker的设置对应起来
22.上传图片测试,成功后会返回一个图片的路径
/data/web/fastDFS/fastdfs/usr/bin/fdfs_upload_file /data/web/fastDFS/fastdfs/etc/fdfs/client.conf /data/web/fastDFS/upload_test/1.bmp
#根据返回的路径,进入下面路径可以看到图片
cd /data/web/fastDFS/fastdfs/storage_data/data/00/00
23.想要http地址直接访问,需要配置nginx
24.启动nginx服务,然后查看错误日志,没有报错说明成功启动了
./data/web/fastDFS/fastdfs/nginx-fdfs/sbin/nginx
tail -f /data/web/fastDFS/fastdfs/nginx-fdfs/logs/error.log
25.打开浏览器请求http://20.200.54.230:9999,可以请求到nginx的首页,说明nginx配置没有问题,然后请求http://20.200.54.230:9999/group1/M00/00/00/FMg2513LpyqABuICAAi75Asm2lQ034.bmp就可以成功下载图片了
多节点存储的话另一台服务器按步骤在配置一遍,只不过两台的storage.conf中要加入两个server的地址,上传图片时会自动同步,两台都会有对应的文件,文件名称路径也是一样的
26.下篇java中的应用
https://blog.csdn.net/weixin_41481806/article/details/103070808