freetds 설치

리눅스 2015. 4. 15. 17:17


freetds 다운로드

http://mirrors.ibiblio.org/freetds/stable/freetds-0.91.tar.gz


# ./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




php를 재컴파일 하는게 속이 편하고, 전에 있던 파일 백업후 다시 작업


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

기존 php configure에 추가



php 5.2.x


--prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/apache/conf --with-mysql=/usr/local/mysql --enable-mod-charset --enable-safe-mode --enable-sigchild --enable-magic-quotes --with-libxml-dir --with-openssl --with-zlib --with-zlib-dir --with-bz2 --enable-calendar --with-curl --enable-dba --with-gdbm --enable-exif --enable-ftp --with-gd --with-jpeg-dir --with-png-dir --with-ttf --with-freetype-dir --enable-gd-native-ttf --with-gettext --with-imap --with-imap-ssl --with-kerberos --enable-mbstring --with-mhash --with-mcrypt --enable-sockets --with-regex=php --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --enable-zend-multibyte --enable-zip --with-sybase=/usr/local/freetds --with-mssql=/usr/local/freetds






# cd /usr/local/src/php-5.2.9/ext/mssql             php를 설치한 소스폴더


# /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                    mssql 버전에 맞춰서 넣어주거나 삭제


 


 


3. 확인


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


 


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









 


configure 단계에서 'Directory /usr/local/freetds is not a FreeTDS installation directory' 라는 메시지가 나올경우

# cp /usr/local/src/freetds/include/tds.h /usr/local/freetds/include/

또는

# cp /usr/local/src/freetds/src/tds/.libs/tds.h /usr/local/freetds/include/

tds.h 파일을 설치된 디렉토리에 복사한다.




 


*php 5.X --with-mssql 오류시 해결 방안 

 

php 5.X에서 mssql연동을 위해 freetds를 설치할 경우에  php configure에 --with-mssql=/usr/local/freetds로 주었을때 해당 경로에 설치가 되어있음에도 불구하고 해당 경로에 설치가 되어있지 않다고 나오는 경우가 발생합니다.


에러 메세지

error Directory /usr/local/freetds is not a FreeTDS installation directory


해당 문제는 tds.h, libtds.a가 해당 설치경로에 있지 않아 설치되어 있는데도 설치되어 있지 않은것으로 인식되는 문제로 보입니다.


아래와 같이 해당 파일들을 경로로 복사해 주면 문제가 해결 됩니다.


cp /usr/local/src/freetds-xxx/include/tds.h /usr/local/freetds/include

cp /usr/local/src/freetds-xxx/src/tds/.libs/libtds.a /usr/local/freetds/lib


위와 같이 한 후에 make 과정중에 sysbase 오류가 발생한다면 configure 시에 --with-mssql과 --with-sybase를 같이 넣어 줍니다.



[PHP와 MS-SQL연동을 위해 odbc를 이용한 방법 - 오래된메뉴얼]

http://cafe.naver.com/webmas.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=1000






*php - mssql 연동 테스트 소스


putenv("TDSVER=80");    <- 이거는 사용하지마시고 혹시 mssql 2008 이나 연결이 안될경우 추가해보세요.

$hostname = "";

$username = "";

$password = "";

$connection = mssql_connect($hostname,$username,$password)

or die("데이타 베이스에 연결 할수 없습니다.");

print ("데이타 베이스에 연결되었습니다.");

mssql_close($connection);

print ("데이타 베이스의 연결이 해지 되었습니다.");

?>




출처 http://sosnote.com/search/freetds


'리눅스' 카테고리의 다른 글

파일시스템 오류 give root password for maintenance  (0) 2015.04.20
ssl 인증서 갱신  (0) 2015.04.20
HDD 파티션, 마운트, 포멧  (0) 2015.04.15
configure 옵션 확인  (0) 2015.04.15
우분투 싱글모드 접속  (0) 2015.04.14
Posted by Narusika
,