Site icon 지락문화예술공작단

php + freetds for mssql on linux

php + freetds for mssql on linux

 

개요

OS : linux (CentOS 등등.. )
WEB : apache + php
환경에서 mssql 접근을 하기 위해서는 freetds 라는 패키지를 이용하면 된다.

DB(MSSQL) 서버 IP : 192.168.0.201
DB 포트 : 1433
DB NAME : ilaya
DB USER : choilha
DB PASS : hahahoho

PHP 설치 경로 : /usr/local
PHP 라이브러리 : /usr/local/lib/php
PHP extension dir : /usr/local/lib/php/extensions

 

freetds 설치

공식사이트 : http://www.freetds.org/

다운로드 : ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz

configure --prefix=/usr/local/freetds --enable-msdblib --with-gnu-ld --enable-shared
make
make install

 

freetds 설정

설정파일 : /usr/local/freetds/etc/freetds.conf

파일의 마지막 부분에 아래와 같이 내용을 추가.. 물론 본인의 상황에 맞게…

[192.168.0.201]
host = 192.168.0.201
port = 1433
tds version = 8.0

freetds패키지의 tsql 을 이용해서 접근테스트를 해볼 수 있으니 확인해 볼것

/usr/local/freetds/bin/tsql -S 192.168.0.201 -p 1433 -U choilha -P ”hahahoho”

php + freetds 연동

PHP를 재컴파일 하는 방법도 있겠으나.. 귀찮으니.. 모듈을 사용하는 형태로다가..

cd PHP_SOURCE_DIR/ext/mssql
./configure --with-mssql=/usr/local/freetds --with-php-config=/usr/local/bin/php-config
make
cp modules/mssql.so /usr/local/lib/php/extensions/
(만약 기본설정의 "no-debug-zts..... "를 사용한다면 그냥 make install 로 처리하면 됨)

 

모듈 인식 확인

# php -i|grep mssql
mssql
mssql.allow_persistent => On => On
mssql.batchsize => 0 => 0
mssql.compatability_mode => Off => Off
mssql.connect_timeout => 5 => 5
mssql.datetimeconvert => On => On
mssql.max_links => Unlimited => Unlimited
mssql.max_persistent => Unlimited => Unlimited
mssql.max_procs => Unlimited => Unlimited
mssql.min_error_severity => 10 => 10
mssql.min_message_severity => 10 => 10
mssql.secure_connection => Off => Off
mssql.textlimit => Server default => Server default
mssql.textsize => Server default => Server default
mssql.timeout => 60 => 60

 

접근 테스트

odbc_mssql.php

<?
$hostname = "192.168.0.201";
$username = "choilha";
$password = "hahahoho";
$connection = mssql_connect($hostname,$username,$password) or die("cannot connect mssql server");
?>

해당 코드에서 아이디 또는 패스워드 부분에 일부러 오타를 낸뒤 접근 오류가 발생 하는지 확인하면 되겠군…

 

Exit mobile version