drth 发表于 2013-10-17 09:05:30

PHP+Mongodb+Nginx+Gridfs安装配置

一、【Centos 下yum安装mongodb】转载http://www.yyuc.net/linux/setup/mongodb.html安装工作创建yum源文件在/etc/yum.repos.d/目录下创建名称为10gen.repo的文件,美容如下:64位系统:
[*]
[*]name=10genRepository
[*]baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
[*]gpgcheck=0
[*]enabled=1
32位系统:
[*]
[*]name=10genRepository
[*]baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686
[*]gpgcheck=0
[*]enabled=1
安装mongodb
[*]#yum更新
[*]yum update


[*]#安装
[*]yum install mongo-10gen mongo-10gen-server

使用配置mongodb安装成功后,其配置文件所在路径位:/etc/mongod.conf启动mongo数据库服务:service mongod start服务设为自启动:chkconfig mongod on停止服务:service mongod stop重启服务:service mongod restart执行数据库的命令行维护:mongo
二、【PHP添加MONGODB扩展】安装步骤首先下载最新的php mongodb扩展源码,源码可以在http://pecl.php.net/package/mongo下载到
[*]wget http://pecl.php.net/get/mongo-1.2.12.tgz
[*]

[*]tar zxf mongo-1.2.12.tgz
[*]

[*]cd mongo-1.2.12
进入文件夹后,首先运行phpize来准备编译扩展的环境,phpize会在/php安装目录/bin/文件夹下
[*]#假定phpize在这个文件夹
[*]/usr/local/php/bin/phpize
运行后,./configure 脚本就会生成了,这个时候我们运行./configure脚本来进行配置
[*]#假定php配置目录在/usr/local/php/bin/php-config
[*]#--with-php-config这个参数是告诉配置脚本php-config这个程序的路径
[*]./configure --with-php-config=/usr/local/php/bin/php-config
这时用make来编译扩展
[*]make
[*]make install
完成后,请编辑你php.ini文件增加一行
[*]#一般默认的编译php的ini文件在/usr/local/php/etc/php.ini
[*]extension=mongo.so
最后重启web服务,OK!
三、【Nginx直接访问Mongodb配置】
安装nginx-gridfs扩展# git clone https://github.com/mdirolf/nginx-gridfs.git# cd nginx-gridfs# git submodule init# git submodule update
//进入我的nginx1.0.5的源码目录编译安装nginx-gridfs扩展# cd /root/nginx-1.0.5

//编译前先查看现有的nginx的编译参数配置,【注:请事先备份原有nginx配置文件,重新make会覆盖原有conf】#/usr/local/nginx/sbin/nginx -V nginx: nginx version: nginx/1.0.5nginx: TLS SNI support disablednginx: configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6
//编译配置在原有配置基础上增加新的扩展(蓝色部分)# ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 <strong>--add-module=/root/nginx-gridfs</strong># make# make instal
注意:如果在make时产生以下错误而停止编译:
cc1: warnings being treated as errors
那么找到Makefile文件,将 -Werror 选项删除就可以了。
Nginx的nginx-gridfs扩展模块安装完成,检查一下吧# /usr/local/nginx/sbin/nginx -Vnginx: nginx version: nginx/1.0.5nginx: built by gcc 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC)nginx: TLS SNI support enablednginx: configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --add-module=/root/nginx-gridfs
nginx 配置location /pics/{gridfs pics ###指定数据库picsfield=filename ##获取文件名获取数据type=string;mongo 127.0.0.1:27017;}四、【测试实例】PHP 上传图片至mongodb<?php$conn = new Mongo("127.0.0.1:27017");$db = $conn->pics;$grid = $db->getGridFS();//直接上传图片//$id = $grid->put('/tmp/server.jpg', array('filename' => 'server.jpg'));//二进制流形式写入$data = file_get_contents('/tmp/server.jpg');$id = $grid->storeBytes($data, array('filename' => 'server.jpg'));$result = $grid->find();print_r($result);$conn->close();?>
执行后查看mongo数据库可以看到上传成功!http://zengyunbo.blog./e/u/themes/default/images/spacer.gif通过nginx直接访问mongodbhttp://IP:8080/pics/server.jpg五、【利用mongodb实现分布式WEB图片存储】http://babyhe.blog./1104064/1096775

附:mongoDB 入门指南、示例PHP操作MongoDB GridFS 存储文件

孤独海岸线 发表于 2013-11-2 17:30:40

不要在一棵树上吊死,在附近几棵树上多试试死几次~

boss44 发表于 2013-11-25 08:31:17

我抢、我抢、我抢沙发~

北风留影 发表于 2013-12-11 08:07:16

无论什么 都以微笑盖过。。。

stttian 发表于 2013-12-20 16:13:47

我不是真的喜欢回忆过去,而是现在的时光没有当初值得怀念

qisedao 发表于 2013-12-26 14:47:20

爱情需要多少泪水来浇灌,才能长成茁壮的森林。
页: [1]
查看完整版本: PHP+Mongodb+Nginx+Gridfs安装配置