背景:
使用mac中已经自带的php,而默认情况下是没有mongodb扩展的,所以还无法使用php脚本访问mongodb
已经安装了brew,这个是mac下非常好用的一个安装软件的工具,类似于ubuntu下的apt-get,rpm等,直接使用brew search 或brew install就可以安装所需的工具。
通过brew search mongo,查到下列相关软件:
homebrew/php/php53-mongohomebrew/php/php56-mongo✔mongo-c-driver [email protected]
homebrew/php/php54-mongo homebrew/php/php56-mongodb mongo-cxx-driver [email protected]
homebrew/php/php54-mongodb homebrew/php/php70-mongodb mongo-orchestration mongoose
homebrew/php/php55-mongo homebrew/php/php71-mongodb mongodb ✔percona-server-mongodb
homebrew/php/php55-mongodb homebrew/php/php72-mongodb [email protected]
通过php -v,可以看到当前的php版本
php -v
PHP 5.6.30 (cli) (built: Mar 11 2017 09:56:27)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
所以,选择了安装php56-mongo。执行命令 brew install homebrew/php/php56-mongo
内容很简单,但也很有效,内容如下:
brew install php56-mongo之后,启动php报这个错误
Warning: PHP Startup: mongo: Unable to initialize module
解决办法是source安装mongo扩展。
brew reinstall php56-mongo --build-from-source
果然,执行上述操作后,通过 php -m命令即可查询已安装的扩展。
php -m|grep mongo
mongo
最后通过下面的php脚本即可验证(先确认mongodb已安装并且启动)。
$m = new MongoClient(); // 连接默认主机和端口为:mongodb://localhost:27017
$db = $m->test; // 获取名称为 "test" 的数据库
$collection = $db->tcol; // 选择集合
$cursor = $collection->find();
// 迭代显示文档标题
foreach ($cursor as $document) {
echo $document["id"].' '.$document["name"] . "
";
}