Linux下安装Fastdfs全过程
作者:wd520521
一、前期准备工作
1、需要提前下载的安装包
(1)libfatscommon-1.0.43:FastDFS分离出的一些公用函数包
(2)fastdfs-6.06:FastDFS本体包
(3)nginx:nginx-1.23.1
(4)fastdfs-nginx-module-1.22:FastDFS和nginx的关联模块
2、安装所需要环境
(1)centos安装:
yum install -y gcc gcc-c++
yum -y install libevent
(2) ubuntu安装:
sudo apt install build-essential
二、安装并配置fsatdfs
1、解压并提前下载好的安装包
(1)将提前下载好的安装包放在/opt/fastdfs目录中
mkdir -p /opt/fastdfs
(2)编译并安装libfatscommon-1.0.43
解压安装包libfastcommon-1.0.43.tar.gz
tar -zxvf libfastcommon-1.0.43.tar.gz
进入 libfastcommon-1.0.43文件夹
cd libfastcommon-1.0.43
编译并安装
./make.sh ./make.sh install
(3)编译并安装fastdfs-6.06.tar.gz
解压fastdfs-6.06.tar.gz
tar -zxvf fastdfs-6.06.tar.gz
进入fastdfs-6.06目录
cd fastdfs-6.06
安装并编译
./make.sh ./make.sh install
将fastdfs安装文件夹下的配置文件拷贝到/etc/fdfs目录下
cp /opt/fastdfs/fastdfs-6.06/conf/* /etc/fdfs/
注意:我的安装目录在/opt/fastdfs,大家根据自己的安装目录去复制,/etc/fdfs/是自动生成的,无须大家自己创建。
(4)配置tracker服务
进入/etc/fdfs目录
cd /etc/fdfs
修改tracker配置文件中的tracker工作目录
vim tracker.conf
base_path=/usr/local/fastdfs/tracker
保存编辑
按下ESC :wq
创建tracker工作目录
mkdir /usr/local/fastdfs/tracker -p
启动tracker服务
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
查看是否启动成功
netstat -unltp | grep tracker
(5)配置storage服务
进入/etc/fdfs目录
cd /etc/fdfs
修改storage配置文件
vim storage.conf
修改storage的工作空间
base_path=/usr/local/fastdfs/storage
修改storage的存储空间
store_path0=/usr/local/fastdfs/storage
修改tracker的ip
#你的服务器ip或者本地ip tracker_server=114.xxx.xxx.184:22122
保存编辑
按下ESC :wq
创建storage的工作空间和存储空间的目录:
mkdir /usr/local/fastdfs/storage -p
注意:我这里是两个目录一样,大家如果不一样可以分开创建
启动storage 服务
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
查看是否启动成功
netstat -unltp | grep storage
查看tracker和storage是不是在通信
fdfs_monitor /etc/fdfs/storage.conf
出现ACTIVE,表示二者均正常启动,至此就可以进行上传文件测试了
(6)测试上传
进入/etc/fdfs目录
cd /etc/fdfs
修改配置文件client.conf
vim client.conf
base_path=/usr/local/fastdfs/client
tracker_server=114.xxx.xxx.184:22122
注意:tracker的ip 要与上面配置保持一致
创建目录:
mkdir /usr/local/fastdfs/client
echo "Hello Fastdfs">index.html /usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/index.html
返回结果为:
因为我nginx端口为8888并不是80,所以要在返回结果的IP后加端口号8888
http://114.xxx.xxx.184:8888/group1/M00/00/00/cnOzuGOtUMCADdhzAAAADjoCoNM64_big.html
但是目前还不能访问,因为没有配置nginx
测试上传图片(命令):
fdfs_upload_file /etc/fdfs/client.conf anti-steal.jpg /usr/bin/fdfs_test /etc/fdfs/client.conf upload anti-steal.jpg
(7)配置nginx
解压fastdfs-nginx-module-1.22.tar.gz
tar -zxvf fastdfs-nginx-module-1.22.tar.gz
进入fastdfs-nginx-module-1.22的src目录下
cd fastdfs-nginx-module-1.22/src/
复制配置文件mod_fastdfs.conf到/etc/fdfs目录下
cp mod_fastdfs.conf /etc/fdfs
修改/fastdfs-nginx-module/src/config文件 把usr/local改为usr
vim config
安装nginx
参考链接:linux下安装nginx
注意:在解压完nginx后执行./configure需改为如下命令,需要增加一个fastdfs-nginx-module模块
./configure \ --prefix=/usr/local/nginx \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ --http-scgi-temp-path=/var/temp/nginx/scgi \ --add-module=/opt/fastdfs/fastdfs-nginx-module-1.22/src
注意:上面的加不加无所谓,最重要的是最后一条--add-module=/opt/fastdfs/fastdfs-nginx-module-1.22/src,大家一定要换成自己的安装路径
进入/etc/fdfs/目录
cd /etc/fdfs
修改mod_fastdfs.conf配置文件
vim mod_fastdfs.conf
base_path=/usr/local/fastdfs/tmp tracker_server=114.xxx.xxx.184:22122 url_have_group_name = true store_path0=/usr/local/fastdfs/storage
下面是一些配置的介绍,大家可以参考根据自己的需求修改
connect_timeout=10 # 连接超时时间 tracker_server=192.168.255.131:22122 # Tracker Server storage_server_port=23000 # StorageServer 默认端口 url_have_group_name =true # 如果文件ID的uri中包含/group**,则要设置为true store_path0=/fastdfsapp/data/storage # Storage 配置的store_path0路径,必须和storage.conf中的一致 base_path=/fastdfsapp/logs/storage #日志路径 group_count = 1
创建tmp目录
mkdir /usr/local/fastdfs/tmp
修改nginx配置文件:
vim /usr/local/nginx/conf/nginx.conf
注意:listen 8888 端口值是要与 /etc/fdfs/storage.conf 中的 http.server_port=8888 (默认8888) 相对应,如果改成其它端口,则需要统一,同时在防火墙中打开该端口,当然tracker.conf中的 http.server_port=8080(默认8080)和他们保持一致最合适不过
server { listen 8888; # 这里不需要改成你的本地ip或者服务器ip server_name localhost; location /group1/M00 { ngx_fastdfs_module; } }
下面是另一种方式,大家可以参考一下:
# location 的配置,如果有多个group则配置location ~/group([0-9])/M00 ,没有则不用配group location ~ /group([0-9])/M00 { ngx_fastdfs_module; }
重启nginx
cd /usr/local/nginx/sbin ./nginx -s reload
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。