此教程应该是最简单的教程了你只需要直接按照下面的命令执行就好。
1. 安装 Linux(演示用使用 CentOS7) 系统 ( 请自行百度)
2. 使用 SecureCRT 工具 连接到的你的 Linux( 请自行百度)
3. 关闭 CentOS7 的防火墙 ( 或者将相应的端口 放行)
我采用的是关闭防护墙(也没人看得上攻击你的服务器)
systemctl stop firewalld.service #停止 firewall
systemctl disable firewalld.service #禁止 firewall 开机启动
firewall --cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示 running)
4. FastDFS的环境 准备( 直接执行下面命令)
[root@localhost ~]# yum install make cmake gcc gcc-- c++
[root@localhost ~]# yum install vim --enhanced
[root@localhost ~]# yum install zip unzip
[root@localhost ~] # yum install --y pcre pcre --devel
[root@localhost ~] # yum install --y zlib zlib --devel
[root@localhost ~] # yum install --y openssl openssl --devel
[root@localhost ~]# yum install net --tools
[root@localhost ~] # yum install git
5. 下载所需要的安装包 (GitHub直接下载就好)
[root@localhost ~] # git clone https://github.com/TyCoding/build --fastdfs.git
[root@localhost ~] # mv build --fastdfs/*/root/&& rm --rf build --fastdfs
[root@localhost ~] # cd software
6. 安装 libfastcommon
将 libfastcommon-master.zip 解压到 /usr/local/fast 目录下,并编译安装
[root@localhost software]# un zip libfastcommon --master.zip –d /usr/local/fast/
[root@localhost software] # cd /usr/local/fast/libfastcommon --master/
[root@localhost libfastcommon --master] # ./make.sh && ./make.sh install
由于 libfastcommon 安装好后会自动将库文件拷贝至 /usr/lib64 目录下,但因为FastDFS 程序引用/usr/lib 目录,所以我们可以通过创建软连接的方式来解决FastDFS 的引用路径问题,当然通过将/usr/lib64 下的库文件拷贝到 /usr/lib 下也行。
[root@localhost libfastcommon- - master] # ln --s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon .so
[root@localhost libfastcommon- - master]# ln --s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
[root@localhost libfastcommon- - master] # ln --s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
[root@localhost libfastcommon- - master] # ln --s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
7. 安装FastDFS
将FastDFS_v5.05.tar.gz解压到/usr/local/fast目录下
[root@localhost libfastcommon-master]# cd ~/software
[root@localhost software]# tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local/fast/
[root@localhost software]# cd /usr/local/fast/FastDFS/
[root@localhost FastDFS]# ./make.sh && ./make.sh install
因为FastDFS服务器脚本设置的bin目录为/usr/local/bin目录下,但是实际我们安装在usr/bin下面,所以我们要修改FastDFS配置文件中的路径,需要修改配置文件:/etc/init.d/fdfs_storaged以及/etc/init.d/fdfs_trackerd,修改方式如下:
[root@localhost FastDFS]# vim /etc/init.d/fdfs_storaged --这里涉及到了vim的语法,进入这个文件的编辑页面后,直接将输入法切换至英文状态,输入
:%s+/usr/local/bin+/usr/bin --当输入完成上面的指令后直接回车会看到:7 substitutions on 7 lines,输入
:wq! --保存并退出
一定要注意的是,这里并不是在文件中增加这一行代码,如上图,我们是给vim输入了一串指令,这个指令的作用是批量修改一些代码,当回车后会显示:7 substitutions on 7 lines,然后我们输入:wq!保存并退出文件的编辑。
同样的方式,修改/etc/init.d/fdfs_trackerd,输入命令
[root@localhost FastDFS]# vim /etc/init.d/fdfs_trackerd
:%s+/usr/local/bin+/usr/bin
:wq!
8. 配置tracker
进入/etc/fdfs目录并复制一份tracker.conf.sample并命名为tracker.conf,并修改tracker.conf,将其中的base_path参数的值修改为/fastdfs/tracker,并使用makir -p /fastdfs/tracker创建两个目录
点击键盘的i键进入vim的编辑模式,如果编辑完成后要先点击键盘的ESC键退出vim的编辑模式再点击键盘的键:wq!直接会在左下角写入
上面的文件需要我们自己创建所以在接下来在终端中输入如下命令
:wq!
[root@localhost fdfs]# mkdir -p /fastdfs/tracker
9. 启动tracker
[root@localhost fdfs]# /etc/init.d/fdfs_trackerd start
10. 配置storage
进入/etc/fdfs目录,赋值一份storage.conf.sample并命名为storage.conf,并修改storage.conf
[root@localhost fdfs]# cp storage.conf.sample storage.conf
[root@localhost fdfs]# vi storage.conf
修改如下几个参数:
base_path=/fastdfs/storage
store_path0=/fastdfs/storage
tracker_server=192.168.148.131:22122 #这个IP地址是你服务器的IP,如果是云服务器则是你的公网IP,不要盲目复制。
保存退出并创建/fastdfs/storage目录
:wq!
[root@localhost fdfs]# mkdir /fastdfs/storage
启动storage
/etc/init.d/fdfs_storaged start #直接在你的终端上输入
查看tracker和storage是否启动成功
ps -ef | grep fdfs
出现如上的显示才证明tracker和storage都正常启动了。 注意 这个地方要吐槽一下啦,要是你输入ps -ef | grep fdfs出现的不是这三行,而是两行或其他,就证明肯定有一个服务没有启动成功,一般就是你的配置有错误; 那么你有下面两个选择来解决这一错误情况:
- 执行/etc/init.d/fdfs_storaged stop和/etc/init.d/fdfs_trackerd
stop关闭服务,然后先启动tracker服务再执行storage服务,一般就可以解决 - 如果上面的办法还是不行,就重新安装FastDFS(从新直接编译方法即可);其次还要重新删除tracker.conf和storage.conf重新配置;最后再重新启动服务(尽量重启一下服务器)
11. 测试文件上传
进入/etc/fdfs目录并复制一份client.conf.sample并命名为client.conf
[root@localhost fdfs]# cp client.conf.sample client.conf
[root@localhost fdfs]# vi client.conf
编辑下列两项内容
base_path=/fastdfs/tracker
tracker_server=192.168.148.131:22122 #这个IP地址是你服务器的IP地址,云服务器的公网IP,不要盲目复制
下面使用fdfs_upload_file脚本进行文件上传操作。先创建测试文件,输入命令vim test.txt回车后点击i键进入编辑模式,输入Hello Coding!,点击ESC键,输入:wq!保存并退出。
[root@localhost ~]# vim test.txt
Hello WangKai FastDFS is successed!
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf ~/test.txt #直接在终端输入
如果出现类似下面的返回地址证明上传成功
13. FastDFS和Nginx结合(因为通过浏览器访问要用)
解压nginx-1.6.2.tar.gz到/usr/local目录下;解压fastdfs-nginx-module_v1.16.tar.gz到/usr/local目录下,编译和安装
[root@localhost ~]# cd ~/software
[root@localhost software]# tar -zxvf nginx-1.6.2.tar.gz -C /usr/local/
[root@localhost software]# tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast/
进入/usr/local/fast/fastdfs-nginx-module/src/目录下,修改其中的config文件,把其中第四行的usr/local/include都改为/usr/include
14.编译Nginx
[root@localhost src]# cd /usr/local/ && ll
[root@localhost local]# cd nginx-1.6.2 && ./configure --prefix=/usr/local/nginx --add-module=../fast/fastdfs-nginx-module/src/
正常情况下,会显示如下信息证明编译成功,因为这里需要为nginx添加fastdfs-nginx-module模块,和平常安装的nginx是不同的,如果不显示如下页面就重新进行编译
安装,并copy /usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf 到/etc/fdfs
[root@localhost nginx-1.6.2]# make && make install
[root@localhost nginx-1.6.2]# cd /usr/local/fast/fastdfs-nginx-module/src/
[root@localhost src]# cp /usr/local/fast/fastdfs-nginx module/src/mod_fastdfs.conf /etc/fdfs/
[root@localhost src]# cd /etc/fdfs && ll
[root@localhost fdfs]# vim mod_fastdfs.conf
修改如下部分
connect_timeout=10
tracker_server=192.168.148.131:22122 #IP地址还是根据自己的服务器IP地址改
url_have_group_name = true
store_path0=/fastdfs/storage
赋值FastDFS里的2个文件,到/etc/fdfs目录中,创建一个软连接,在/fastdfs/storage文件储存目录下创建软连接,将其连接到实际存放数据的目录
[root@localhost fdfs]# cd /usr/local/fast/FastDFS/conf/ && ll
[root@localhost conf]# cp http.conf mime.types /etc/fdfs/
[root@localhost conf]# ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
修改nginx的配置文件nginx-conf
[root@localhost conf]# cd /usr/local/nginx/conf && ll
[root@localhost conf]# vim nginx.conf
修改如下部分
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
启动nginx
[root@localhost conf]# /usr/local/nginx/sbin/nginx
如果出现以上显示证明nginx启动成功,否者的话启动失败,要重新编译安装nginx,一般都是fastdfs-nginx-module模块注入到nginx失败。
以上我们已经完成了全部的配置,测试各个端口的启动情况,输入netstat -ntlp,可以看到如下信息
15. 通过http上传访问文件
[root@localhost conf]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf ~/test.txt
16.设置开机自启动
[root@localhost ~]# vi /etc/rc.d/rc.local
向其中添加需要开机自启动服务的脚本
/etc/init.d/fdfs_trackerd start
/etc/init.d/fdfs_storaged start
/usr/local/nginx/sbin/nginx
其次,我们还要给rc.local文件赋予权限才能实现开机自启动
[root@localhost ~]# chmod +x /etc/rc.d/rc.local
输入命令reboot重启服务器,再输入netstat -ntlp查看当前启动的服务,可以看到storage, tracker, nginx三个服务都自启动了。
到这里FastDFS就全部完成。