1、添加yum源
# vi /etc/yum.repos.d/10gen.repo [10gen] name=10gen Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64 gpgcheck=0 :wq
2、安装
# yum install mongo-10gen-server # yum install mongo-10gen
3、安装php-mongo
# wget http://pecl.php.net/get/mongo-1.2.2.tgz # tar zxf mongo-1.2.2.tgz # cd mongo-1.2.2
4、运行phpize来准备编译扩展的环境
# /usr/bin/phpize Configuring for: PHP Api Version: 20090626 Zend Module Api No: 20090626 Zend Extension Api No: 220090626
若没有phpize文件,则安装
# yum install php-devel
5、运行后,./configure 脚本就会生成了,这个时候我们运行./configure脚本来进行配置。–with-php-config这个参数是告诉配置脚本php-config这个程序的路径
# ./configure --with-php-config=/usr/bin/php-config
# make && make install
6、在php.ini中加上一句声明
# vi /etc/php.ini extension=mongo.so
可能遇到的错误
1、执行mongod命令时报错
ERROR: dbpath (/data/db) does not exist.
解决方法:创建db目录
# mkdir -p /data/db # chown -R root /data # mongod --dbpath /data/db
执行
# mongod
系统运行至
waiting for connections on port 27017
在浏览器中访问
http://localhost:27017
浏览器返回
It looks like you are trying to access MongoDB over HTTP on the native driver port.
此时启动mongodb服务将不会出现failed
# service mongod start
2、27017端口被占用
查询进程,kill之
# ps -ef|grep 'mongo\|PID' # kill -9 %PID%
3、在phpinfo中找不到mongo扩展,换句话说就是mongo扩展添加失败
http://php.net/manual/zh/mongo.installation.php#mongo.installation.fedora
按照上面网站的方法成功解决
执行命令,重新安装mongo服务(可选)
# pecl install mongo
查看mongo.so所在目录和php.ini中的extension_dir路径是否相同
# php -i|grep extension_dir extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules # pwd /usr/lib64/php/modules
如果依旧不行,可能是对于CentOS,系统上默认的 Apache 设置禁止请求产生网络连接,意味着当连接到数据库,驱动会得到一个 “Permission denied” 错误。当你遇上这个问题,可以试试运行:
# /usr/sbin/setsebool -P httpd_can_network_connect 1
然后重启 Apache。在 SELinux 下也会产生这个问题。