一、安装libfastcommon
1、wget https://github.com/happyfish100/libfastcommon/archive/V1.0.38.tar.gz
2、解压安装包:tar -zxvf V1.0.38.tar.gz
3、进入目录:cd libfastcommon-1.0.38
4、./make.sh
5、./make.sh install
6、可能遇到的问题:
-bash: make: command not found
-bash: gcc: command not found
解决方案:
debian通过apt-get install gcc make安装
centos通过yum -y install gcc make安装
二、安装FastDFS
1、获取fdfs安装包:
wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz
2、解压安装包:tar -zxvf V5.11.tar.gz
3、进入目录:cd fastdfs-5.11
4、执行编译:./make.sh
5、安装:./make.sh install
查看可执行命令:ls -la /usr/bin/fdfs*,如下成功
三、配置Tracker服务(追踪服务器)
1、进入/etc/fdfs目录,有三个.sample后缀的文件(自动生成的fdfs模板配置文件),通过cp命令拷贝tracker.conf.sample,删除.sample后缀作为正式文件:
cp tracker.conf.sample tracker.conf
2、编辑tracker.conf:vim tracker.conf,修改相关参数
#tracker存储data和log的跟路径,必须提前创建
base_path=/usr/local/fastDFS/tracker
#tracker默认22122
port=22122
#http端口,注意这个在fastdfs5.05版本已经不用配置了,不用管,storage.conf也是一样
http.server_port=80
启动tracker(支持start|stop|restart):
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
3、查看tracker启动日志:进入刚刚指定的base_path(/usr/local/fastDFS/tracker)中有个logs目录,查看trackerd.log文件
4、查看端口情况:netstat -apn|grep fdfs
5、可能遇到的报错:
/usr/bin/fdfs_trackerd: error while loading shared libraries: libfastcommon.so: cannot open shared object file: No such file or directory
解决方案:建立libfastcommon.so软链接
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
四、配置Storage服务
1、进入/etc/fdfs目录,有cp命令拷贝storage.conf.sample,删除.sample后缀作为正式文件;
2、编辑storage.conf:vim storage.conf,修改相关参数:
#storage存储data和log的根路径,必须提前创建好
base_path=/usr/local/fastDFS/storage
#storge默认23000,同一个组的storage端口号必须一致
port=23000
#默认组名,根据实际情况修改
group_name=group1
#存储路径个数,需要和store_path个数匹配
store_path_count=1
#如果为空,则使用base_path
store_path0=/usr/local/fastDFS/storage
#配置该storage监听的tracker的ip和port
#这里注意容易踩坑,这里的ip最好设置服务器本地ip,以便能正确访问tracker服务。
#别设置公网ip,会访问不到;也别设置localhost或者127.0.0.1,storage一起动就挂掉
tracker_server=10.122.149.211:22122
3、启动storage(支持start|stop|restart):
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
注意:小心不要启动了多个storage进程,用ps命令查看一下,只启动一个
4、查看storage启动日志:进入刚刚指定的base_path(/usr/local/fastDFS/storage)中有个logs目录,查看storaged.log文件
5、此时再查看tracker日志:发现已经开始选举,并且作为唯一的一个tracker,被选举为leader
6、查看端口情况:netstat -apn|grep fdfs
7、通过monitor来查看storage是否成功绑定:
命令 /usr/bin/fdfs_monitor /etc/fdfs/storage.conf
结果类似如下:
五、安装Nginx和fastdfs-nginx-module模块
安装nginx请参考第四大点nginx的安装,不同之处是安装的时候执行./configure的时候,加上
–add-module=/usr/local/fastDFS/fastdfs-nginx-module-1.20/src
可能会出现错误
1、可能的报错:
/usr/include/fastdfs/fdfs_define.h:15:27: fatal error: common_define.h: No such file or directory
解决方案:修改fastdfs-nginx-module-1.20/src/config文件,如下
ngx_module_incs=“/usr/include/fastdfs /usr/include/fastcommon/”
CORE_INCS=“$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/”
修改保存好,最好先将nginx删除,rm -rf /usr/local/nginx,再重新编译安装nginx
2、启动成功,但还会报其他的错误,请不用担心,先继续第五步操作
。。。。参考第六大步。。。。
3、完成第六步后,启动nginx
启动、停止:
cd /usr/local/nginx/sbin/
./nginx -c /usr/local/nginx/conf/nginx.conf #指定配置文件
./nginx -s stop #此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程
./nginx -s quit #此方式停止步骤是待nginx进程处理任务完毕进行停止
./nginx -s reload
进入nginx中的sbin目录,查看安装配置
./nginx -V
六、配置Nginx和fastdfs-nginx-module模块
1、配置mod-fastdfs.conf,并拷贝到/etc/fdfs文件目录下
//fastdfs-nginx-module-1.20,就是在/usr/local/fastDFS把V1.20.tar.gz解压在同名目录
//进入目录fastdfs-nginx-module-1.20/src/,把其中的mod_fastdfs.conf拷贝到/etc/fdfs 目录
cd fastdfs-nginx-module-1.20/src/
cp mod_fastdfs.conf /etc/fdfs
2、进入/etc/fdfs修改mod-fastdfs.conf:
base_path=/usr/local/fastDFS
#tracker的地址,10.122.149.211是服务器ip,和上面storage的设置一样
tracker_server=10.122.149.211:22122
url_have_group_name=true #url是否包含group名称
storage_server_port=23000 #需要和storage配置的相同
store_path_count=1 #存储路径个数,需要和store_path个数匹配
store_path0=/usr/local/fastDFS/storage #文件存储的位置,此路径和之前配置storage配置的路径一样
3、配置nginx,80端口server增加location如图:
cd /usr/local/nginx/conf/
vim nginx.conf
增加如下配置:
# dfs 存放图片等数据的路径
location ~/M00{
root /usr/local/fastDFS/storage;
ngx_fastdfs_module;
}
4、最后需要拷贝fastdfs解压目录中的http.conf和mime.types:
//fastdfs-5.11,就是第二步解压后的目录
cd /usr/local/fastdfs-5.11/conf
cp mime.types http.conf /etc/fdfs/
七、FastDFS常用命令测试和注意项
1、进入/etc/fdfs目录,有cp命令拷贝client.conf.sample,删除.sample后缀作为正式文件;
2、修改client.conf相关配置:
base_path=/usr/local/fastDFS/tracker //tracker服务器文件路径,和之前tracker同名设置一致
tracker_server=10.122.149.211:22122 //tracker服务器IP地址和端口号,这个和tracker配置一致的
http.tracker_server_port=80 # tracker服务器的http端口号,这个在fast5.0.5已经没有用了
3、新建一个测试文档4.txt,内容为abc
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf 4.txt
4、命名说明
上传成功后的文件存在在storage配置目录下的data/00/00目录下,我安装的目录是:/usr/local/fastDFS/storage/data/00/00
组名:group1
磁盘:M00
目录:00/00
文件名称:rBLLCF5fc3uAZP6ZAAAAWJRisL8769.txt
上传成功后的文件存在在storage配置目录下的data/00/00目录下,我安装的目录是:/usr/local/fastDFS/storage/data/00/00
组名:group1
磁盘:M00
目录:00/00
文件名称:rBLLCF5fc3uAZP6ZAAAAWJRisL8769.txt
group1/M00/00/00/wKicB1jjiFmAOUdkAAHk-VzqZ6w720.jpg,
其中group1表示这张图片被保存在了哪个组当中,
M00代表磁盘目录,如果电脑只有一个磁盘那就只有M00,
如果有多个磁盘,那就M01、M02…等等。
00/00代表磁盘上的两级目录,每级目录下是从00到FF共256个文件夹,
两级就是256*256个。wKicB1jjiFmAOUdkAAHk-VzqZ6w720.jpg表示被存储到storage上的3.jpg被重命名的名字
这样做的目的是为了防止图片名字重复。
通过wget和浏览器方式访问成功:
wget http://10.122.149.211/group1/M00/00/00/rBLLCF5fc3uAZP6ZAAAAWJRisL8769.txt
或者通过浏览器访问