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 |