HOME > 이용안내
이용안내
 
작성일 : 14-12-12 15:45
[리눅스서버] Centos 6.x + php5.x 에서 mssql 서버 연동방법
 글쓴이 : 제이네트워크
조회 : 47,587  
[리눅스서버] Centos 6.x + php5.x 에서 mssql 서버 연동방법
 
리눅스의 Apache + PHP 구조에서 MS-SQL 데이터베이스를 사용하는 방법입니다.
※ 참고1
mssql 2000 로 접속할 경우 아래 버전으로 설치하셔야 합니다.
# wget http://pkgs.fedoraproject.org/repo/pkgs/freetds/freetds-0.82.tar.gz/3df6b2e83fd420e90f1becbd1162990a/freetds-0.82.tar.gz
# tar xvzf freetds-stable.tgz
# cd freetds-0.91
# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --disable-odbc --disable-debug --enable-msdblib
(freetds-0.82 버전의 경우 --enable-dbmfix 옵션 추가)

※ 참고2
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
Freetds 를 설치했으면 PHP 를 재컴파일 합니다.
PHP 를 재 컴파일 할때 아래 옵션을 주어 컴파일 하도록 합니다. 설치방법은 생략합니다.
--with-sybase=/usr/local/freetds --with-mssql=/usr/local/freetds

재컴파일이 불편하다면 아래와 같이 별도로 모듈만 삽입 할수 있습니다.
# cd /usr/local/src/php-5.2.9/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
# 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

만약에 안되면 절대 경로지정
extension=/usr/local/php/lib/mssql.so
extension=/usr/local/php/lib/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

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 ("데이타 베이스의 연결이 해지 되었습니다.");
?>





Cloud server Streaming service Domain Cloud Firewall

제이네트워크 14-12-12 15:49
 
<?php
putenv("FREETDSCONF=/usr/local/freetds/etc/freetds.conf");
putenv("TDSVER=7.2");

$chHostName = "mssql";  (Freetds.conf 파일에 설정된 설정값)
$chUserName = "USERNAME"; 
$chUserPassword = "PASSWORD";
$chDBName = "DBNAME";

$pConnect = mssql_connect($chHostName, $chUserName, $chUserPassword);
mssql_select_db($chDBName, $pConnect);

$chQuery = "Select count(*) From DBNAME"; (DBNAME 을 넣고)
$pResult = mssql_query($chQuery);
echo mssql_result($pResult, 0, 0);

mssql_close($pConnect);

?>
 
 

Total 377

번호 제   목   글쓴이 날짜 조회
377 [스크립트언어] [PHP] php에서 Excel 파일 읽기/쓰기 (2) 제이네트워크 2015-01-23 492364
376 [스크립트언어] [php]php.ini 설정에서 register_globals = on/off 차이점과 기능설명 (1) 관리자 2012-02-09 65368
375 [DB] [mysql] DB 에러 메세지 Unable to lock ./ibdata1, error: 11 (1) 제이네트워크 2012-11-18 58254
374 [윈도우서버] [ASP] IIS 7.x 에서 500내부서버오류 정보보기 제이네트워크 2013-02-05 57815
373 [리눅스서버] find 명령어로 일정기간, 특정용량 파일 삭제 및 찾기 제이네트워크 2013-02-27 56163
372 [스크립트언어] [php]php설치후 에러 SAFE MODE Restriction in effect. The script whose uid is 501 is not allowed… 제이네트워크 2013-08-19 52013
371 [리눅스서버] 리눅스서버에서 한글파일명 깨질때 (파일질라나 ftp로 한글깨짐) 제이네트워크 2017-03-16 49104
370 [스크립트언어] php 에러 메세지 출력하기 (php.ini 설정) 제이네트워크 2016-07-27 48914
369 [스크립트언어] [php]설치시 에러 configure: error: xml2-config not found. please check your libxml2 installatio… 관리자 2011-10-11 48310
368 [리눅스서버] Centos 6.x + php5.x 에서 mssql 서버 연동방법 (1) 제이네트워크 2014-12-12 47588
367 [DB] [mysql] 해당 컬럼 값을 1씩 증가시키기 와 mysql 자료형,제약조건,엔진 제이네트워크 2015-01-21 47047
366 [스크립트언어] [XE] xe (제로보드xe) 로그인 패스워드를 잊어 버렸을 경우 제이네트워크 2013-08-06 46474
365 [리눅스서버] 리눅스 서비스 목록 및 내용 (1) 제이네트워크 2014-01-24 46350
364 [기타] 메일 첨부파일에 winmail.dat 파일만 첨부되었을때 확인방법 관리자 2012-01-30 46100
363 [메일] 메일에러 리턴메세지 제이네트워크 2011-06-17 45828
362 [리눅스서버] 리눅스서버 HDD추가및 MOUNT하기 (2) 관리자 2011-06-17 45691
361 [스크립트언어] [php]php5.3.x 버전에서 phpinfo 가 안보일 때 제이네트워크 2013-08-19 45661
360 [리눅스서버] 리눅스 메모리(memory)관리 및 캐시(cache)를 삭제하고 지우는법 제이네트워크 2014-04-30 44974
359 [스크립트언어] [php] configure 중 에러 : error: mcrypt.h not found. Please reinstall libmcrypt. 관리자 2011-07-08 44864
358 [리눅스서버] 리눅스 파일시스템 체크 하기 fsck(e2fsck)사용법 제이네트워크 2013-10-21 44751
357 [윈도우서버] IIS 7.0에서 오류 메시지 [HTTP 오류 403.6-IP 주소 거부] 제이네트워크 2012-07-27 44406
356 [스크립트언어] mysql 설치 후 phpMyAdmin #2002 MySQL 서버에 로그인할 수 없습니다. 해결법 (1) 제이네트워크 2015-09-03 44377
355 [스크립트언어] [ASP]windows2008R2 서버에서 cdo.message 사용시 에러 [CDO.Message.1 error '80040222… (1) 제이네트워크 2015-01-28 44368
354 [윈도우서버] [오류]예약된 작업(작업스케줄러)실행시 0x80090016: 키 세트가 없습니다 제이네트워크 2012-09-11 44362
353 [스크립트언어] php5.3. 이상 버전에서 ZendGuardLoader설치 관리자 2012-02-09 44018
352 [리눅스서버] [아파치서버]mod_url.so 모듈 추가 설치 (웹서버에서 한글링크 허용) 제이네트워크 2016-09-29 43676
351 [리눅스서버] ftp 접속방식 문제 관리자 2011-06-17 43632
350 [스크립트언어] [PHP]PHP코드를 최적화하는 40가지 팁 제이네트워크 2013-12-04 43499
349 [DB] [MSSQL 쿼리] 컬럼값에서 한글, 영문 구분 쿼리 제이네트워크 2012-09-22 43384
348 [기타] [네임서버]네이버웍스를 사용할 경우 MX 레코드 설정 (리눅스 bind의 경우) 제이네트워크 2014-06-13 43180
347 [리눅스서버] [리눅스서버 - ftp] vsftpd.conf 설정의 기본 옵션 제이네트워크 2015-01-16 43136
346 [리눅스서버] 쉘에서 바로 다운로드 업로드 하기(lrzsz) 제이네트워크 2014-01-21 43098
345 [리눅스서버] rsync 를 사용하여 원격지에 데이타 백업하기 (1) 제이네트워크 2013-10-21 43063
344 [리눅스서버] [SSH]SSH Geoip적용 하여 국가별 IP 허용하기 제이네트워크 2015-01-21 42990
343 [리눅스서버] 리눅스 서버에 메모리 뱅크 확인 제이네트워크 2014-01-24 42952
342 [스크립트언어] [php]php5.3.x 에서 zend 설치시 주의 할 점 관리자 2012-02-09 42867
341 [스크립트언어] 그누보드 Function eregi() is deprecated 오류문제~ 관리자 2011-08-01 42506
340 [스크립트언어] php컴파일에러(flex) configure: error: cannot find output from lex; giving up 제이네트워크 2012-11-13 42496
339 [윈도우서버] [robocopy 사용법]윈도우에서 실시간 복사나 스케줄 복사에 사용 관리자 2011-06-13 42250
338 [리눅스서버] SSH 클라이언트 접속시 한글 깨짐 문제 (1) 관리자 2011-06-17 42022
 1  2  3  4  5  6  7  8  9  10