블로그 이미지
정신 못차리면, 벌 받는다. 와닥

카테고리

분류 전체보기 (1406)
Daily (587)
W3C (93)
Photo (229)
News (49)
Portfolio (24)
Database (42)
Programming (251)
Server (109)
Tip (22)
Total28,306
Today103
Yesterday141

New Born

와닥

달력

« » 2012.02
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

최근에 달린 댓글

최근에 받은 트랙백

'2012/02/17'에 해당되는 글 1건

  1. 2012/02/17 mssql 모듈 추가

mssql 모듈 추가

Server/CentOS / 2012/02/17 23:30
mssql 모듈 추가

Linux 에서도 freetds 와 mssql 모듈이 있으면 외부 mssql 에 접속이 가능합니다.
freetds 설치하고 mssql 모듈은 php를 이미 소스설치 하였기 때문에 재컴파일 없이 별도로 컴파일을 하였습니다.
(참고로 바로 아래는 실패한 방법이니 따라하지는 마시길;)


1. freetds 설치

# wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
# tar zxvf freetds-stable.tgz
# cd freetds-0.91
# ./configure --prefix=/usr/local/freetds --enable-msdblib
# make
# make install

# vi /etc/ld.so.conf
/usr/local/freetds/lib <- 추가
# ldconfig -v


2. mssql 모듈 추가

# cd /usr/local/src/php-5.2.17/ext/mssql
# /usr/local/php/bin/phpize
# ./configure --with-mssql=/usr/local/freetds --with-php-config=/usr/local/php/bin/php-config
# make
# make install

# cp modules/mssql.so /usr/local/php/modules
# vi /usr/local/php/etc/php.ini
extension_dir=/usr/local/php/modules/
extension=mssql.so


3. apache 재시작

# /etc/init.d/httpd stop
# /etc/init.d/httpd start


4. phpinfo 확인

# php -i | grep mssql
mssql...


5. mssql 테스트

# vi test.php
$link = mssql_connect( $db_ip, $db_id, $db_pwd );
if ( !$link ) {
  die( 'DB Connect Failed.' );
} else {
    echo 'success!';
}


그리고 test.php 파일을 불렀더니
Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: xxx.xxx.xxx.xxx in /home/www/test.php on line 3
DB Connect Failed.


freetds.conf 파일에서 설정을 해주고 접속하면 당연히 됩니다.
하지만, 예전에 freetds.conf 설정을 안하고 php 에서 여러 mssql 접속이 바로 가능했던 기억이 있기에 이건 아니라고 생각하고 여러 방법을 시도했습니다.
게다가 그냥 접속 실패도 아니고 Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server 오류가 나는 것도 이해할 수 없었고...

freetds 소스설치 여러버전 여러옵션 + mssql 컴파일 = 다실패.
freetds yum 설치 + mssql 컴파일 = 실패
freetds 소스설치 여러버전 여러옵션 + php 재컴파일 = 다실패
freetds yum 설치 + php 재컴파일 = 성공


일단 성공해서 정말 다행입니다. 이유는 모르겠습니다.
여러가지 의심가는 부분은 많지만 더이상 테스트해 보고 싶지 않네요.ㅋ


성공 조합

# yum -y install freetds*

# cd /usr/local/src/php-5.2.17
# ./configure --prefix=/usr/local/php-5.2.17 \
...
--with-mssql=/usr
--with-libdir=lib64 (64bit일 경우)
# make
# make install

# cp php.ini-dist /usr/local/php/etc/php.ini

# /etc/init.d/httpd stop
# /etc/init.d/httpd start


test.php 파일 불러보니
success!

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 와닥