Linux Centos7.5 安装FastDFS以及遇到的坑

落日映苍穹つ 2022-04-18 06:06 827阅读 0赞

目录:

附:Linux Centos7.5安装FastDFS所需软件

准备工作

1、安装编译工具及库文件

2、上传所需文件到linux虚拟机上

3、安装FastDFS

4、测试:

5、安装nginx

6、FastDFS与Nginx整合

特别注意:

最后的测试:


前言:

  1. linux Centos7.5安装FastDFS,感觉真是特别的复杂,安装了两天,终于成功了。因此写一博客记录下来。

附:Linux Centos7.5 安装FastDFS所需软件

一、准备工作

1、安装编译工具及库文件

  1. yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

2、上传所需文件到linux虚拟机上

  1. mkdir software 创建software文件夹(目录路径:/usr/local/software

这里我是用Xftp工具上传的,当然其它工具也行。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NDk1Nzg2_size_16_color_FFFFFF_t_70

这里特别说明:(建议版本与我一致,否则可能会报错)

下载:(注:)

FastDFS_v5.08.tar.gz

https://codeload.github.com/happyfish100/libfastcommon/zip/master

http://nginx.org/download/nginx-1.14.1.tar.gz

1)安装libfastcommon时(特别注意,容易遇到坑)

此处需要注意的是需要下载:libfastcommon-master.zip,可以在百度自己搜下安装包,我刚开始在官网下载了libfastcommon_v1.04.tar.gz 和libfastcommon_v1.01.tar.gz 之后,在编译安装完后,再去FastDFS目录中编译安装会报错,报缺少文件。

建议从github中余庆提供的libfastcommon-master中下载,

20181121012527412.png

由于在网上遇到过100kb的,这个之前与fast5.05安装时是成功的,但是与fast5.08安装就会报缺少文件的错。

20181121012646420.png

如果遇到../common/fdfs_global.c:20:20: 致命错误:logger.h:没有那个文件或目录,这个错误。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NDk1Nzg2_size_16_color_FFFFFF_t_70 1

  1. 那么请更换libfastcommon包,我使用libfastcommon\_v1.04.tar.gz libfastcommon\_v1.01.tar.gz 均报错,安装libfastcommon-master.zip时可以的。
  2. cd /usr/local
  3. mkdir fast
  4. unzip libfastcommon-master.zip -d /usr/local/fast/ #解压libfastcommon-master.zip到/usr/local/fast/目录下
  5. yum install unzip #如果提示-bash: :unzip: 未找到命令,需要执行此命令,否则可以忽略
  6. cd /usr/local/fast/libfastcommon-master #进入该目录
  7. ./make.sh && ./make.sh install #编译并安装

编译安装后,发现libfastcommon默认安装到了/usr/lib64/这个 位置。

  1. ls | grep libfastcommon.so #可以通过此命令在/usr/lib目录和/usr/lib64都查看下
  2. cd /usr/lib
  3. ls | grep libfastcommon.so
  4. cd /usr/lib64/
  5. ls | grep libfastcommon.so

FastDFS版本不同的差异:

FastDFS_v5.05.tar.gz:

20181109104824496.png

FastDFS_v5.08.tar.gz:

20181121012402436.png

进行软件创建。FastDFS主程序设置的目录为/usr/local/lib/,所以我们需要创建/ usr/lib64/下的一些核心执行程序的软连接文件。

  1. cd /usr/local/lib #如果没有/usr/local/lib,则mkdir /usr/local/lib
  2. ##建立软连接
  3. ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
  4. ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
  5. ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
  6. ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
  7. #如果是fastdfs5.0.8,上述创建软连接,可能会提示已经存在,但是为了保证没有漏掉,建议还是都执行一遍

3、安装FastDFS

  1. cd /usr/local/software #进入/usr/local/software目录下
  2. tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local/fast/ #解压 ,如果是5.0.8,记得改版本号
  3. cd /usr/local/fast/FastDFS/ #进入/usr/local/fast/FastDFS/ 目录下
  4. ./make.sh && ./make.sh install #编译并安装

ps:

  1. **如果你在执行编译安装命令时遇到下面这种错误,更换FastDFS 版本,或者libfastcommon-master.zip包,如果libfastcommon-master.zip100kb左右的,用FastDFS5.0.5,如果是212kb的压缩包,使用FastDFS5.0.8的。在这里用的是是100kb左右的libfastcommon-master.zip,使用FastDFS\_v5.08.tar.gz,结果在编译安装时报如下错误:(我更换到FastDFS\_v5.05.tar.gz,报错提示没有了)**
  2. /usr/include/fastcommon/ioevent.h:82:2: 错误:#error port me
  3. #error port me
  4. ^
  5. /usr/include/fastcommon/ioevent.h:95:2: 错误:#error port me
  6. #error port me
  7. ^
  8. /usr/include/fastcommon/ioevent.h:108:2: 错误:#error port me
  9. #error port me

20181109111947762.png

20181109112049362.png

  1. cd /usr/bin && ls |grep fdfs #进入/usr/bin目录下,并列出fdfs的所有脚本

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NDk1Nzg2_size_16_color_FFFFFF_t_70 2

这里5.05版本需要更改,5.0.8默认是usr/bin了 ,因此执行编辑文件替换命令的这几步可以省略了,当然稳妥起见可以进入配置文件看看。

  1. ##因为FastDFS服务脚本设置的bin目录为/usr/local/bin/下,但是实际我们安装在了/usr/bin/下面。所以我们需要修改FastDFS配置文件中的路径,也就是需要修改两个配置文件
  2. yum -y install vim* #如果vim编辑命令,执行后,提示找不到命令,就执行这个,否则可忽略
  3. vim /etc/init.d/fdfs_storaged #编辑fdfs_storaged 文件
  4. :%s+/usr/local/bin+/usr/bin #然后回车,执行全局替换命令,:wq!保存退出
  5. vim /etc/init.d/fdfs_trackerd
  6. :%s+/usr/local/bin+/usr/bin #然后回车,执行全局替换命令,:wq!保存退出
  7. cd /etc/fdfs/ #进入/etc/fdfs/目录下
  8. ##拷贝,并重命名
  9. cp storage.conf.sample storage.conf
  10. cp client.conf.sample client.conf
  11. cp tracker.conf.sample tracker.conf

效果图如下:

2018110911350295.png

编辑tracker.conf:

  1. vim /etc/fdfs/tracker.conf #编辑tracker.conf
  2. base_path=/fastdfs/tracker #暂时就只修改tracker.conf中base_path内容
  3. mkdir -p /fastdfs/tracker #由于tracker.conf中base_path的/fastdfs/tracker路径没有,所以需创建

Centos7关闭防火墙方法(详解):

  1. centos7中的防火墙改成了firewall,使用iptables无作用,开放端口的方法如下:
  2. firewall-cmd --zone=public --add-port=80/tcp --permanent
  3. 返回success为成功
  4. ######################################################################################
  5. 命令含义:
  6. --zone #作用域
  7. --add-port=80/tcp #添加端口,格式为:端口/通讯协议
  8. --permanent #永久生效
  9. ######################################################################################
  10. systemctl restart firewalld.service #重启防火墙
  11. systemctl stop firewalld.service #关闭防火墙
  12. netstat -lntp #查看监听(Listen)的端口
  13. netstat -lnp|grep 8080 #检查端口被哪个进程占用

注:此处仅为学习,所以直接关闭防火墙即可,如果在公司,则只能打开所用端口,不能关闭。

tracker启动:

  1. cd /fastdfs/tracker/ && ll #进入/fastdfs/tracker/ 目录并查看该目录下所有文件

注:启动tracker两种方式:

方式一:

/etc/init.d/fdfs_trackerd start #启动tracker命令

/etc/init.d/fdfs_trackerd stop #停止tracker命令

方式二:

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start #启动tracker命令

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop #关闭tracker命令

5.0.8的话,这里方式一、方法二都可以在/fastdfs/tracker目录下生成data,log文件夹,我第一次搭建使用5.0.5版本用第一种方式并不会创建这两个文件夹。watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NDk1Nzg2_size_16_color_FFFFFF_t_70 3

效果图如下:

20181109132222782.png

修改storage.conf文件:

  1. vim /etc/fdfs/storage.conf #修改storage.conf文件
  2. ##修改内容:
  3. base_path=/fastdfs/storage
  4. store_path0=/fastdfs/storage
  5. tracker_server=192.168.59.131:22122 ##改成自己的虚拟机IP地址
  6. http.server_port=80
  7. mkdir -p /fastdfs/storage #创建storage.conf中的base_path、store_path0路径

启动关闭storaged 两种方式 方式一:

  1. /etc/init.d/fdfs\_storaged start \#启动storaged
  2. /etc/init.d/fdfs\_storaged stop \#关闭storaged

方式二:

  1. /usr/bin/fdfs\_storaged /etc/fdfs/storage.conf start \#启动storaged
  2. /usr/bin/fdfs\_storaged /etc/fdfs/storage.conf stop \#关闭storaged

(我第一次安装成功是用FastDFS5.05版本,用方式一并没有生成data和log文件,我第二次安装用5.0.8版本,可以生成两个文件夹了)

第一次安装成功的时候使用FastDFS5.05版本:

对比如图:使用方式一,并没有在/fastdfs/storage目录下生成data和log文件夹,而方式二可以。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NDk1Nzg2_size_16_color_FFFFFF_t_70 4

第二次安装的时候FastDFS5.0.8版本:

对比图:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NDk1Nzg2_size_16_color_FFFFFF_t_70 5

  1. cd /fastdfs/storage/data/ && ls #进入/fastdfs/storage/data/,并查看

效果图:watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NDk1Nzg2_size_16_color_FFFFFF_t_70 6

  1. ##设置开机启动
  2. 命令:vim /etc/rc.d/rc.local
  3. 加入配置:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start

第二次安装fastdfs开机启动的配置我是用方式一的启动命令,看自己吧。

  1. /etc/init.d/fdfs_trackerd start
  2. /etc/init.d/fdfs_storaged start

20181115120446692.png

编辑client.conf文件 :

  1. ##编辑client.conf文件
  2. 命令:vim /etc/fdfs/client.conf
  3. ######################################################################################
  4. 修改内容:
  5. base_path=/fastdfs/tracker
  6. tracker_server=192.168.59.131:22122
  7. cd /usr/bin && ls |grep fdfs

效果图:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NDk1Nzg2_size_16_color_FFFFFF_t_70 7

4、测试:

原本/fastdfs/storage/data/00/00为空,并没有文件。

20181109133527781.png

我们进行上传操作,比如把之前的/usr/local/software/文件夹下的某一个 文件上传到FastDFS系统中去,命令如 下:

  1. /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/software/FastDFS_v5.05.tar.gz

效果图如下: (/fastdfs/storage/data/00/00 目录中已经有文件了)

20181109133645594.png

注:

  1. 这生成的group1/M00/00/00/wKg7g1vlYXeATmYTAAVFOL7FJU4.tar.gz就是我们访问路径的一部分,完整路径是192.168.59.131/group1/M00/00/00/wKg7g1vlYXeATmYTAAVFOL7FJU4.tar.gz

5、安装nginx(建议此处不要用yum方式安装nginx,因为需要添加模块,没有./configure)

  1. tar -zxvf nginx-1.14.1.tar.gz -C /usr/local/ #解压nginx-1.14.1.tar.gz,并放在/usr/local/目录下

安装pcre:

  1. yum -y install wget #如果wget没有安装的,报wget命令未找到,需要先安装wget,否则可以忽略
  2. wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz #安装pcre
  3. tar -zxvf pcre-8.35.tar.gz -C /usr/local #解压到/usr/local
  4. cd /usr/local/pcre-8.35 #进入pcre-8.35目录
  5. ./configure
  6. make && make install #编译安装
  7. pcre-config --version #查看版本

效果图:

2018110914375334.png

进入nginx的安装目录

  1. cd /usr/local/nginx-1.14.1
  2. ./configure --prefix=/usr/local/nginx --with-http_stub_status_module
  3. make && make install #编译并安装

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NDk1Nzg2_size_16_color_FFFFFF_t_70 8

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NDk1Nzg2_size_16_color_FFFFFF_t_70 9

现在可以在主机浏览器中输入你的ip地址,效果如图,则表明已经成功安装nginx。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NDk1Nzg2_size_16_color_FFFFFF_t_70 10

6、FastDFS与Nginx整合

需要安装fastdfs-nginx-module。

  1. cd /usr/local/software/ #进入/usr/local/software/目录下
  2. tar -zxvf /usr/local/software/fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast/
  3. #解压fastdfs-nginx-module_v1.16.tar.gz到/usr/local/fast/目录中
  4. cd fast/fastdfs-nginx-module/src/ #进入fast/fastdfs-nginx-module/src/目录下
  5. vim /usr/local/fast/fastdfs-nginx-module/src/config #编辑配置文件config
  6. :%s+/usr/local+/usr #将config文件中的/usr/local替换成/usr

修改后的配置文件config如图:

20181109145919467.png

  1. rm -rf nginx #首先把之前的nginx进行删除
  2. cd nginx-1.14.1/ #进入nginx-1.14.1目录下
  3. ./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/
  4. make && make install #编译安装
  5. ##复制fastdfs-ngin-module中的配置文件,到/etc/fdfs目录中
  6. 命令:cp /usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
  7. ## 进行修改 /etc/fdfs/ 目录下,我们刚刚copy过来的mod_fastdfs.conf 文件
  8. vim /etc/fdfs/mod_fastdfs.conf
  9. 修改内容:比如连接超时时间、跟踪器路径配置、urlgroup配置、
  10. connect_timeout=10
  11. tracker_server=192.168.59.131:22122
  12. url_have_group_name = true
  13. store_path0=/fastdfs/storage
  14. ##复制FastDFS里的2个文件,到/etc/fdfs目录中
  15. cd /usr/local/fast/FastDFS/conf/ #进入/usr/local/fast/FastDFS/conf目录下
  16. cp http.conf mime.types /etc/fdfs/ #将http.conf,mime.types两个文件拷贝到/etc/fdfs/目录下
  17. ##创建一个软连接,在/fastdfs/storage文件存储目录下创建软连接,将其链接到实际存放数据 的目录。
  18. cd /fastdfs/storage #进入/fastdfs/storage目录下
  19. ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
  20. ##编辑nginx.conf
  21. cd /usr/local/nginx/conf #进入/usr/local/nginx/conf目录下
  22. vim nginx.conf #编辑nginx.conf

编辑如图:(部分截图,只需添加如下部分)

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NDk1Nzg2_size_16_color_FFFFFF_t_70 11

  1. location ~/group([0-9])/M00 {
  2. root /fastdfs/storage/data;
  3. ngx_fastdfs_module;
  4. }

注意:nginx里的端口要和配置FastDFS存储中的storage.conf文件配置一致, 也就是(http.server_port=80)

特别注意:

  1. 这里的nginx启动命令是:

关闭nginx命令:/usr/local/nginx/sbin/nginx -s stop

启动nginx命令:/usr/local/nginx/sbin/nginx

查看版本命令:/usr/local/nginx/sbin/nginx -v

如果直接用nginx -s stop,nginx -s reload,nginx -v。。。。。会报错:

20181109174828645.png

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NDk1Nzg2_size_16_color_FFFFFF_t_70 12

  1. 如果遇到使用命令/usr/local/nginx/sbin/nginx -s reload,出现报错:nginx: \[error\] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"

解决方法(命令如下,效果如上图):

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

以上命令太长,比较复杂,因此提供解决办法:编辑etc目录下的profile文件。

vim /etc/profile

在最后一行加上PATH=$PATH:/usr/local/nginx/sbin ,保存退出

source profile,让profile配置文件生效

具体如下图:

20181109180305920.png

最后的测试:

1.storage,tracker,nginx需要是启动的。

/etc/init.d/fdfs_trackerd start 启动
/etc/init.d/fdfs_storaged start 启动

ps -ef | grep fdfs 查看fdfs服务是否启动

ps -ef | grep nginx 查看nginx服务是否启动

20181121020328604.png

当我主机访问http://192.168.59.131/group1/M00/00/00/wKg7g1vlT2-AfvZfAAVFOL7FJU4.tar.gz时,浏览器下载 了该文件。

20181109175926156.png

附:FastDFS 文件上传成功,访问404

发表评论

表情:
评论列表 (有 0 条评论,827人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Linux遇到

    最近换了一个电脑  新安装了一个linux   装在虚拟机下   具体的安装过程则合理不在赘述 讲讲安装之后发现的问题吧  首先是没有汉字  重新下载安装  这个不复杂