linux下mongodb安装和安装php扩展笔记

我的系统是Centos 6.3 64位

uname -a

Linux nala-huangdd 2.6.32-279.19.1.el6.x86_64 #1 SMP Wed Dec 19 07:05:20 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

下载相应软件(没有装pcre的同时也得装,方法详见:《在Ubuntu 11.10 x64上 编译安装 php、mysql、nginx、xdebug等开发环境》,这里pcre安装的时候要加参数 --enable-unicode-properties

不然运行的时候会报一个错:

Mon Feb  4 16:11:43   Assertion failure c src/mongo/db/client.h 254
0x9a4f16 0x973de1 0x6935c9 0x693694 0x6936f2 0x693d7e 0x69402c 0x7396a1 0x5831d3 0x584299 0x3d6381ecdd 0x57abc9
 mongod(_ZN5mongo15printStackTraceERSo+0x26) [0x9a4f16]
 mongod(_ZN5mongo12verifyFailedEPKcS1_j+0xc1) [0x973de1]
 mongod(_ZN5mongo4Lock26ParallelBatchWriterSupport6relockEv+0x429) [0x6935c9]
 mongod(_ZN5mongo4Lock26ParallelBatchWriterSupportC1Ev+0x14) [0x693694]
 mongod(_ZN5mongo4Lock10ScopedLockC1Ec+0x32) [0x6936f2]
 mongod(_ZN5mongo4Lock10GlobalReadC1Ei+0x1e) [0x693d7e]
 mongod(_ZN5mongo11readlocktryC1Ei+0x3c) [0x69402c]
 mongod(_ZN5mongo6dbexitENS_8ExitCodeEPKc+0x671) [0x7396a1]
 mongod() [0x5831d3]
 mongod(main+0x9) [0x584299]
 /lib64/libc.so.6(__libc_start_main+0xfd) [0x3d6381ecdd]
 mongod() [0x57abc9]
Mon Feb  4 16:11:43 shutdown failed with exception
Mon Feb  4 16:11:43 dbexit: really exiting now

):

wget http://downloads.mongodb.org/src/mongodb-src-r2.2.3.tar.gz
wget http://prdownloads.sourceforge.net/scons/scons-2.2.0.tar.gz
wget http://ftp.mozilla.org/pub/mozilla.org/js/js-1.7.0.tar.gz
yum install -y boost boost-devel
tar zxvf scons-2.2.0.tar.gz
cd cd scons-2.2.0
python setup.py install
cd ../

tar zxvf js-1.7.0.tar.gz 
cd js/src/
export CFLAGS="-DJS_C_STRINGS_ARE_UTF8"
make -f Makefile.ref 
JS_DIST=/usr gmake -f Makefile.ref export
cd ../../

tar zxvf mongodb-src-r2.2.3.tar.gz
cd mongodb-src-r2.2.3
scons all
scons --prefix=/app/mongo install

//如果需要安装lib和head,使用如下方式安装
//scons --prefix=/usr/local/mongo --full install

mkdir -p /app/mongo/etc /app/mongo/data /app/mongo/log/ /app/mongo/repair

创建配置文件:

vim /app/mongo/etc/mongo.conf

内容:

dbpath = /app/mongo/data
logpath = /app/mongo/mongodb.log
repairpath = /app/mongo/repair
pidfilepath = /app/mongo/mongodb.pid
directoryperdb = true
logappend = true
noauth = true
port = 27017
maxConns = 1024
fork = true
rest = true
quota = true
quotaFiles = 1024
nssize = 16

 启动方法:

ln -s /app/mongo/bin/mongod /usr/bin/
mongod -f /app/mongo/etc/mongo.conf

设置开机自启动

vim /etc/init.d/mongodb

输入内容:

#! /bin/sh
#
# mongodb – this script starts and stops the mongodb daemon
#
# chkconfig: - 85 15
# description: MongoDB is a non-relational database storage system.
# processname: mongodb
# config: /app/mongo/etc/mongo.conf
# pidfile: /app/mongo/mongodb.pid
PATH=/app/mongo/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=mongodb
test -x $DAEMON || exit 0
set -e
case "$1" in
  start)
        echo -n "Starting MongoDB... "
        mongod -f /app/mongo/etc/mongo.conf
        ;;
  stop)
        echo -n "Stopping MongoDB... "
    pid=`ps -o pid,command ax | grep mongod | awk '!/awk/ && !/grep/ {print $1}'`;
    if [ "${pid}" != "" ]; then
        kill -2 ${pid};
    fi
        ;;
      *)
            N=/etc/init.d/$NAME
            echo "Usage: $N {start|stop}" >&2
            exit 1
            ;;
    esac
    exit 0

增加执行权限,设置开机自启动

chmod +x /etc/init.d/mongodb
chkconfig --add mongodb
chkconfig --level 345 mongodb on

以后可以通过以下方法开启或者结束mongodb:

/etc/init.d/mongdb start #启动
/etc/init.d/mongdb stop #关闭

此笔记是安装后,大致整理,安装过程中可能还会有点小问题。

 下面是php扩展

下载地址:https://github.com/mongodb/mongo-php-driver

unzip mongo-php-driver-master.zip
cd mongo-php-driver-master
phpize
./configure --with-php-config=/app/php5/bin/php-config
make && make install

编辑php.ini

vim /app/php5/etc/php.ini

加入内容:

extension=mongo.so

 重启php

/app/php5/sbin/php-fpm restart

 

posted @ 2013-02-04 15:38  黄丁丁  阅读(493)  评论(0)    收藏  举报