강좌
클라우드/리눅스에 관한 강좌입니다.
데이터베이스 분류

리눅스마스터1급 : MongoDB사용을 위한 PHP Mongo 모듈 설치

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: MongoDB사용을 위한 PHP Mongo 모듈 설치

 

 

 

 

 

PHP는 기본적으로 mongo 모듈을 제공하지 않는다.

 

 

 

pecl 명령어로 다음과 같이 mongo 모듈을 설치할 수 있다.

 

 

 

peclPHP모듈을 쉽게 설치해 주는 프로그램으로 아래 과정을 보고 있으면, mongo모듈을 다운로드한 다음 phpize, configure, make, make install 과정을 수행 하고 있는 것을 확인 할 수 있다.

 

 

 

 

 

 

 

 

 

[root@SULinux-64Bit htdocs]# /usr/local/php/bin/pecl install mongo

downloading mongo-1.3.7.tar ...

Starting to download mongo-1.3.7.tar (Unknown size)

................................................................done: 608,256 bytes

49 source files, building

WARNING: php_bin /usr/local/php/bin/php appears to have a suffix /bin/php, but config variable php_suffix does not match

running: phpize

Configuring for:

PHP Api Version: 20100412

Zend Module Api No: 20100525

Zend Extension Api No: 220100525

building in /tmp/pear/temp/pear-build-rootc89o0B/mongo-1.3.7

running: /tmp/pear/temp/mongo/configure

checking for egrep... grep -E

==== 중간 생략 ====

checking whether to build shared libraries... yes

checking whether to build static libraries... no

 

creating libtool

appending configuration tag "CXX" to libtool

configure: creating ./config.status

config.status: creating config.h

running: make

/bin/sh /tmp/pear/temp/pear-build-rootc89o0B/mongo-1.3.7/libtool --mode=compile cc -I./util -I. -I/tmp/pear/temp/mongo -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootc89o0B/mongo-1.3.7/include -I/tmp/pear/temp/pear-build-rootc89o0B/mongo-1.3.7/main -I/tmp/pear/temp/mongo -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -I/tmp/pear/temp/pear-build-rootc89o0B/mongo-1.3.7/util -I/tmp/pear/temp/mongo/util -I/tmp/pear/temp/pear-build-rootc89o0B/mongo-1.3.7/mcon -I/tmp/pear/temp/mongo/mcon -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/mongo/php_mongo.c -o php_mongo.lo

mkdir .libs

==== 중간 생략 ====

cp ./.libs/mongo.so /tmp/pear/temp/pear-build-rootc89o0B/mongo-1.3.7/modules/mongo.so

cp ./.libs/mongo.lai /tmp/pear/temp/pear-build-rootc89o0B/mongo-1.3.7/modules/mongo.la

PATH="$PATH:/sbin" ldconfig -n /tmp/pear/temp/pear-build-rootc89o0B/mongo-1.3.7/modules

----------------------------------------------------------------------

Libraries have been installed in:

/tmp/pear/temp/pear-build-rootc89o0B/mongo-1.3.7/modules

 

==== 중간 생략 ====

Build complete.

Don't forget to run 'make test'.

 

running: make INSTALL_ROOT="/tmp/pear/temp/pear-build-rootc89o0B/install-mongo-1.3.7" install

Installing shared extensions: /tmp/pear/temp/pear-build-rootc89o0B/install-mongo-1.3.7/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/

running: find "/tmp/pear/temp/pear-build-rootc89o0B/install-mongo-1.3.7" | xargs ls -dils

876261 4 drwxr-xr-x 3 root root 4096 514 14:04 /tmp/pear/temp/pear-build-rootc89o0B/install-mongo-1.3.7

==== 중간 생략 ====

Build process completed successfully

Installing '/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/mongo.so'

install ok: channel://pecl.php.net/mongo-1.3.7

configuration option "php_ini" is not set to php.ini location

You should add "extension=mongo.so" to php.ini

 

 

 

 

 

 

 

php 설정파일(/usr/local/php/lib/php.ini)의 마지막에 다음 줄을 추가 한다.

 

 

 

 

아래 내용은 모듈의 디렉토리를 위 설치 과정에서 모듈이 설치된 디렉토리를 설정하며, 모듈을 사용할 수 있게 하는 설정이다.

 

 

 

 

 

 

 

 

 

extension_dir = /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/

extension=mongo.so

 

 

 

 

 

 

MongoDB관련 모듈의 로드 여부를 확인하기 위해 다음과 같이 php"-i"옵션을 사용하여 확인한다.

 

 

 

아래와 같이 mongo설정이 있다면 정상 설치된 것이다.

 

 

 

 

 

 

 

 

 

[root@SULinux-64Bit bin]# /usr/local/php/bin/php -i |grep mongo

mongo

mongo.allow_empty_keys => 0 => 0

mongo.chunk_size => 262144 => 262144

mongo.cmd => $ => $

mongo.default_host => localhost => localhost

mongo.default_port => 27017 => 27017

mongo.is_master_interval => 15 => 15

mongo.long_as_object => 0 => 0

mongo.native_long => 0 => 0

mongo.ping_interval => 5 => 5

mongo.utf8 => 1 => 1

 

 

 

 

 

 

 

DB 연동 테스트

 

 

PHP에서 DB를 연동하는 아주 간단한 프로그램을 작성하여 테스트해 보도록 하겠다.

 

 

 

"/usr/local/apache/htdocs/mongodbtest.php" 파일을 다음과 같이 작성해 본다.

 

 

 

 

 

 

 

 

 

<?php

echo "DB Connect<BR>";

$mongo=new MongoClient("mongodb://sulinux:password@localhost/sulinux");

$db=$mongo->sulinux;

 

echo "Create sucol collection<BR>";

$collection=$db->sucol;

 

echo "Insert document<BR>";

$doc=array("a" => "DataBase Test");

$collection->insert($doc);

 

echo "Find data<BR>";

$cursor=$collection->find();

 

echo "Fetch data<BR>";

foreach ($cursor as $doc) {

echo "Result : <FONT color=red>".$doc["a"]."</FONT><BR>";

}

 

echo "Drop sucol collection<BR>";

$collection->drop();

?>

 

 

 

 

 

 

 

위 프로그램은 MongoDB에 연결하고, sulinux DB를 선택하며, "sucol"이라는 컬렉션을 생성한다.

 

 

 

생성되 컬렉션에 "{"a" : "DataBase"}이라는 문서를 삽입하고, 삽입된 데이터는 Find 함수를 사용하여 뽑아낸다.

 

 

 

뽑아낸 데이터를 출력한다.

 

 

 

출력 후에는 “sucol"을 제거하는 간단한 프로그램이다.

 

 

 

웹브라우저에서 http://localhost/mongodbtest.php"를 호출하면 다음과 같은 결과를 볼 수 있을 것이다.

 

 

 

 

 

7ce9390993b6024bf1a77eac34869b85_1686892232_0331.png
 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  91 명