FastDFS安装

1. 上传解压

下载fastdfs源码并上传到目标机器。
下载libfastcommon源码并上传到目标机器。
按照Linux配置中的方法配置本地yum源。

2. 安装基础编译环境

yum -y install gcc perl

3. 安装公共C函数库libfastcommon

tar -zxvf libfastcommon-1.0.36.tar.gz
mv libfastcommon-1.0.36 /home/fastdfs/libfastcommon
cd /home/fastdfs/libfastcommon
./make.sh
./make.sh install

3. 安装FastDFS

tar -zxvf fastdfs-5.11.tar.gz
cd fastdfs-5.11
./make.sh
./make.sh install

4. 配置Tracker和Storage

[创建目录和文件]
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
mkdir -p /home/fastdfs/filedata/tracker
mkdir -p /home/fastdfs/filedata/storage/{info,data}
chmod -R 755 /home/fastdfs/filedata
[配置Tracker]
vi /etc/fdfs/tracker.conf
在配置文件中搜索如下三项修改

1
2
3
bind_addr=本机IP
max_connections=500
base_path=/home/fastdfs/filedata/tracker

[配置Storage]
vi /etc/fdfs/storage.conf
在配置文件中搜索如下五项修改

1
2
3
4
5
bind_addr=本机IP
base_path=/home/fastdfs/filedata/storage/info
store_path0=/home/fastdfs/filedata/storage/data
max_connections=500
tracker_server=本机IP:22122

5. 设为服务开机自启

[编辑fdfs_trackerd服务文件]
vi /usr/lib/systemd/system/fdfs_trackerd.service

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=fdfs_trackerd
After=network.target
[Service]
User=root
Type=oneshot
RemainAfterExit=yes
ExecStart=/home/fastdfs/tracker/fdfs_trackerd /etc/fdfs/tracker.conf start
ExecStop=/home/fastdfs/tracker/fdfs_trackerd /etc/fdfs/tracker.conf stop
ExecReload=/home/fastdfs/tracker/fdfs_trackerd /etc/fdfs/tracker.conf restart
[Install]
WantedBy=multi-user.target

[编辑fdfs_storaged服务文件]
vi /usr/lib/systemd/system/fdfs_storaged.service

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=fdfs_storaged
After=network.target
[Service]
User=root
Type=oneshot
RemainAfterExit=yes
ExecStart=/home/fastdfs/storage/fdfs_storaged /etc/fdfs/storage.conf start
ExecStop=/home/fastdfs/storage/fdfs_storaged /etc/fdfs/storage.conf stop
ExecReload=/home/fastdfs/storage/fdfs_storaged /etc/fdfs/storage.conf restart
[Install]
WantedBy=multi-user.target

[配置开机自启]
systemctl enable fdfs_trackerd
systemctl enable fdfs_storaged
[启动服务]
systemctl start fdfs_trackerd
systemctl start fdfs_storaged

6. 上传测试

[编辑client配置文件]
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
vi /etc/fdfs/client.conf

1
2
3
4
[Client 的数据和日志目录]
base_path=/home/fastdfs/client
[Tracker端口]
tracker_server=本机IP:22122

[使用client上传图片到FastDFS]
/home/fastdfs/client/fdfs_upload_file /etc/fdfs/client.conf /home/1.jpg
group1/M00/00/00/wKiaf18qJ8KAdMbFAAAyp_oBU98522.jpg
根据返回的图片路径可以在/home/fastdfs/filedata/storage/data/中找到该图片,不过如果想要在浏览器访问图片,则还需要安装http服务器,例如Nginx。

7. 安装Nginx

7.1 安装编译依赖环境

yum install gcc pcre-devel zlib-devel openssl-devel
[开放防火墙端口]
firewall-cmd --zone-public --add-port=自定义端口/tcp --permanent
[重启防火墙]
systemctl restart firewalld
[查看防火墙已开启端口]
firewall-cmd --list-port

7.2 编译安装

下载nginx源码并上传到目标机器。
下载fastdfs-nginx-module源码并上传到目标机器。
tar -zxvf nginx-1.14.2.tar.gz
tar -zxvf fastdfs-nginx-module-1.20.tar.gz
mv nginx-1.14.2 /home/fastdfs/nginx_fdfs
mv fastdfs-nginx-module-1.20 /home/fastdfs/fastdfs-nginx-module
vi /home/fastdfs/fastdfs-nginx-module/src/config
找到ngx_module_incs和CORE_INCS替换为如下所示:
ngx_module_incs=”/usr/include/fastdfs /usr/include/fastcommon/”
CORE_INCS=”$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/”
[自定义编译nginx]
cd /home/fastdfs/nginx_fdfs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
./configure \
--prefix=/home/fastdfs/nginx_fdfs \
--sbin-path=/usr/sbin/nginx_fdfs \
--conf-path=/etc/nginx_fdfs/nginx_fdfs.conf \
--error-log-path=/var/log/nginx_fdfs/error.log \
--pid-path=/var/run/nginx_fdfs/nginx_fdfs.pid \
--lock-path=/var/lock/nginx_fdfs.lock \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_gzip_static_module \
--http-log-path=/var/log/nginx_fdfs/access.log \
--with-http_stub_status_module \
--with-openssl= \
--add-module=/home/fastdfs/fastdfs-nginx-module/src

[安装nginx]
make
make install

7.3 编辑配置文件

vi /etc/fdfs/mod_fastdfs.conf

1
2
3
4
5
6
7
connect_timeout=10
tracker_server=127.0.0.1:22122
url_have_group_name=true
store_path0=/home/fastdfs/filedata/storage/data
group_name=group1
base_path=/home/fastdfs/filedata/storage/info
#include http.conf

vi /etc/nginx_fdfs/nginx_fdfs.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
worker_processes  1;
pid  /home/fastdfs/nginx_fdfs/nginx_fdfs.pid;
user root;
events {
    worker_connections  1024;
}
http {
    server {
        listen 自定义端口;
        server_name localhost;
        location ~/group[0-9]/ {
           ngx_fastdfs_module;
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        root html;
        }
    }
}
7.4 设为服务开机自启

[编辑服务文件]
vi /usr/lib/systemd/system/nginx_fdfs.service

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=nginx_fdfs
After=network.target
[Service]
Type=forking
ExecStart=/usr/sbin/nginx_fdfs -c /etc/nginx_fdfs/nginx_fdfs.conf
ExecReload=/usr/sbin/nginx_fdfs -s reload
ExecStop=/usr/sbin/nginx_fdfs -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target

[设置服务开机自启]
systemctl enable nginx_fdfs
[启动服务]
systemctl start nginx_fdfs

7.5 浏览器查看FastDFS图片

在浏览器输入的图片url格式:
http://Nginx主机IP:Nginx端口/存储图片时返回的图片存储地址
完整的url示例:
http://192.168.154.127:2000/group1/M00/00/00/wKiaf18qJ8KAdMbFAAAyp_oBU98522.jpg
此时即可在浏览器中查看存储在FastDFS中的图片