Ubuntu 18.04 Fastdfs安装

安装Fastdfs,除了需要安装配置其本身以外,如果需要拿到文件,还需进行nginx的路由配置。

下载安装

安装git

sudo apt install git

下载Fastdfs依赖

如果无法克隆,将https改为git重新执行 

git clone https://github.com/happyfish100/libfastcommon.git

进入libfastcommon 文件夹

      cd libfastcommon

编译

sudo ./make.sh

安装

sudo ./make.sh install

下载fastdfs

git clone https://github.com/happyfish100/fastdfs.git

进入fastdfs文件夹

cd fastdfs

编译

sudo ./make.sh

安装

sudo ./make.sh install

安装问题:

如果出现:
In file included from /usr/include/fcntl.h:290:0,
                 from system_info.c:28:
In function ‘open’,                                            问题所在(下面蓝色字体)
    inlined from ‘get_block_size_by_write’ at system_info.c:889:8:
/usr/include/x86_64-linux-gnu/bits/fcntl2.h:50:4: error: call to ‘__open_missing_mode’ declared with attribute error: open with O_CREAT or O_TMPFILE in second argument needs 3 arguments
    __open_missing_mode ();
    ^~~~~~~~~~~~~~~~~~~~~~
Makefile:66: recipe for target 'system_info.o' failed
make: *** [system_info.o] Error 1


进入libfastcommon 文件夹中的 src
cd libfastcommon/src
编辑system.conf.c文件
vim system.conf.c
添加红色字迹的数据就ok了

         "%s/.blksize-test.tmp", path);
    if ((fd=open(tmp_filename, O_WRONLY | O_CREAT | O_DIRECT,0777)) < 0) {
        result = errno != 0 ? errno : ENOENT;
        logError("file: "__FILE__", line: %d, "
                "open file %s fail, errno: %d, error info: %s",
                __LINE__, tmp_filename, result, strerror(result));
        free(buff);
        return result;

配置Fastdfs

查看ip地址

sudo ifconfig

进入fdfs配置文件夹

cd /etc/fdfs

可删:复制配置文件

sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf

sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf

sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf

sudo cp /etc/fdfs/storage_ids.conf.sample /etc/fdfs/storage_ids.conf

创建tracker,storage 文件夹

sudo mkdir -p /home/fastdfs/tracker

sudo mkdir -p /home/fastdfs/storage

配置tracker.conf,storage.conf

cd /etc/fdfs/

sudo vim tracker.conf

按i进入编辑状态,修改base_path:

# the base path to store data and log files

base_path=/home/fastdfs/tracker

修改完成,按esc退出编辑状态,然后输入“:wq”保存退出(引号里面的)

sudo vim storage.conf

修改:

group_name=group1

store_path0=/home/fastdfs/storage

base_path=/home/fastdfs/storage

tracker_server=自己虚拟机的IP地址:22122

http.server_port=8888

配置client.config

sudo vim client.conf

修改:

# the base path to store log files

base_path = /home/fastdfs/tracker

tracker_server = 你的ip:22122

启动tracker ,storage

sudo /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start

sudo /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start

检查Fastfdfs是否可用

ps aux|grep fdfs

下载图片测试fdfs

sudo wget -O test.png https://www.baidu.com/img/bd_logo1.png

sudo /usr/bin/fdfs_upload_file /etc/fdfs/client.conf test.png

测试成功返回图片位置

group1/M00/00/00/rBO_tF5iCTiAGFzgAAAexZJI7KM796.png

配置nginx、fdfs-nginx-module

查看是否有nginx需要的依赖库:

dpkg -l | grep pcre

dpkg -l | grep zlib  

dpkg -l | grep openssl

安装pcre

sudo apt-get install libpcre3 libpcre3-dev

安装zlib

sudo apt-get install zlib1g-dev

安装openssl(Ubuntu自带openssl,如果没有执行下面命令)

sudo apt-get install openssl libssl-dev

下载并配置fastdfs-nginx-module

cd /usr/local/

sudo git clone https://github.com/happyfish100/fastdfs-nginx-module.git

进入文件夹,拷贝出来配置文件

cd fastdfs-nginx-module/src

sudo cp mod_fastdfs.conf /etc/fdfs/mod_fastdfs.conf

修改配置文件

sudo vim /etc/fdfs/mod_fastdfs.conf

connect_timeout=10 # 客户端访问文件连接超时时长(单位:秒)

tracker_server=你的ip:22122 # tracker服务IP和端口

url_have_group_name=true # 访问链接前缀加上组名

store_path0=/home/fastdfs/storage # 文件存储路径 要和storage的配置一致

返回根目录(注意有空格)

cd /

进入该目录修改config文件

cd /usr/local/fastdfs-nginx-module/src/

sudo vim config

修改如下:

CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"

返回根目录

cd /

复制http.config,mime.type(在fastDFS安装包的目录里,找不到这两个文件就直接在文件搜索栏搜)到/etc/fdfs目录下

cd /fastdfs/conf

sudo cp mime.types /etc/fdfs/mime.types

sudo cp http.conf /etc/fdfs/http.conf

返回根目录

cd /

下载并配置nginx

sudo wget http://nginx.org/download/nginx-1.16.1.tar.gz

sudo tar -zxvf nginx-1.16.1.tar.gz

一定要先进入nginx目录!!!

cd nginx-1.16.1

然后执行下面命令

sudo ./configure --prefix=/usr/local/nginx/ --sbin-path=/usr/bin/nginx --add-module=/usr/local/fastdfs-nginx-module/src

sudo make && sudo make install

修改配置文件

sudo vim /usr/local/nginx/conf/nginx.conf

在http里添加以下配置:

proxy_headers_hash_max_size 51200;

                proxy_headers_hash_bucket_size 6400;

在server里添加以下配置:

server {

        listen       80;

        server_name  localhost;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header REMOTE-HOST $remote_addr;    

       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

       proxy_set_header X-Forwarded-For $remote_addr;

       proxy_set_header Host $http_host;

add_header X-Frame-Options SAMEORIGIN;

client_max_body_size 8M;(配置请求体缓存区大小)

client_body_buffer_size 128k;(设置客户端请求体最大值)

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {

            root   html;

            index  index.html index.htm;

        }

       location ~  /group([0-9])/M00 {

      root /home/fastdfs/storage/data;

      ngx_fastdfs_module;

}

返回根目录

cd /

启动nginx并测试

sudo nginx

启动,检测是否成功(安装部分作为参考,主要是启动和检测)

Ubantu18.04 nginx 安装启动_Bannings_的博客-CSDN博客

创建M00软链接

sudo ln -s /home/fastdfs/storage/data /home/fastdfs/storage/data/M00

上传图片测试

获取网络图片

sudo wget -O test.png https://www.baidu.com/img/bd_logo1.png

上传

sudo /usr/bin/fdfs_upload_file /etc/fdfs/client.conf test.png

返回的地址为:

group1/M00/00/00/rBO_tF5iLBaAJsCQAAAexZJI7KM663.png

通过url获取上传后的图片

sudo wget http://localhost/group1/M00/00/00/rBO_tF5iLBaAJsCQAAAexZJI7KM663.png 

访问结果中的地址,如果在浏览器显示图片,则测试成功(一定要注意上面图片的名字,要和返回地址的名字一致

多storage节点配置

新建一个storage 地址

sudo mkdir home/fastdfs2/

sudo mkdir home/fastdfs2/storage/

修改storage.config

cd /etc/fdfs

sudo vim storage.conf

# store_path_count改为2 ,改参数用来控制storage节点的数量,有两个时就改为2

store_path_count = 2

#新增路径

store_path1 = /home/fastdfs2/storage

修改mod_fastdfs.conf ,修改完成后重启tracker和storage

sudo vim mod_fastdfs.conf

修改部分与storage.conf保持一致

store_path_count = 2

store_path1 = /home/fastdfs2/storage

修改nginx 配置

sudo vim /usr/local/nginx/conf/nginx.confngi

红色部分为新增的

location ~  /group([0-9])/M00 {

            root /home/fastdfs/data;

            ngx_fastdfs_module;

        }

        location ~  /group([0-9])/M01 {

            root /home/fastdfs2/storage/data;

            ngx_fastdfs_module;

 }

重启nginx

sudo nginx -s reload

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wL魔法师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值