-
php 컴파일에 mssql을 포함시키자Full-Stack/Back-end 2008. 3. 24. 15:251. 컴파일
php에서 mssql을 사용하기 위해서는 FreeTDS 를 설치해 주어야 한다.
사이트는 : http://www.freetds.org 이며
다운은 : http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz 에서 받을수 있다.
적당한 디렉토리에 풀자.#tar xvfz freetds-stable.tgz컴파일 해준다.
#./configure --prefix=/usr --with-tdsver=8.0 --disable-odbc --disable-debug --enable-dbmfix --enable-msdblib
#make
#make install위 설정은 페도라/CentOS 기준이다. 사용자 별도의 디렉토리에 설치하고 싶다면 --prefix=디렉토리... 를
변경하자. --prefix=/usr/local/freeTDS 이정도 해주면 되겠다.
그후 php 컴파일시 --with-mssql 만을 추가해주면 되겠다.
사용자 별도의 디렉토리를 지정하였다면 저기 위에 지정해준 디렉토리를 입력한다. --with-mssql=디렉토리
즉, freeTDS 컴파일시 등록한 prefix 내용을 입력하면 되겠다.
php 컴파일 후, 아파치 재시동하고 phpinfo()에서 mssql 이 나타나는것을 확인한후 사용하면 된다.
2. RPM 설치
마찬가지로 위의 사이트에 가면 찾을수 있다.
http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/redhat/RPMS/ 로 접속하면 바로 바로 받을수 있다.
freetds-0.62.1-1.i586.rpm 만 받아도 되고, 필요하다면 freetds-devel-0.62.1-1.i586.rpm 도 받아서#rpm -ivh freetds-0.62.1-1.i586.rpm
#rpm -ivh freetds-devel-0.62.1-1.i586.rpm아파치 재시동후 phpinfo()에서 mssql 나타나는것을 확인한후 사용하면 된다.
3. 환경설정
freetds 설치 디렉노리 밑의 freetds.conf 파일을 편집한다. 붉게 표시된 부분을 자신에 맞게 고쳐쓰자.[global]
# TDS protocol version
tds version = 4.2; initial block size = 512# uses some fixes required for some bugged MSSQL 7.0 server that
# return invalid data to big endian clients
# NOTE TDS version 7.0 or 8.0 should be used instead
; swap broken dates = no
; swap broken money = no# Whether to write a TDSDUMP file for diagnostic purposes
# (setting this to /tmp is insecure on a multi-user system)
; dump file = /tmp/freetds.log
; debug flags = 0xffff# Command and connection timeouts
; timeout = 10
; connect timeout = 10
# If you get out of memory errors, it may mean that your client
# is trying to allocate a huge buffer for a TEXT field.
# (Microsoft servers sometimes pretend TEXT columns are
# 4 GB wide!) If you have this problem, try setting
# 'text size' to a more reasonable limit
text size = 64512
client charset = EUC-KR# This is a Sybase hosted database server, if you are directly on the
# net you can use it to test.
;[JDBC]
;host = 192.138.151.39
;port = 4444
;tds version = 5.0# The same server, using TDS 4.2. Used in configuration examples for the
# pool server, since the pool server supports only TDS 4.2.
;[JDBC_42]
; host = 192.138.151.39
; port = 4444
; tds version = 4.2# The client connecting to the pool server will use this to find its
# listening socket. This entry assumes that the client is on the same
# system as the pool server.
;[mypool]
; host = 127.0.0.1
; port = 5000
; tds version = 4.2# A typical Microsoft SQL Server 7.0 configuration
;[MyServer70]
; host = ntmachine.domain.com
; port = 1433
; tds version = 7.0# A typical Microsoft SQL Server 2000 configuration
[MyServer2k]
host = 111.222.111.222
port = 1433
tds version = 8.0
# A typical Microsoft SQL Server 6.x configuration
;[MyServer65]
; host = ntmachine.domain.com
; port = 1433
; tds version = 4.24. 사용예
$MS_host = "MyServer2k"; //위의 freetds.conf 에서 지정한내용
$MS_dbname = "DB 명";
$MS_user = "DB 아이디";
$MS_pass = "DB 비밀번호";
$MS_conn = mssql_connect($MS_host,$MS_user,$MS_pass)) ;
mssql_select($MS_dbname, $MS_conn);
......- 끝 -
댓글