HOME > 이용안내
이용안내
 
작성일 : 14-12-12 15:45
[리눅스서버] Centos 6.x + php5.x 에서 mssql 서버 연동방법
 글쓴이 : 제이네트워크
조회 : 48,067  
[리눅스서버] 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 134

번호 제   목   글쓴이 날짜 조회
54 [리눅스서버] [rsync]rsync로 서버이전시에 서버에 있는 DATA 소유권/권한 관련 문제 제이네트워크 2015-01-21 41420
53 [리눅스서버] [SSH]SSH Geoip적용 하여 국가별 IP 허용하기 제이네트워크 2015-01-21 47340
52 [리눅스서버] Linux 로그파일의 종류 제이네트워크 2015-01-16 33479
51 [리눅스서버] Linux 파일시스템 디버깅을 이용한 파일복구법 제이네트워크 2015-01-16 33009
50 [리눅스서버] Apache / httpd 설치방법의 차이 (prefork, worker방식) 제이네트워크 2015-01-16 35256
49 [리눅스서버] [리눅스서버 - ftp] vsftpd.conf 설정의 기본 옵션 제이네트워크 2015-01-16 43706
48 [리눅스서버] Centos 6.x + php5.x 에서 mssql 서버 연동방법 (1) 제이네트워크 2014-12-12 48068
47 [리눅스서버] [SSL]OPEN SSL 사용 Apache서버에서 CSR 인증키 생성 제이네트워크 2014-11-26 40373
46 [리눅스서버] 리눅스 메모리(memory)관리 및 캐시(cache)를 삭제하고 지우는법 제이네트워크 2014-04-30 45531
45 [리눅스서버] 리눅스 서버에 메모리 뱅크 확인 제이네트워크 2014-01-24 43492
44 [리눅스서버] 리눅스 서비스 목록 및 내용 (1) 제이네트워크 2014-01-24 46854
43 [리눅스서버] 쉘에서 바로 다운로드 업로드 하기(lrzsz) 제이네트워크 2014-01-21 43644
42 [리눅스서버] [ftp 서버 설정 - 리눅스서버에서 바로 ftp 명령어 사용법] 제이네트워크 2013-12-09 38899
41 [리눅스서버] 리눅스 시스템 부팅시 작업 순서 제이네트워크 2013-10-21 40615
40 [리눅스서버] 리눅스 파일시스템 체크 하기 fsck(e2fsck)사용법 제이네트워크 2013-10-21 45233
39 [리눅스서버] rsync 를 사용하여 원격지에 데이타 백업하기 (1) 제이네트워크 2013-10-21 43525
38 [리눅스서버] 리눅스에서 주기적인 작업 시 crontab(클론탭) 사용법 (1) 제이네트워크 2013-10-21 37678
37 [리눅스서버] [php설치에러]configure: error: Kerberos libraries not found. 제이네트워크 2013-10-14 37938
36 [리눅스서버] php 5.3.x 버전이면 ZendGuardLoader 를 설치하셔야 합니다 제이네트워크 2013-08-19 37761
35 [리눅스서버] [apache] 에러 (EAI 2)Name or service not known: mod_unique_id: unable to find IPv4 address of "컴… 제이네트워크 2013-08-19 37344
34 [리눅스서버] [apache] 아파치 설치시 에러 no acceptable C compiler found in $PATH 제이네트워크 2013-08-19 34380
33 [리눅스서버] 아파치재시작시 SSL 패스워드 자동입력 방법 (1) 제이네트워크 2013-08-05 34852
32 [리눅스서버] [리눅스서버] /etc/profile 파일 변경 갑자기 root 로그인이 안될 때 제이네트워크 2013-07-26 37174
31 [리눅스서버] [yum에러시] Another app is currently holding the yum lock; waiting for it to exit 제이네트워크 2013-07-23 35218
30 [리눅스서버] 리눅스 지울파일 개수가 1024개 이상 초과 할때 /bin/rm: Argument list too long 제이네트워크 2013-03-06 35280
29 [리눅스서버] find 명령어로 일정기간, 특정용량 파일 삭제 및 찾기 제이네트워크 2013-02-27 56585
28 [리눅스서버] 리눅스 서버에서 32bit 와 64bit를 알아보는 명령어 (1) 제이네트워크 2012-12-03 34158
27 [리눅스서버] 리눅스에서 하드웨어 사양 알아보기 제이네트워크 2012-11-19 33625
26 [리눅스서버] [apache설치에러] configure: error: no acceptable C compiler found in $PATH 제이네트워크 2012-11-12 35490
25 [리눅스서버] vsftpd 서비스에서 ncftp -R 옵션 작동 안할때 제이네트워크 2012-10-26 33850
24 [리눅스서버] 리눅스에서 대량 파일 삭제 이동시 사용 제이네트워크 2012-07-26 35322
23 [리눅스서버] [에러메세지]ext3_dx_add_entry:Director index Full - 파일갯수가 너무 많을 때 제이네트워크 2012-07-20 37603
22 [리눅스서버] apache index of 페이지 리스팅 되는 경우 제이네트워크 2012-02-01 35827
21 [리눅스서버] centos yum 방화벽으로 업데이트 에러시 관리자 2012-01-03 38458
20 [리눅스서버] 리눅스 설치 후 make 및 컨파일이 안될때.... 관리자 2011-10-11 35339
19 [리눅스서버] 리눅스 apache서버에서 redirect 방법들 (1) 관리자 2011-08-01 40462
18 [리눅스서버] ftp 접속방식 문제 관리자 2011-06-17 44164
17 [리눅스서버] tmp폴더 보안 관리자 2011-06-17 34187
16 [리눅스서버] 리눅스 root 패스워드 재설정 관리자 2011-06-17 30679
15 [리눅스서버] tar 고급 명령어 제이네트워크 2011-06-17 34218
 1  2  3  4