PHP에서 MS-SQL 서버를 연동하기 위한 방법입니다

- PHP의 mssql extension을 컴파일 하기 위해서는 FreeTDS 라이브러리가 필요합니다.
  본문에서는 APM은 이미 설치되어 있는 것으로 가정하고 Freetds는 소스 설치, mssql 모듈은 extension으로 설치 하겠습니다.


(1) FreeTDS 설치

   # wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz

   # tar xvzf freetds-stable.tgz

   # cd freetds-0.91

   # ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --disable-odbc --disable-debug --enable-msdblib

   # make && make install

 

(2) freetds.conf 설정 및 ms-sql 접속 Test

   # vi /usr/local/freetds/etc/freetds.conf

 

- 아래의 항목 추가

   [TestMSSQL]
   host = IP주소
   port = 1433
   tds version = 8.0
   client Charset = UTF-8
  * tds version : 접속 하고자 하는 SQL Server 버젼에 맞게 수정.


(3) MS-SQL 접속 테스트

   # /usr/local/freetds/bin/tsql -H ip주소 -p 1433 -U db계정 -P 비밀번호


(4) mssql 모듈 설치

   # 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

   # cp .libs/mssql.so /PHP Extension 디렉토리

   # vi /usr/local/php/lib/php.ini
     extension=mssql.so <---- 추가

    # apache 재구동


(5) 모듈 설치 확인 - phpinfo의 mssql 항목 확인 및 php -i 옵션으로 확인

   # /usr/local/php/bin/php -i | grep mssql
   mssql
   mssql.allow_persistent => On => On
   mssql.batchsize => 0 => 0
   mssql.charset => no value => no value
   mssql.compatability_mode => Off => Off
   mssql.connect_timeout => 5 => 5
   mssql.datetimeconvert => On => On
   mssql.max_links => Unlimited => Unlimited
   mssql.max_persistent => Unlimited => Unlimited
   mssql.max_procs => Unlimited => Unlimited
   mssql.min_error_severity => 10 => 10
   mssql.min_message_severity => 10 => 10
   mssql.secure_connection => Off => Off
   mssql.textlimit => Server default => Server default
   mssql.textsize => Server default => Server default

   mssql.timeout => 60 => 60

[mssql 접속을 위한 테스트 페이지 샘플]

<?php
 
   putenv("FREETDSCONF=C:\freetds.conf");  // 이 두줄은 빼도 되면 빼고 안되면 넣고.. 알아서..
    putenv("TDSVER=80");


     $link = mssql_connect('dbserver', 'DB아이디', 'DB비밀번호');
     if(!$link) {
        echo'Could not connect';
     }else{
      echo'Successful connection';

     }
     mssql_close($link);
 ?>


출처 : http://faq.hostway.co.kr/Linux_WEB/1261


'Works > 확장모듈설치매뉴얼' 카테고리의 다른 글

Zend Guard Loader 설치  (0) 2017.05.17
APC 확장모듈 설치  (0) 2017.04.26
mod_mime_magic 설치  (0) 2016.08.01
oAuth 확장모듈 설치  (0) 2016.03.29
CentOS6 에서 mcrypt 확장모듈 설치시의 방법  (0) 2016.02.26


du -sh . --exclude='패턴' (현재 위치에서 '패턴' 파일 또는 폴더를 제외하고 전체 용량을 확인)
du -sh * --exclude='패턴' (현재 위치에서 '패턴' 파일 또는 폴더를 제외한 모든 항목들의 개별 용량 확인)

용량이 1기가바이트 이상인 파일이나 디렉토리만 보고 싶다면 아래처럼 grep을 활용할 수도 있습니다.

du -sh ./* | grep G

'Works > CentOS & RockyLinux' 카테고리의 다른 글

CentOS7 hostname 설정  (0) 2016.10.31
tmpwatch  (0) 2016.10.19
필요한 rpm 패키지를 다운받자  (0) 2016.08.03
xferlog 항목별 분석  (0) 2016.07.27
smartctl을 이용한 하드디스크 진단 { DRDY ERR } 확인  (0) 2016.07.06


/usr/local/apache/bin/apachectl restart 를 이용해 


Apache를 재시작 하려는데 다음과 같은 메시지가 뜨는 경우가 있습니다.

=================================================
(20014)Internal error: Error retrieving pid file logs/httpd.pid
Remove it before continuing if it is corrupted.

=================================================



기존에 구동중인 아파치가 정상 종료 되지 않을 경우 프로세스가 남아 있게 되어 발생되는 부분으로

구동중인 httpd 데몬을 전부 종료하고 다시 시작하시면 되겠습니다.


종료:
killall -9 httpd

구동:
/usr/local/apache/bin/apachectl start

그래도 정상 구동이 되지 않을 시 해당 httpd.pid 파일을 삭제 하신 뒤 재시작하여 보시기 바랍니다.

해당 파일은 구동 시 자동 생성 되는 파일이므로 삭제 후 재시작을 하여도 무방합니다.

출처 : http://faq.hostway.co.kr/Linux_WEB/7565


그누보드 5에서 관리자 또는 일반회원의 패스워드를 모두 올바르게 입력하고 로그인 시도시

팝업창으로 '로그인 하십시오' 가 계속 발생하면 아래의 몇가지를 의심해 봐야한다.

data/session 디렉토리의 퍼미션 확인 (웹서버에 의해 세션이 기록 될수 있는 퍼미션인지)

퍼미션이 올바른 경우 config.php 파일에 문제가 있을 가능성이 있으므로 그누보드5의 초기 config.php 파일로

해당 파일을 대체한다.

(주의 할점은 원본 config.php 파일과 다르게 해당파일 내용을 수정한 경우라면 원본파일에 수정한 값을 동일하게 설정해야함)





yum 으로 찾을 수 없는 rpm 패키지들은 아래 웹사이트에서 검색 후 마우스 우클릭으로 바로가기 복사 후

쉘에서 wget 으로 받은 후 설치하면 된다.

https://www.rpmfind.net (RPM find)

'Works > CentOS & RockyLinux' 카테고리의 다른 글

tmpwatch  (0) 2016.10.19
du 명령어의 활용  (0) 2016.09.02
xferlog 항목별 분석  (0) 2016.07.27
smartctl을 이용한 하드디스크 진단 { DRDY ERR } 확인  (0) 2016.07.06
/bin/rm: Argument list too long  (0) 2016.06.28