设为首页 收藏本站
查看: 1201|回复: 0

[经验分享] PHP7源码安装MongoDB和MongoDB拓展

[复制链接]
发表于 2017-12-15 08:37:52 | 显示全部楼层 |阅读模式
一、安装MongoDB
  1.创建mongodb用户组和用户
  

groupadd mongodb  
useradd -r -g mongodb -s /sbin/nologin -M mongodb
  

  2.下载mongodb源码包,并将源码包放到/usr/local/src/目录下
  下载页面:https://www.mongodb.com/download-center?jmp=nav
  这里用的是 mongodb-linux-x86_64-rhel62-3.2.10.tgz
  下载地址:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.10.tgz
  3.进入src/目录


cd /usr/local/src/  4.解压源码包
  

tar -zxf mongodb-linux-x86_64-rhel62-3.2.10.tgz  

  5.创建mongodb文件目录
  

mkdir -p /usr/local/mongodb/data  
mkdir -p /usr/local/mongodb/conf
  
mkdir -p /var/run/mongodb
  
mkdir -p /var/log/mongodb
  

  6.将文件复制到mongodb/目录


cp -R /usr/local/src/mongodb-linux-x86_64-rhel62-3.2.10/. /usr/local/mongodb  7.创建mongodb配置文件mongodb.conf
  

vim /usr/local/mongodb/conf/mongodb.conf  

  8.添加下面内容,保存退出

DSC0000.gif   

dbpath=/usr/local/mongodb/data #数据目录存在位置  
logpath=/var/log/mongodb/mongodb.log #日志文件存放目录
  
logappend=true #写日志的模式:设置为true为追加
  
fork=true  #以守护程序的方式启用,即在后台运行
  
verbose=true
  
vvvv=true #启动verbose冗长信息,它的级别有 vv~vvvvv,v越多级别越高,在日志文件中记录的信息越详细
  
maxConns=20000 #默认值:取决于系统(即的ulimit和文件描述符)限制。MongoDB中不会限制其自身的连接
  
pidfilepath=/var/run/mongodb/mongodb.pid
  
directoryperdb=true #数据目录存储模式,如果直接修改原来的数据会不见了
  
profile=0 #数据库分析等级设置,0 关 2 开。包括所有操作。 1 开。仅包括慢操作
  
slowms=200 #记录profile分析的慢查询的时间,默认是100毫秒
  
quiet=true
  
syncdelay=60 #刷写数据到日志的频率,通过fsync操作数据。默认60秒
  
#port=27017  #端口
  
#bind_ip = 10.1.146.163 #IP
  
#auth=true  #开始认证
  
#nohttpinterface=false #28017 端口开启的服务。默认false,支持
  
#notablescan=false#不禁止表扫描操作
  
#cpu=true #设置为true会强制mongodb每4s报告cpu利用率和io等待,把日志信息写到标准输出或日志文件
  


  9.修改mongodb目录权限
  

chown -R mongodb:mongodb /usr/local/mongodb  
chown -R mongodb:mongodb /var/run/mongodb
  
chown -R mongodb:mongodb /var/log/mongodb
  

  10.将mongodb命令加入环境变量,修改profile文件
  

vim /etc/profile  

  11.修改为下面内容,保存退出
  

PATH=/usr/local/mysql/bin:/usr/local/php/bin:/usr/local/redis/bin:/usr/local/mongodb/bin:$PATH  

  12.使/etc/profile里的配置立即生效
  

source /etc/profile  

  13.将mongodb服务脚本加入到init.d/目录,创建mongod文件
  

vim /etc/init.d/mongod  

  14.加入下面内容,保存退出

DSC0001.gif View Code  15.为mongod添加可执行权限
  

chmod +x /etc/init.d/mongod  

  16.将mongodb加入系统服务
  

chkconfig --add mongod  

  17.修改服务的默认启动等级
  

chkconfig mongod on  

  18.启动mongodb
  

service mongod start  


二、PHP7安装MongoDB拓展
  1.下载php7 mongodb拓展包,并将源码包放到/usr/local/src/目录下
  下载页面:http://pecl.php.net/package/mongodb
  这里用的是 mongodb-1.1.9.tgz
  下载地址:http://pecl.php.net/get/mongodb-1.1.9.tgz
  2.进入src/目录
  

cd /usr/local/src/  

  3.解压拓展包
  

tar -zxf mongodb-1.1.9.tgz  

  4.进入mongodb拓展目录,编译安装拓展

  

cd mongodb-1.1.9/  

  
phpize
  

  
./configure --with-php-config=/usr/local/php/bin/php-config
  

  
make && make install
  


  5.修改php.ini文件
  

vim /usr/local/php/etc/php.ini  

  6.添加mongodb.so扩展配置,保存退出
  

extension=mongodb.so  

  7.重启Apache或php-fpm
  

service httpd restart  
service php-fpm restart
  

  8.在web目录下添加php文件,如/usr/local/apache/htdocs/mongodb.php 或 /usr/local/nginx/html/mongodb.php

  

<?php  
$manager = new MongoDB\Driver\Manager("mongodb://127.0.0.1:27017");
  
$bulk = new MongoDB\Driver\BulkWrite;
  
$bulk->insert(['x' => 1, 'class'=>'toefl', 'num' => '18']);
  
$bulk->insert(['x' => 2, 'class'=>'ielts', 'num' => '26']);
  
$bulk->insert(['x' => 3, 'class'=>'sat', 'num' => '35']);
  
$manager->executeBulkWrite('test.log', $bulk);
  
$filter = ['x' => ['$gt' => 1]];
  
$options = [
  'projection' => ['_id' => 0],
  'sort' => ['x' => -1],
  
];
  
$query = new MongoDB\Driver\Query($filter, $options);
  
$cursor = $manager->executeQuery('test.log', $query);
  
foreach ($cursor as $document) {
  print_r($document);
  
}
  


  访问URL,如:http://192.168.8.9/mongodb.php
  页面显示正常,则配置成功
  MongoDB安装完毕!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-424255-1-1.html 上篇帖子: 一个 Vue + Node + MongoDB 博客系统 下篇帖子: MongoDB中的读写锁
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表