nginx|FastDfs (三) Nginx整合Fastdfs模块

最近搭建了FastDfs环境,中间出现了一些问题,其实之前也搭建过,只是没有做任何记录,又掉到了同样的坑里,然后参考各种文章,网上同样的错误,有各种各样的答案,弄的晕头转向,花了一整天时间才弄好,总结一下搭建步骤供大家参考,中间件的版本已在步骤中列出,操作系统是Centos 6.6。
1. 下载所需包
libfastcommon-master.zip
zlib-1.2.11.tar.gz
pcre-8.40.tar.gz
libevent-2.0.21-stable.tar.gz
nginx-1.10.3.tar.gz
FastDFS_v5.07.tar.gz
fastdfs-nginx-module_v1.16.tar.gz
2. 安装基本工具(已安装可以跳过此步骤):
yum -y install gcc gcc-c++ openssl openssl-devel
3. 安装libfastcommon
a)解压安装文件:unzip libfastcommon-master.zip
(没有unzip工具的话需要安装,安装命令:yum -y install unzip)
b)进入安装文件目录:cd libfastcommon-master
c)编译安装:./make.sh ./make.sh install
4. 解压libevent:tar -zxvf libevent-2.0.21-stable.tar.gz
a)编译安装:./configure –prefix=/usr/local/libevent
./make.sh ./make.sh install(第5步会用依赖)
(这里最好先卸载系统中老旧的libevent版本再安装,命令:yum remove libevent*)
5. 安装FastDFS
a)解压安装文件:tar -zxvf FastDFS_v5.07.tar.gz
b)进入安装文件目录:cd FastDFS
c)编译:./make.sh
(这里需要perl,如果没有安装需要先安装,安装命令:yum install perl)
d)安装: ./make.sh install
6. 配置Storage
a)第5步安装成功之后,/etc/fdfs目录下会有相关配置文件
(如果没有从/FastDFS/conf目录下面copy过来):
client.conf.sample
http.conf
mime.types
storage.conf.sample
tracker.conf.sample
a)进入到fastdfs的配置文件目录:cd /etc/fdfs
b)复制一份配置文件:cp storage.conf.sample storage.conf
c)修改配置文件:
base_path=/data/fastdfs/storage #设置tracker的数据文件和日志目录(需预先创建)
d)启动storage:fdfs_storaged /etc/fdfs/storage.conf start
(可以通过netstat -antp | grep storage 查看storage是否在对应的端口正常启动了;但
是正常启动了并不表示tracker和storage正常通信了,可以通过命令
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf 查看storage 是不是active的)
7. 安装nginx依赖
a)安装pcre:tar -zxvf pcre-8.40.tar.gz
进入解压缩目录,执行./configure;依次执行make 和 make install命令
b)安装zlib:tar -zxvf zlib-1.2.11.tar.gz
进入解压缩目录,执行./configure;依次执行make 和 make install命令
8. 安装nginx的fastdfs模块
a)解压安装文件tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
b)进入安装文件目录:cd fastdfs-nginx-module
c)修改config文件:

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

修改为: (这个路径修改很重要,否则nginx编译的时候会报错)
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

  1. 安装nginx
    a)解压安装文件袋当前目录:tar -zxvf nginx-1.10.3.tar.gz
    b)进入安装文件目录:cd nginx-1.10.3
    c)配置安装文件:./configure –prefix=/usr/local/nginx –with-http_stub_status_module –
    with-http_ssl_module –add-module=/home/fastdfs-nginx-module/src
    (这一步需要openssl,自己下载安装包安装报找不到的错误,通过yum安装之后正常了!)
    d ) 编译安装:依次执行make 和 make install命令
    e)配置storage:cp /home/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs
    base_path=/data/fastdfs/storage/data
    tracker_server=192.168.192.135:22122
    store_path0=/data/fastdfs/storage
    f )配置软连接:ln -s /data/fastdfs/storage/data /data/fastdfs/storage/data/M00
    g)配置nginx:vi usr/local/nginx/nginx.conf
    在server节点加入下面的配置
    location /group1/M00{
    root /data/fastdfs/storage/data;
    ngx_fastdfs_module;
    }
    e)启动:cd /usr/local/nginx/sbin,执行./nginx
    有可能会启动失败报下面的错误
/usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

从错误提示信息可以得知是因为缺少lib文件导致,进一步查看具体内容:
ldd $(which /usr/local/nginx/sbin/nginx)

libpthread.so.0 => /lib64/libpthread.so.0 (0x00000030e8400000) libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00000030f9a00000) libpcre.so.1 => not found libcrypto.so.6 => /lib64/libcrypto.so.6 (0x00000030f2a00000) libz.so.1 => /lib64/libz.so.1 (0x00000030e8800000) libc.so.6 => /lib64/libc.so.6 (0x00000030e7800000) /lib64/ld-linux-x86-64.so.2 (0x00000030e7400000) libdl.so.2 => /lib64/libdl.so.2 (0x00000030e8000000)

查看结果显示 : libpcre.so.1 => not found ,同时注意lib库的路径,有/lib/* 和 /lib64/* 之分。
比如上面的是 /lib64/*,这个和下面解决问题时创建的软连接有关系
解决办法:
  • 首先确认已经安装好pcre 软件(nginx 依赖该软件)
  • 创建软连接
    对于/lib/* 32位系统来说:查看lib库
ls /lib/ |grep pcre libpcre.so.0 libpcre.so.0.0.1

添加软连接
ln -s /lib/libpcre.so.0.0.1 /lib/libpcre.so.1

ps: 也有可能 pcre lib文件在目录:/usr/local/lib/
对于/lib64/* 64位系统来说:查看lib库
ls /lib64/ |grep pcre libpcre.so.0 libpcre.so.0.0.1

添加软连接
ln -s /lib64/libpcre.so.0.0.1 /lib64/libpcre.so.1

【nginx|FastDfs (三) Nginx整合Fastdfs模块】ps: 也有可能 pcre lib文件在目录:/usr/local/lib64/

    推荐阅读