Freetds

지각생 연습장

아파치,PHP로 MS-SQL에 연결할때 사용 http://www.freetds.org/userguide/

목차

설치

[설치/설정] 리눅스 apache, php 에서 mssql connecting 하기

글쓴이   이런일이  날 짜 03-07-23 15:42  조 회 5188 

시스템 정보 Pentum 3 1G Ram : 256 HDD : 40G os : Debian 3.0

freetds 설치

1. www.freetds.org 에서 freetds 최신버전을 다운 받는다 여서 설치할 버전은 0.61 버전이다 모든 작업은 root로 작업한다. freetds-0.61.tgz 파일을 /tmp에 저장

# tar zxvf freetds-0.61.tgz
# cd freetds-0.61 
# ./configure --prefix=설치할 경로(/usr/local/freetds) --with-tdsver=8.0 --enable-msdblib --enable-dbmfix --with-gnu-ld --enable-shared --enable-static 
./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib --enable-dbmfix --with-gnu-ld --enable-shared --enable-static
--with-tdsver=8.0 --> 연결할 mssql server가 mssql 2000 일때 8.0, mssql 7 은 7.0 이다 make make install cd /usr/local/freetds
cp ./lib/* /usr/lib 라이브러리 파일을 복사한다 vi ./etc/freetds.conf 설정파일 수정

이부분을 주석을 제거

[MyServer70]
host = mssql server ip
port = 1433
tds version = 8.0 --à mssql 7 은 7.0

apache 설치

기존 설치상의 변경할 내용 없다. 그냥 기존 대로 설치하면 된다

php설치

소스 컴파일 시

#./configure --with-sybase=/usr/local/freetds 옵션을 추가해서 컴파일 한다.
cd /src_temp/php-5.1.2 
./configure --with-mysql=/usr/local/mysql --with-sybase=/usr/local/freetds --with-libxml-dir=/usr/include/libxml2 --with-exec-dir=/usr/local/apache2/bin --with-config-file-path=/usr/local/apache2/conf --enable-track-vars=yes --enable-trans-sid
./configure --with-mysql=/usr/local/mysql --with-sybase=/usr/local/freetds --with-libxml-dir=/usr/include/libxml2 --with-exec-dir=/usr/sbin --with-config-file-path=/usr/local/apache2/conf --enable-track-vars=yes --enable-trans-sid
/usr/sbin/apache make && make install

apache 재시작

apachectl restart --------> 사용하지 않는다. 이전 설정이 그대로 적용
# apachectl stop
# apachectl start

접속속도가 점 느립니당.

이상 잘못된 점이 있으시면 말씀해주세요.


  SQL guru    03-07-23 16:30   

configure option --> 그래서 느립니다... 속도는 거의 같아요..

  이런일이    03-07-23 18:07   

configure option 중에 어떤 부분때문 인가요. SQL guru 님

  muti    03-07-24 10:02   

저는 경험상 freetds config시 --with-tdsver=4.2 요롷게 옵션을 넣고 있습니다. 위에서처럼 8.0,7.0으로 해서 사용하다 연동이 안될때가 있더라구요.. 가끔가다가요.. 실제 서비스에 적용이 돼있는데 갑자기 이미지가 깨지는 경우가 발생하고... 요리저리 찾아보니까 freetds문제 때문이었습니다.(이미지가 컨텐츠업체 내부 MSSQL에 있거든요) 그래서 찾아보니 --with-tdsver=4.2 요롷게 하면 sybase형식(맞나?)으로 연결을 한다는 군요. MSSQL의 전신이 sybase이구 요넘의 회사를 M$가 사서 만든게 MSSQL이라 구러드라구요.. 그래서 4.2(MS로 회사넘어가기 바로 직전의 버전)로 컨피그하면 7.0,2000에서도 아무 문제가 없다고 하드라구요.. 찾는데 절라 고생 -_-; 지금 반년이상 잘돌고있습니다.(참고로 이놈이 걸린게 그리 작은 서비스가 아니거든요... 울나라 1위 포털 내부에 있어 사용자도 많고 한데 요넘때메 탈나지 않고 잘돌립니다.^^

  정치지망생    03-07-31 18:09   

저도 예전에 이거 실서비스는 아니지만. 테스트 해봤는데

tds version = 8.0 --à mssql 7 은 7.0

여기 옵션을 정확하게 줘야 할겁니다. 속도차이가 엄청 납니다. 옵션을 바꿔가면서 속도 체크 해보세요. 장난 아니에요~

  이준형    03-09-20 16:29   

요기 가보시면 SQL Server와 Client간의 OS 조합에 따른 tdsver값 세팅방법이 나와 있습니다. http://www.freetds.org/userguide/x1025.htm


  BA    03-11-28 17:36   

php compile

To get these functions to work, you have to compile PHP with --with-mssql[=DIR], where DIR is the FreeTDS install prefix. And FreeTDS should be compiled using --enable-msdblib.

http://www.php.net/manual/en/ref.mssql.php


  이남석    05-05-23 13:32   

apache php mysql이 이미 설치되어있는 상태에서 위처럼 채컴파일을 해도 상관이 없나요?

개인 도구