FreeTDS 설치 (PHP와 MS-SQL 연동)

리눅스/PHP|2015. 1. 16. 10:24
반응형

리눅스의 Apache + PHP 구조에서 MS-SQL 데이터베이스를 사용하는 방법입니다.

 


1. 설치

 

# cd /usr/local/src

# wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz

 

※ 참고

mssql 2000 로 접속할 경우 아래 버전으로 설치하셔야 합니다.

# wget http://pkgs.fedoraproject.org/repo/pkgs/freetds/freetds-0.82.tar.gz/3df6b2e83fd420e90f1becbd1162990a/freetds-0.82.tar.gz
 

# tar xvzf freetds-stable.tgz

# cd freetds-0.91

# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --disable-odbc --disable-debug --enable-msdblib

(freetds-0.82 버전의 경우 --enable-dbmfix 옵션 추가)

 

※ 참고

mssql 2008 의 경우 옵션을 제외해도 됩니다.
mssql 2005 의 경우 --with-tdsver=8.0

mssql 2000 의 경우 --with-tdsver=8.0

mssql 7.0 의 경우 --with-tdsver=7.0

mssql 6.0 의 경우 --with-tdsver=4.2

 

# make

# make install

 

freetds 를 설치했으면 PHP 를 재컴파일 합니다.

PHP 를 재 컴파일 할때 아래 옵션을 주어 컴파일 하도록 합니다. 설치방법은 생략합니다.

 

--with-sybase=/usr/local/freetds --with-mssql=/usr/local/freetds

 
재컴파일이 불편하다면 아래와 같이 별도로 모듈만 삽입 할수 있습니다.

 

# cd /usr/local/src/php-5.2.9/ext/mssql

# /usr/local/php/bin/phpize

# ./configure --with-mssql=/usr/local/freetds --with-php-config=/usr/local/php/bin/php-config

# make

# make install

# cd /usr/local/src/php-5.2.9/ext/pdo_dblib

# /usr/local/php/bin/phpize

# ./configure --with-pdo-dblib=/usr/local/freetds --with-php-config=/usr/local/php/bin/php-config

# make

# make install

# mv /usr/local/php/lib/php/extensions/no-debug-zts-20060613/* /usr/local/php/lib/

# /usr/local/Zend/etc/php.ini

아래 내용 추가합니다.
   extension=mssql.so
   extension=pdo_dblib.so

 

 

2. 설정 

 아래 파일을 수정하여 한글 깨짐을 막고 해당 서버로 연결가능하도록 추가 설정합니다.

# vi /usr/local/freetds/etc/freetds.conf

 

[global]
client charset = EUC-KR


[192.168.10.2]
    host = 192.168.10.2

    port = 1433
    tds version = 8.0

 

 

3. 확인

아래 명령어를 통해서 접속이 잘 되는지 확인할 수 있습니다.

 

# /usr/local/freetds/bin/tsql -H 192.168.10.2 -p 1433 -U neulwon -P 12345678



[참고] 

php - mssql 연동 테스트 소스

 

<?

putenv("TDSVER=80");    <- 이거는 사용하지마시고 혹시 mssql 2008 이나 연결이 안될경우 추가해보세요.
$hostname = "";
$username = "";
$password = "";
$connection = mssql_connect($hostname,$username,$password)
or die("데이타 베이스에 연결 할수 없습니다.");
print ("데이타 베이스에 연결되었습니다.");
mssql_close($connection);
print ("데이타 베이스의 연결이 해지 되었습니다.");
?>


반응형

댓글()