Backends MongoDB NoSQL PHP

Windows 환경에서 MongoDB를 PHP에서 사용할 수 있도록 설정하기

이전 글 Windows에 MongoDB 설치하기를 따라서 WIndows에 MongoDB를 설치하고, 데몬을 서비스로 잘 등록하였다면, 이제 PHP에서 이를 사용할 수 있도록 해야 합니다. 여기에 관하여서는 공식문서에도 간결하게 핵심이 정리되어 있습니다. 이 포스트에서는 이러한 설치과정에 익숙하지 않은 분들을 위해 스탭 바이 스탭으로 과정을 설명합니다.

 

1. MongoDB 드라이버 다운로드 받고 압축풀기

먼저 우리는 Windows에서 작동하는 PHP를 위한 MongoDB 드라이버를 다운로드 받아야 합니다. 이 드라이버는 GitHub <http://github.com/mongodb/mongo-php-driver/downloads>에 버전별로 업로드 되어 있습니다. 자신이 사용하는 PHP 버전을 지원하는 최신버전으로 다운로드 받도록 합니다. 저는 이 글을 쓰는 시점에서 최신 버전인 php_mongo-1.3.2RC1.zip를 다운로드 받았습니다.

다운로드 받은 파일은 ZIP으로 압축되어 있는데, 압축 프로그램으로 열어보면 아래와 같습니다.

MongoDB PHP Drivers for Windows

압축파일에 들어있는 여러 개의 dll 파일 중에 3가지를 고려해서 자신의 개발환경에 맞는 파일을 선택해야 합니다.

첫 번째로, 먼저 자신이 사용하고 있는 PHP 버전에 맞추어야 합니다. 파일이름 중간을 보시면 5.2, 5.3, 5.4로 표시된 부분이 있는데, 이곳이 바로 PHP 버전을 의미합니다. 제 경우에는 5.2.12 버전을 사용하고 있었기 때문에, 5.2에 해당하는 파일을 선택해야만 했습니다.

두 번째로, Apache 웹서버를 사용하고 있느냐 CGI 기반이냐에 따라서 나누어집니다. 이 포스팅을 읽고 계신 분들 중 대부분은 아마도 Apache 웹서버를 사용하고 있을 것으로 생각되는데, 이 경우 -nts라는 접미사가 없는 파일을 선택해야 합니다. nts는 Non-thread Safe라는 뜻으로, CGI 환경을 위한 것입니다.

세 번째로, 현재 사용하고 있는 Windows가 32비트인지 64비트인지를 고려해야 합니다. 64비트 OS를 사용하고 있는 경우, 파일이름 끝에 -x86_64가 붙은 파일을 선택해야 합니다. 다만 제가 사용하고 있는 PHP 5.2 버전의 드라이버는 스크린샷에서 보시는 바와 같이 32비트와 64비트 구분이 없었습니다.

위와 같은 과정을 거쳐, 제가 선택한 드라이버는 php_mongo-1.3.2RC1-5.2-vc9.dll입니다.

 

2. PHP의 Extension 디렉토리에 복사하기

먼저 선택한 드라이버의 이름을 php_mongo.dll로 변경합니다.

이 파일을 PHP Extension 디렉토리에 복사하여 넣으면 이 단계는 끝납니다. PHP Extension 디렉토리의 위치를 깜빡했다면, php_info() 정보에서 extension_dir를 찾아 확인할 수 있습니다.

PHP Extension_dir

 

3. php.ini에 php_mongo.dll 추가하기

php_mongo.dll on php.ini

php.ini 파일을 열고, 위와 같이 extension 부분에 php_mongo.dll을 임베디드하는 코드를 한 줄 추가합니다. php.ini의 위치를 잊어버렸다면, 역시 php_info() 정보에서 이것을 확인할 수 있습니다.

 

4. Apache 재시작

이제 Apache 웹서버를 다시 시작해주면, 이제 mongoDB 드라이버가 PHP에 설치된 상태가 됩니다. php_info()로 확인하면 아래와 같이 mongo라는 항목을 확인할 수 있습니다.

mongoDB Driver on php_info()

단계를 모두 밟았는데도 정상적으로 드라이버가 설치되지 않은 경우에는, 1번 단계에서 dll 파일을 잘못 선택했을 가능성이 가장 높습니다. 다시 한 번 정확한 dll 파일을 선택하여 진행해보도록 합시다.

2 thoughts on “Windows 환경에서 MongoDB를 PHP에서 사용할 수 있도록 설정하기”

Leave a Reply to 도움받은이 Cancel reply

Your email address will not be published. Required fields are marked *