一、【Centos 下yum安装mongodb】 转载http://www.yyuc.net/linux/setup/mongodb.html 安装工作创建yum源文件在/etc/yum.repos.d/目录下创建名称为10gen.repo的文件,美容如下: 64位系统: 32位系统: 安装mongodb
使用配置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下载到
tar zxf mongo-1.2.12.tgz
cd mongo-1.2.12
进入文件夹后,首先运行phpize来准备编译扩展的环境,phpize会在/php安装目录/bin/文件夹下 运行后,./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来编译扩展 完成后,请编辑你php.ini文件增加一行 最后重启web服务,OK!
三、【Nginx直接访问Mongodb配置】
安装nginx-gridfs扩展[iyunv@vm ~]# git clone https://github.com/mdirolf/nginx-gridfs.git [iyunv@vm ~]# cd nginx-gridfs [iyunv@vm nginx-gridfs]# git submodule init [iyunv@vm nginx-gridfs]# git submodule update
//进入我的nginx1.0.5的源码目录编译安装nginx-gridfs扩展 [iyunv@vm nginx-gridfs]# cd /root/nginx-1.0.5
//编译前先查看现有的nginx的编译参数配置,【注:请事先备份原有nginx配置文件,重新make会覆盖原有conf】 [iyunv@vm nginx-1.0.5]#/usr/local/nginx/sbin/nginx -V nginx: nginx version: nginx/1.0.5 nginx: TLS SNI support disabled nginx: 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
//编译配置在原有配置基础上增加新的扩展(蓝色部分) [iyunv@vm nginx-1.0.5]# ./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> [iyunv@vm nginx-1.0.5]# make [iyunv@vm nginx-1.0.5]# make instal
注意: 如果在make时产生以下错误而停止编译: cc1: warnings being treated as errors |
那么找到Makefile文件,将 -Werror 选项删除就可以了。
Nginx的nginx-gridfs扩展模块安装完成,检查一下吧 [iyunv@vm nginx-1.0.5]# /usr/local/nginx/sbin/nginx -V nginx: nginx version: nginx/1.0.5 nginx: built by gcc 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC) nginx: TLS SNI support enabled nginx: 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 ###指定数据库pics field=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数据库可以看到上传成功! 通过nginx直接访问mongodb http://IP:8080/pics/server.jpg 五、【利用mongodb实现分布式WEB图片存储】 http://babyhe.blog./1104064/1096775
附: mongoDB 入门指南、示例 PHP操作MongoDB GridFS 存储文件
|