安装
1.首先创建目录,这里在/Document/develop/fastdfs下进行操作,以后建议这种系统级的服务可以创建在/usr/local/src下面
2.下载包:
//第一个是libfastcommon安装包(fdfs工具包)
https://github.com/happyfish100/libfastcommon/archive/V1.0.38.tar.gz
//第二个是fdfs安装包
https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz
2.1安装libfastcommon
tar -zxvf libfastcommon-1.0.38.tar.gz
rm -rf libfastcommon-1.0.38.tar.gz
cd libfastcommon-1.0.38
./make.sh (执行编译)
sudo ./make.sh install (执行安装,这里会创建文件,所以用sudo)
可能遇到的问题: -bash: make: command not found-bash: gcc: command not found 解决方案: debian通过apt-get install gcc make安装 centos通过yum -y install gcc make安装 2.2安装FastDFS
tar -zxvf fastdfs-5.11.tar
rm -rf fastdfs-5.11.tar
cd fastdfs-5.11
./make.sh (执行编译)
sudo ./make.sh install (执行安装,这里会创建文件,所以用sudo)
3.配置Tracker服务
cd /etc/fdfs
sudo cp tracker.conf.sample tracker.conf
拷贝一个模板进行配置
新建一个路径:
//用于tracker存放data和log需要提前创建好
mkdir /home/jkkj/Documents/develop/fastdfs/tracker
sudo vi /etc/fdfs/tracker.conf
#并修改下列参数:
base_path=/home/jkkj/Documents/develop/fastdfs/tracker
#tracker存储data和log的跟路径,必须提前创建好
port=22122 #tracker默认22122
http.server_port=9999 #http端口,需要和nginx相同
启动tracker:(支持start|stop|restart)
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
可以去查看/usr/bin路径下确实有fdfs_trackerd,直接用这个命令就可以了。
查看端口: netstat -apn|grep fdfs
4.配置Storage服务
cd /etc/fdfs
copy一个配置文件:
sudo cp storage.conf.sample storage.conf
#新建一个路径,用于storage存放data和log需要提前创建好。
mkdir /home/jkkj/Documents/develop/fastdfs/storage
sudo vi /etc/fdfs/storage.conf
// 修改关键配置文件参数:
#storage存储data和log的跟路径,必须提前创建好
base_path=/home/mm/fastdfs/storage
#storge默认23000,同一个组的storage端口号必须一致
port=23000
#默认组名,根据实际情况修改
group_name=group1
#存储路径个数,需要和store_path个数匹配
store_path_count=1
#如果为空,则使用base_path
store_path0=/home/mm/fastdfs/storage
#配置该storage监听的tracker的ip和port
tracker_server=10.122.149.211:22122
启动storage(支持start|stop|restart):
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
//成功启动,通过下面命令查看
netstat -apn|grep fdfs
也可以通过monitor来查看storage是否成功绑定:
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
5.部署nginx和nginx-fdfs模块
下载:
http://nginx.org/download/nginx-1.15.2.tar.gz
https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz
解压缩nginx:
tar -zxvf nginx-1.15.2.tar.gz
# 解压缩:fastdfs-nginx-module:
tar -zxvf fastdfs-nginx-module-1.20.tar.gz
# 解压路径在:
/home/jkkj/Documents/develop/fastdfs/fastdfs-nginx-module-1.20
sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev openssl libssl-dev libperl-dev
修改配置:
cd /home/jkkj/Documents/develop/fastdfs/fastdfs-nginx-module-1.20/src
vi config
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
配置,并加载fastdfs-nginx-module模块:
mkdir /usr/local/nginx
新建一个nginx是存放nginx安装路径,切记不可使用nginx安装包的解压缩路径,会报错的,当然也可以换一个名字,这个路径就是nginx的服务安装路径 进入nginx解压目录:
cd /home/jkkj/Documents/develop/nginx-1.15.2
./configure --prefix=/usr/local/nginx --add-module=/home/jkkj/Documents/develop/fastdfs/fastdfs-nginx-module-1.20/src
(最后还可以加上--with-http_ssl_module)
可能会遇到报错:
centos:
yum install -y zlib-devel
yum -y install pcre-devel
yum -y install openssl openssl-devel
ubuntu:
sudo apt-get install zlib1g-dev
然后再执行一次配置即可。 然后编译安装:
make
sudo make install
nginx已经被安装到/usr/local/nginx
cd /usr/local/nginx/sbin/
./nginx
./nginx -s stop #此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程
./nginx -s quit #此方式停止步骤是待nginx进程处理任务完毕进行停止
./nginx -s reload
# 查看fastdfs是否被成功安装:
/usr/local/nginx/sbin/nginx -V
6.配置nginx和fastdfs-nginx-module
配置mod-fastdfs.conf,并拷贝到/etc/fdfs文件目录下:
cd fastdfs-nginx-module-1.20/src/
cp mod_fastdfs.conf /etc/fdfs
cd /etc/fdfs
sudo vi mod_fastdfs.conf
修改如下:
base_path=/home/jkkj/Documents/develop/fastdfs/tracker
tracker_server=192.168.1.101:22122 #tracker的地址
url_have_group_name=false#url是否包含group名称
storage_server_port=23000 #需要和storage配置的相同
store_path_count=1 #存储路径个数,需要和store_path个数匹配
store_path0=/home/jkkj/Documents/develop/fastdfs/storage #文件存储的位置
再配置Nginx
cd /usr/local/nginx/conf/
sudo vi nginx.conf
在监听的端口配置:
location /group1/M00 {
root /home/jkkj/Documents/develop/fastdfs/storage/data;
ngx_fastdfs_module;
}
location /group1/M00/:group1为nginx 服务FastDFS的分组名称,M00是FastDFS自动生成编号,对应store_path0=/home/fdfs_storage,如果FastDFS定义store_path1,这里就是M01
注意一定要删除注释掉的user,让它以root的权限运行:user root
最后拷贝配置文件:
cd /home/jkkj/Documents/develop/fastdfs/fastdfs-5.11/conf
sudo cp mime.types http.conf /etc/fdfs/
启动nginx:
cd /usr/local/nginx/sbin/
sudo ./nginx
客户端配置测试
cd /etc/fdfs
sudo cp client.conf.sample client.conf
# tracker服务器文件路径
base_path=/home/jkkj/Documents/develop/fastdfs/tracker
# tracker服务器IP地址和端口号
tracker_server=192.168.1.101:22122
# tracker服务器的http端口号,必须和tracker的设置对应起来
http.tracker_server_port=9999
sudo touch 1.txt
# /usr/bin/fdfs_upload_file <config_file> <local_filename>
# 上传文件:
/usr/bin/fdfs_upload_file client.conf 1.txt
http://192.168.1.101:9999/group1/M00/00/00/wKgBZV3BLnmAN9vDAAAAGSAVjvk898.txt