环境说明:
CentOS 6 64bit Mini最小化安装
MongoDB 3.2
Nginx 1.12
Nginx-Gridfs
一、安装准备
首先由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,这些依赖库主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel 所以执行如下命令安装
yum install gcc-c++
yum install pcre pcre-devel
yum install zlib zlib-devel
yum install openssl openssl–devel
二、安装Nginx-GridFS
注:nginx-gridfs源码:https://github.com/barakav/gridfs-nginx-plugin
mongo-c-driver源码:https://github.com/eagleas/mongo-c-driver
这里的两套源码,需要全部下载
1、首先进入/usr/local目录
cd /usr/local/tools(目录没有的话,需要Linux命令新建)
下载gridfs-nginx-plugin
wget https://github.com/barakav/gridfs-nginx-plugin/archive/master.zip
unzip master
mv gridfs-nginx-plugin-master gridfs-nginx-plugin
cd gridfs-nginx-plugin
下载mongo-c-driver
wget https://github.com/eagleas/mongo-c-driver/archive/master.zip
unzip master
接下来非常重要的一步:用WinSCP将mongo-c-driver的源码全部复制到gridfs-nginx-plugin里面
三、安装Nginx
1安装之前,最好检查一下是否已经安装有nginx
find -name nginx
2如果系统已经安装了nginx,那么就先卸载
yum remove nginx
3首先进入/usr/local目录
cd /usr/local/tools(目录没有的话,需要Linux命令新建)
4从官网下载最新版的nginx
wget http://nginx.org/download/nginx-1.12.0.tar.gz
5解压nginx压缩包
tar -zxvf nginx-1.12.0.tar.gz
6会产生一个nginx-1.12.0 目录,这时进入nginx-1.12.0目录
cd nginx-1.12.0
./configure –prefix=/user/local/nginx –with-openssl=/usr/include/openssl –with-http_stub_status_module –add-module=/usr/local/tools/gridfs-nginx-plugin
make
make install
在make编译的时候,若报如下错误:
cc1: warnings being treated as errors
/usr/local/tools/gridfs-nginx-plugin/mongo-c-driver/src/bson.c: In function
‘bson_ensure_space’:
/usr/local/tools/gridfs-nginx-plugin/mongo-c-driver/src/bson.c:632: warning: comparison between signed and unsigned
make[1]: * [objs/addon/src/bson.o] Error 1
make[1]: Leaving directory `/home/mongo/nginx-1.7.9’
make: * [build] Error 2
在objs/Makefile中将 -Werror 删除,对于warnings忽略
7Nginx-GridFS插件配置说明
gridfs:nginx识别插件的关键字
edusns:db名
[root_collection]: 选择collection,如root_collection=blog, mongod就会去找blog.files与blog.chunks两个块,默认是fs
[field]: 查询字段,保证mongdb里有这个字段名,支持_id, filename, 可省略, 默认是_id
[type]: 解释field的数据类型,支持objectid, int, string, 可省略, 默认是int
[user]: 用户名, 可省略
[pass]: 密码, 可省略
mongo: mongodb url
参考实例:
location /gridfs/ {
gridfs mongotest
root_collection=fs
field=filename
type=string
#user=mongotest
#pass=mongotest;
mongo 192.168.0.161:27017;
}
8Nginx启动与停止
cd /usr/local/nginx/sbin/
./nginx
./nginx -s stop
./nginx -s quit
./nginx -s reload
./nginx -s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。
./nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
查询nginx进程:
ps aux|grep nginx
四、安装MongoDB
1 通过 Xshell 5 连接至 CentOS7 服务器;
2 进入到 /usr/local/ 目录:
cd /usr/local
3 在当前目录下创建 tools 目录:
mkdir -p tools
4 进入到 tools 目录中:
cd tools
5 下载与 CentOS 系统匹配的 mongodb-linux-x86_64-rhel70-3.2.4.tgz 文件:
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.4.tgz
6 解压缩 mongodb-linux-x86_64-rhel70-3.2.4.tgz 文件:
tar -zxvf mongodb-linux-x86_64-rhel70-3.2.4.tgz
解压完成后得到 mongodb-linux-x86_64-rhel70-3.2.4 文件夹及其所属的文件;
7 重命名 mongodb-linux-x86_64-rhel70-3.2.4 文件为 mongodb3.2.4:
mv mongodb-linux-x86_64-rhel70-3.2.4 mongodb3.2.4
8 返回到上一级目录,并创建 mongodb 目录:
cd ../
mkdir -p mongodb
9 将 mongodb3.2.4 文件从 /usr/local/tools 目录中移动到 /usr/local/mongodb 目录中:
mv tools/mongodb3.2.4/ mongodb/
10 进入到 /usr/local/mongodb/mongodb3.2.4 目录中:
cd mongodb/mongodb3.2.4
11 在 /usr/local/mongodb/mongodb3.2.4/bin/ 目录中创建一个存放日志的目录:
mkdir -p data/mongotest/logs
12 在 /usr/local/mongodb/mongodb3.2.4/bin/ 目录中创建一个存放数据文件的目录:
mkdir -p data/mongotest/db
13 进入 bin 目录中:
cd bin/
14 创建配置文件 mongodb.conf:
通过WinSCP创建mongodb配置文件
在 mongodb.conf 写入如下内容:
**# idae - MongoDB config start - 2017-05-19
**# 设置数据文件的存放目录 dbpath = /usr/local/mongodb/mongodb3.2.4/bin/data/mongotest/db
# 设置日志文件的存放目录及其日志文件名 logpath = /usr/local/mongodb/mongodb3.2.4/bin/data/mongotest/logs/mongodb.log
**# 设置端口号(默认的端口号是 27017) port = 27017
**# 设置安全认证 auth = true (默认没有安全认证)
**# 绑定ip地址 bind_ip = 127.0.0.1,192.168.0.162
# 设置为以守护进程的方式运行,即在后台运行 fork = true**
# nohttpinterface = true nohttpinterface = true
# idae - MongoDB config end - 2016-05-02****
15 启动 mongodb 服务:
以自定义的 mongodb 配置文件方式启动:
./mongod –config mongodb.conf
16 查看 mongodb 进程:
ps aux |grep mongodb
五、查看测试结果
在浏览器里输入http://192.168.0.161/gridfs/20150315172324.png 能下载图片就说明成功了!