在centos上安装fastdfs+nginx(单机版)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/song_java/article/details/81483791

生产环境肯定是要集群部署的,本文只是为了说明安装过程,因此只有一台机器: 39.108.192.61 , 操作系统版本信息:

$: cat /proc/version

Linux version 3.10.0-514.6.2.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Thu Feb 23 03:04:39 UTC 2017

资源: 文中提到的百度云盘资源, 链接: https://pan.baidu.com/s/15KxhGXHr5kKdcvYq6zBNfw 密码: qyw6

一、在安装FastDFS之前必须先安装libevent,安装libevent步骤如下:

1.下载libevent:

wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz

2.解压libevent:

$: tar -zxvpf libevent-2.0.21-stable.tar.gz

3.进入解压目录:

$: cd libevent-2.0.21-stable

4.指定安装目录:

./configure --prefix=/usr/local/libevent-2.0.21

5.安装libevent:

make

make install

二、安装FastDFS步骤如下:

1.下载FastDFS:

百度云盘链接: https://pan.baidu.com/s/15KxhGXHr5kKdcvYq6zBNfw

密码: qyw6

2.解压FastDFS:

$: tar xvf FastDFS_v5.08.tar.gz

3.进入解压目录:

$: cd FastDFS

4.修改FastDFS的安装文件:

$: vi make.sh

TARGET_PREFIX=/usr/local/FastDFS  ---安装路径  

TARGET_CONF_PATH=/etc/fdfs  ---配置文件路径  

WITH_LINUX_SERVICE=1   ---是否为Linux服务  

5.指定libevent的lib目录:

$: ./make.sh C_INCLUDE_PATH=/usr/local/libevent-2.0.21/include LIBRARY_PATH=/usr/local/libevent-2.0.21/lib

6.安装FastDFS:

$: ./make.sh install

7.设置软连接(否则编译nginx时会出错)

$: ln -sv /usr/local/FastDFS/include/fastcommon /usr/local/include/fastcommon

$: ln -sv /usr/local/FastDFS/include/fastdfs /usr/local/include/fastdfs

$: ln -sv /usr/local/FastDFS/lib/libfastcommon.so /usr/local/lib/libfastcommon.so

$: ln -sv /usr/local/FastDFS/lib/libfastcommon.so.1 /usr/local/lib/libfastcommon.so.1

$: ln -sv /usr/local/FastDFS/lib/libfdfsclient.so /usr/local/lib/libfdfsclient.so

$: ln -sv /usr/local/FastDFS/lib/libfdfsclient.so.1 /usr/local/lib/libfdfsclient.so.1

执行以上命令时会报错,提示文件不存在。

是因为在此之前需要安装libfastcommon ,可参考 http://blog.csdn.net/yecong111/article/details/42646523

可以从这个地址下载 : https://github.com/happyfish100/libfastcommon.git  ,为避免文件丢失,已在百度云盘保存其源码包

大概是这样操作:

  FastDFS_v5.05依赖libfastcommon,不再依赖libevent

unzip libfastcommon-master.zip -d /usr/local

    cd /usr/local/libfastcommon-master

    ./make.sh

   ./make.sh install

 libfastcommon.so默认安装到了/usr/lib64/libfastcommon.so,而FastDFS主程序设置的lib目录是/usr/local/lib,所以设置软连接

$: ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so

$: ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so

 $: ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so

 $: ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

这样做的最终目的其实就是为了让libfastcommon.so和libfdfsclient.so放到指定的位置,便于之后进行编译,否则会各种编译出错

三、在安装Nginx之前,需要安装gcc、 openssl-devel、 pcre-devel和zlib-devel软件库,具体如下:

$: yum install gcc-c++

$: yum install openssl-devel

$: yum install pcre-devel

$: yum install zlib-devel

四、安装Nginx和fastdfs-nginx-module

百度云盘链接: https://pan.baidu.com/s/15KxhGXHr5kKdcvYq6zBNfw

密码: qyw6

由于还要安装fastdfs-nginx-module,不要使用yum或apt安装nginx

将安装包文件上传到/usr/local中执行以下操作:

1.进入文件目录:

$: cd /usr/local

2.解压安装包:

$: tar -zxv -f nginx-1.6.0.tar.gz

$: tar -xvf fastdfs-nginx-module_v1.16.tar.gz

3.修改安装包目录名称:

$: mv nginx-1.6.0 nginx

4.进入安装包目录:

$: cd /usr/local/nginx

5.配置安装目录:

$: ./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf  --add-module=/usr/local/fastdfs-nginx-module/src

6.安装Nginx:

$: make

$: make install

7.修改防火墙:

$: vi + /etc/sysconfig/iptables

添加配置项

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

8.重启防火墙:

$: service iptables restart

 9.将libfastcommon.so、libfastcommon.so.1、libfdfsclient.so、libfdfsclient.so.1复制到/usr/lib,

否则nginx启动会报错。

Nginx的操作:

启动:

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

或者

$: cd /usr/local/nginx/sbin

$: ./nginx

停止服务:

#查询nginx主进程号

$: ps -ef | grep nginx

#停止进程

kill -QUIT 主进程号

#快速停止

kill -TERM 主进程号

#强制停止

pkill -9 nginx

重启:

$: /usr/local/nginx/sbin/nginx -s reload

五、配置tracker server:

1. vi /etc/fdfs/tracker.conf

bind_addr=39.108.192.61

base_path=/home/im/fastdfs/tracker

2.配置防火墙:

iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 22122 -j ACCEPT

3.保存配置:

/etc/init.d/iptables save

4. 启动 tracker

/usr/local/FastDFS/bin/fdfs_trackerd /etc/fdfs/tracker.conf

在启动时报错:

/usr/local/bin/fdfs_trackerd: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory

执行下面的命令即可正常启动:

echo '/usr/local/libevent-2.0.21/include/' >> /etc/ld.so.conf

echo '/usr/local/libevent-2.0.21/lib/' >> /etc/ld.so.conf

 ldconfig

5. 查看监听程序:

netstat -ntpl | grep fdfs

6. 查看日志文件:

cat /home/tracker/fastdfs/logs/trackerd.log

7.添加开机启动命令行:

vim /etc/rc.d/rc.local

/usr/local/FastDFS/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

六、配置storage server

1. vi /etc/fdfs/storage.conf

group_name=group1

bind_addr=39.108.192.61

base_path=/home/im/fastdfs/storage

store_path0=/home/im/fastdfs/storage

tracker_server=39.108.192.61:22122

http.server.port=80

2. cp /usr/local/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

3. vi /etc/fdfs/mod_fastdfs.conf

base_path=/home/im/fastdfs/storage (实际值应该与storage 的base_path保持一致)

group_name=group1

store_path0=/home/im/fastdfs/storage

tracker_server=39.108.192.61:22122

url_have_group_name = true

group_count = 0

4. vi /usr/local/nginx/conf/nginx.conf

   location /group1/M00 {

            root /home/im/fastdfs/storage;

            ngx_fastdfs_module;

   }

同时需要将 #user那一行的注释去掉,改成 user root (因为我是在root用户下安装的),否则nginx会报错没有访问/home/im/fastdfs/storage的权限,具体可参考 http://blog.csdn.net/ricciozhang/article/details/49402273

然后将FastDFS安装目录下的conf目录下的http.conf 和mime.types拷贝至/etc/fdfs

可参考 http://blog.csdn.net/freewebsys/article/details/45150941

5.配置防火墙:

iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 23000 -j ACCEPT

6.保存配置:

/etc/init.d/iptables save

7.启动 storage  

/usr/local/FastDFS/bin/fdfs_storaged /etc/fdfs/storage.conf

8. 查看监听程序:

netstat -ntpl | grep fdfs

9. 查看日志文件:

cat /home/storage/fastdfs/logs/storaged.log

七、测试

将/etc/passwd文件上传至fastdfs

 /usr/local/FastDFS/bin/fdfs_test /etc/fdfs/client.conf upload /etc/passwd

结果如下:

This is FastDFS client test program v4.06

Copyright (C) 2008, Happy Fish / YuQing

FastDFS may be copied only under the terms of the GNU General

Public License V3, which may be found in the FastDFS source kit.

Please visit the FastDFS Home Page http://www.csource.org/

for more detail.

[2014-06-03 20:26:21] DEBUG - base_path=/home/client/fastdfs, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0

tracker_query_storage_store_list_without_group:

 server 1. group_name=, ip_addr=39.108.192.61, port=23000

group_name=group1, ip_addr=39.108.192.61, port=23000

storage_upload_by_filename

group_name=group1, remote_filename=M00/00/00/wKjjglOOkd2AdZiiAAAFng0Nczs9728851

source ip address: 39.108.192.61

file timestamp=2014-06-03 20:26:21

file size=1438

file crc32=218985275

file url: http://192.168./group1/M00/00/00/wKjjglOOkd2AdZiiAAAFng0Nczs9728851

storage_upload_slave_by_filename

group_name=group1, remote_filename=M00/00/00/wKjjglOOkd2AdZiiAAAFng0Nczs9728851_big

source ip address: 39.108.192.61

file timestamp=2014-06-03 20:26:21

file size=1438

file crc32=218985275

file url: http://192.168.227.130/group1/M00/00/00/wKjjglOOkd2AdZiiAAAFng0Nczs9728851_big

在浏览器上打开http://39.108.192.61/group1/M00/00/00/wKjjglOOkd2AdZiiAAAFng0Nczs9728851_big

测试成功!!!

安装过程中参考了许多大侠的博客,在此表示感谢。只是按照别人的博客总是不能正确安装,因此本文将安装中可能遇到的问题进行了梳理,希望给需要的朋友一些帮助。

参考:http://www.cnblogs.com/zhoulf/archive/2013/02/09/2909653.html

            http://blog.csdn.net/yl_wh/article/details/8784569 

            http://blog.csdn.net/ricciozhang/article/details/49402273

  如果您习惯使用docker,建议还是使用docker安装,直接在机器上安装确实太麻烦了

猜你喜欢

转载自blog.csdn.net/song_java/article/details/81483791