參考: https://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/php
1) 建立repo源文件:linux
sudo vim /etc/yum.repos.d/mongodb-org-3.2.repo
內容以下:nginx
[mongodb-org-3.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/ gpgcheck=0 enabled=1
2) 更新源,並安裝web
sudo yum -y update sudo yum -y install mongodb-org
3) 配置SELinuxmongodb
sudo vim /etc/selinux/config
SELINUX內容改成:vim
SELINUX=disabled
須要重啓系統才能生效!centos
4) 修改防火牆,保證端口能夠訪問:服務器
sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT sudo /etc/init.d/iptables save
5) 檢查目錄權限:tcp
確保 /var/lib/mongo 和 /var/log/mongodb 目錄中文件是屬於mongod:mongod用戶和組,若是不是能夠手工修改:ide
sudo chown -R mongod:mongod /var/lib/mongo sudo chown -R mongod:mongod /var/log/mongo
6) 添加到系統服務中:
sudo chkconfig --add mongod sudo 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 INFO case $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-hugepages sudo /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。
訪問:https://pecl.php.net/package/mongo
wget https://pecl.php.net/get/mongo-1.6.13.tgz cd mongodb-1.1.9 /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config make && 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:mongoadmin@192.168.8.234: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/