基本安装步骤 参考: https://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/ 1) 创建repo源文件: sudo v
基本安装步骤
参考: https://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/
1) 创建repo源文件:
sudo vim /etc/yum.repos.d/mongodb-org-3.2.repo
内容如下:
[mongodb-org-3.2]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/gpgcheck=0enabled=1
2) 更新源,并安装
sudo yum -y updatesudo yum -y install mongodb-org
3) 配置SELinux
sudo vim /etc/selinux/config
SELINUX内容改为:
SELINUX=disabled
需要重启系统才能生效!
4) 修改防火墙,保证端口可以访问:
sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPTsudo /etc/init.d/iptables save
5) 检查目录权限:
确保 /var/lib/mongo 和 /var/log/mongodb 目录中文件是属于mongod:mongod用户和组,如果不是可以手工修改:
sudo chown -R mongod:mongod /var/lib/mongosudo chown -R mongod:mongod /var/log/mongo
6) 添加到系统服务中:
sudo chkconfig --add mongodsudo chkconfig mongod on
7) 关闭THP(Transparent Huge Pages)
sudo vim /etc/init.d/disable-transparent-hugepages
内容如下:
#!/bin/sh### BEGIN INIT INFO# Provides: disable-transparent-hugepages# Required-Start: $local_fs# Required-Stop:# X-Start-Before: mongod mongodb-mms-automation-agent# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: Disable Linux transparent huge pages# Description: Disable Linux transparent huge pages, to improve# database performance.### END INIT INFOcase $1 in start) if [ -d /sys/kernel/mm/transparent_hugepage ]; then thp_path=/sys/kernel/mm/transparent_hugepage elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then thp_path=/sys/kernel/mm/redhat_transparent_hugepage else return 0 fi echo 'never' > ${thp_path}/enabled echo 'never' > ${thp_path}/defrag unset thp_path ;;esac
修改权限并执行
sudo chmod 755 /etc/init.d/disable-transparent-hugepagessudo /etc/init.d/disable-transparent-hugepages start
修改ulimit设置
ulimit -a
可以看到系统ulimit设置值,需要修改打开文件数和用户最大进程数,需要修改更大:
sudo vim /etc/security/limits.d/99-mongodb-nproc.conf
内容如下:
mongod soft nofile 64000 mongod hard nofile 64000 mongod soft nproc 524288 mongod hard nproc 524288
其中分为soft配置和hard配置,保证soft<=hard;nofile是打开文件数,nproc是进程数,还需要参考/etc/sysctl.conf中的数据。
启动mongodb
sudo service mongod start
尝试登录:
mongo
如果没有提示任何WARNING信息说明以上配置参数是符合mongodb建议值了,enjoy!
由于本人是在虚拟机上测试就使用了root账户来安装mongoDB,如果在生产环境,请创建新的帐号和组:mongodb。
安装PHP的MongoDB扩展
访问:https://pecl.php.net/package/mongo
wget https://pecl.php.net/get/mongo-1.6.13.tgzcd mongodb-1.1.9/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-configmake && make install
安装完成后,在php.ini中增加extension=mongodb.so并保存,重启php-fpm即可。
phpinfo打印出的扩展结果,证明扩展已经安装成功了。
写测试程序
在写测试程序之前,你首选需要在MongoDB中创建几条测试数据。具体创建方法可以参考我写的《MongoDB命令大全》详细介绍了常用的MongoDB的使用方法。
江边望海创建了一个db叫demo,集合叫teams里面有一套记录。
如上图:创建的测试数据
在你的web服务器(我的是nginx)的根目录创建一个php文件,粘贴下面代码:
<?php$client = new MongoClient('mongodb://mongoadmin:[email protected]:27017');$db = $client->selectDB('demo');$collection = $db->selectCollection('teams');$cursor = $collection->findOne(array('_id' => new MongoId('582d5fa021b8cf1a733d7344')));var_dump($cursor);
因为,我的mongoDB开启了授权访问。所以,需要在链接的填入用户名和密码。
如上图:可以从Collection中取出数据了。
参考链接:
http://litaook.com/blog/2016/01/22/install-mongodb-on-centos/