说明:
操作系统:CentOS 6.X 64位
MongoDB数据库服务器:
IP地址:192.168.21.130
Web服务器:
IP地址:192.168.21.127
PHP安装路径:/usr/local/php
实现目的:
安装PHP的MongoDB数据库扩展,通过PHP程序连接MongoDB数据库
具体操作:
一、安装PHP的MongoDB数据库扩展(在Web服务器192.168.21.127上操作)
下载地址:http://pecl.php.net/get/mongo-1.6.11.tgz
上传mongo-1.6.11.tgz到/usr/local/src目录
tar zxvf mongo-1.6.11.tgz #解压
cd mongo-1.6.11
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make #编译
make install #安装,完成之后出现下面的界面
系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链
/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
vi /usr/local/php/etc/php.ini #编辑,在最后一行添加下面的代码
extension="mongo.so"
:wq! #保存退出
service php-fpm reload #重新加载php-fpm
在站点根目录下添加php测试页面
vi /usr/local/nginx/html/phpinfo.php #编辑
<?php
phpinfo();
?>
:wq! #保存退出
打开上面的页面,http://192.168.21.127/phpinfo.php
如下图所示:
二、创建测试数据库(在MongoDB数据库服务器操作)
在mongodb上执行
cd /usr/local/mongodb/bin/
./mongo #进入数据库
#创建数据库:osyunweidb,在数据库中新建表,插入数据
use osyunweidb #创建数据库osyunweidb 如果什么都不操作离开的话,这个库就会被系统删除
db.createCollection("osyunweidb_table") #创建表osyunweidb_table
show collections #查看
db.osyunweidb_table.insert({uid:1,name:"系统运维",url:"http://www.osyunwi.com",content:"系统运维官方网站"}) #插入数据到表osyunweidb_table中
db.osyunweidb.find();
show dbs
exit #退出
三、创建数据库账号(在MongoDB数据库服务器操作)
===============================================================
1、MongoDB数据库默认没有用户名和密码,只要连接上服务,就能登录,进行所有操作。
2、可以通过配置文件设置,开启登录验证功能。
3、只有切换到admin数据库,添加的账号才是管理员账号。
4、管理员账号可以对MongoDB服务器所有数据库进行管理(但是:默认只能管理自己的admin数据库,要管理其他数据库,需要先在admin数据库中进行认证)
===============================================================
#添加普通账号
cd /usr/local/mongodb/bin/
./mongo #进入数据库
use osyunweidb
db.createUser({user:"osyunweidbuser",pwd:"123456",roles:[{role:"readWrite",db:"osyunweidb"}]}) #账号:osyunweidbuser 密码:123456 权限:只有该数据库osyunweidb的读写权限
db.auth('osyunweidbuser','123456') #添加用户认证
exit #退出
/usr/local/mongodb/bin/mongo -u osyunweidbuser -p 123456 --authenticationDatabase osyunweidb #用刚才创建的普通账号进行登录
exit #退出
#添加管理员账号
cd /usr/local/mongodb/bin/
./mongo #进入数据库
show dbs #列出所有数据库
use admin #切换到admin数据库,添加的账号才是管理员账号。
show collections
db.system.users.find()
db.createUser({user:"administrator",pwd:"123456",roles:[{role:"root",db:"admin"}]}) #添加管理员账号:administrator 密码:123456 权限:有数据库admin的所有操作权限
db.auth('administrator','123456') #添加管理员用户认证,认证之后才能管理所有数据库
exit #退出
/usr/local/mongodb/bin/mongo -u administrator -p 123456 --authenticationDatabase admin #用刚才创建的普通账号进行登录
exit #退出
###############################################################
#删除数据库、删除表操作
cd /usr/local/mongodb/bin/
./mongo
use osyunweidb #进入数据库
db.osyunweidb_table.drop() #删除表
db.dropDatabase() #删除数据库
db.removeUser('osyunweidbuser') #删除用户
###############################################################
四、设置MongoDB配置文件,开启登录验证功能(在MongoDB数据库服务器操作)
vi /usr/local/mongodb/mongodb.conf #编辑配置文件
auth=true #开启认证
:wq! #保存配置
vi /etc/rc.d/init.d/mongod #编辑
在启动参数db.shutdownServer()和db.stats()前面分别增加:
db.auth('administrator', '123456');
:wq! #保存配置
如下图所示:
service mongod stop #停止
service mongod start #启动
cd /usr/local/mongodb/bin/
./mongo -uosyunweidbuser -p123456 127.0.0.1:27017/osyunweidb #进入mongodb控制台
exit #退出
cd /usr/local/mongodb/bin/
./mongo -uadministrator -p123456 127.0.0.1:27017/admin
db.system.users.find()
use osyunweidb
show collections
exit #退出
五、php连接测试数据库(在Web服务器192.168.21.127上操作)
vi /usr/local/nginx/html/test.php
<?php
$mongo = new Mongo("192.168.21.130:27017"); #连接数据库服务器
$db = $mongo->selectDB('osyunweidb'); #连接数据库
$db->authenticate("osyunweidbuser","123456"); #数据库连接账号和密码
$collection = $db->selectCollection("osyunweidb_table"); #选择数据库中的表
$result = $collection->find(); #读取数据
foreach($result as $value){ #输出数据
print_r($value);
}
echo "<br>";
foreach($result as $value){
echo "序号:".$value["uid"]."<br>";
echo "网站名称:".$value["name"]."<br>";
echo "URL:".$value["url"]."<br>";
echo "备注:".$value["content"]."<br>";
}
$mongo->close();
?>
打开页面http://192.168.21.127/test.php如下图所示,说明数据库连接成功。
至此,Linux下PHP安装配置MongoDB 3.0.x数据库连接扩展完成。
扩展阅读:
MongoDB数据库客户端工具
NoSQL Manager for MongoDB Professional,如下图所示: