(ODBC를 사용하지 않고 MS-SQL서버에 직접 연결합니다.)
참고로 저는 FreeBSD3.4 release에서 Apache + PHP4 + Mysql 을 사용하고 있었고 NT4.0 서버에 서비스팩6.0a, MS_SQL7.0 및 SQL서비스팩2.0을 설치한 상태에서 연결했습니다. 리눅스를 사용하시는 분도 동일하게 사용할 수 있습니다.
1. 준비
(1). 먼저 MS-SQL7.0에 서비스팩 1.0이상이 설치되어 있어야 합니다. SQL서비스팩은 다음 사이트에서 얻을 수 있습니다.
http://www.microsoft.com/korea/sql/support/sp2.htm (현재 최신 버전은 서비스팩 2.0 입니다.)
(2). 두 이기종 간을 연결시켜줄 중요한 팩키지를 다운 받아야 합니다. FreeTDS라는 것으로서 Sybase용으로 나왔는데 MS-SQL도 잘 연결됩니다.
http://www.freetds.org 를 방문하시거나 ftp://ftp.metalab.unc.edu/pub/Linux/ALPHA/freetds/freetds-0.50.tgz 을 받으세요.
(3). 물론 apache와 php가 이미 설치되어 있어야 합니다. (참! PHP는 static으로 설치하는 것을 기준으로 설명합니다.)
2. 설치
(1). 다운 받은 freetds를 /usr/local 밑에 풀어 놓습니다. 그러면 freetds라는 디렉토리가 생깁니다.
(# 표시는 프롬프트를 말합니다.)
# cd /usr/local/freetds
- 설치한 디렉토리로 이동합니다.
# ./configure --prefix=<install dir> --with-tdsver=<tds version> --enable-msdblib --enable-dbmfix
ex) ./configure --prefix=/usr/local/freetds --with-tdsver=7.0 --enable-msdblib --enable-dbmfix
- The default prefix is /usr/local/freetds 만약 다른 디렉토리에 설치했으면 설치한 디렉토리 경로를 적어 줍니다.
- The default TDS version is 5.0, use 4.2 for MS-SQL6.x or Sybase < 10.0 MS_SQL7.0을 사용하려면 7.0을 적어 줍니다.
# make (freeBSD를 사용하시는 분들은 gmake 하세요. 없으면 포트에서 설치한 다음 진행하세요.)
# make install (역시 freeBSD는 gmake install)
(2). 자 이제 환경변수 설정을 해줍니다. 쉘에 따라 조금 틀립니다.
for sh/ksh/bash:
# SYBASE=/usr/local/freetds
# LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$SYBASE/lib
# export SYBASE LD_LIBRARY_PATH
for csh:
# setenv SYBASE /usr/local/freetds
# setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:$SYBASE/lib
(3). 이번엔 자신이 연결한 디비서버를 지정하는 부분입니다.(나중에 해줘도 상관없음.)
/usr/local/freetds에 가면 interfaces라는 파일이 있을 겁니다. 이걸 수정해주면 됩니다. 파일을 열어보면 다음과 같을 겁니다.
JDBC
query tcp ether 192.138.151.39 4444
master tcp ether 192.138.151.39 4444
myserver
query tcp ether 127.0.0.1 4000
master tcp ether 127.0.0.1 4000
myserver2
query tcp ether 127.0.0.1 4000
master tcp ether 127.0.0.1 4000
이 파일에 동일한 형태로 자신의 MS-SQL 서버를 추가 합니다.(일반적으로 MS-SQL은 포트번호를 1433으로 사용합니다.)
ex) myDBserver
query tcp ether 222.131.35.154 1433
master tcp ether 222.131.35.154 1433
(4). 이제 PHP를 컴파일 합니다. 먼저 컴파일 하기 전에 조금 수정해줘야 할 것이 있습니다. PHP의 설치 디렉토리로 이동합니다.
(여기서는 /usr/local/php-4.0.0 으로 설명합니다.)
# cd /usr/local/php-4.0.0/ext/sybase
- 이 디렉토리 밑에 sybase.c라는 소스 파일이 있습니다. 이 파일을 열어서 dbopen이라는 단어는 모조리 tdsdbopen으로 바꿉니다.
- 그 다음 컴파일 합니다.
# cd /usr/local/php-4.0.0
# ./configure --with-mysql=<install path> --with-sybase=/usr/local/freetds --with-apache=<install path> --enable-track-vars
- 화면이 마구 지나갈 때 유의하여 살펴보십시요. 거의 끝날 무렵 extention module에 sybase도 포합되어 있어야 합니다.
# make
# make install
(5). 이번엔 apache를 컴파일 합니다. 아파치 설치 디렉토리로 이동합니다.
# cd /usr/local/apache_1.3.12
# ./configure --activate-module=src/modules/php4/libphp4.a
- 이렇게 해서 새로 만든 PHP 모듈을 아파치에 포함시키는 겁니다.
# make
# make install
(6). 이제 httpd를 새로 시작합니다. 그러면 PHP에서 mssql_connect()와 sybase_connect() 모두 사용하여 MS_SQL서버에 연결할 수 있습니다.
단, mssql_connect(host, userid, password)에서 host는 아까 interfaces파일에서 추가해 준 myDBserver를 사용해야 합니다.
자, 그럼 즐 PHP 되세요.
'프로그래밍 > PHP' 카테고리의 다른 글
php - 변수관련 함수 (0) | 2012.08.17 |
---|---|
php - SMARTY QUICKSTART GUIDE (Smarty 빠르게 시작하기) (0) | 2012.08.17 |
php 로 쉘스크립트를 !! (0) | 2012.08.17 |
php - mysql 기본 (0) | 2012.08.17 |
php 5, mysql에서 Stored Procedure 사용하기이 페이지 작성에 참여하기 (0) | 2012.08.17 |