본문 바로가기

Web

PHP + MSSQL on Mac OS

맥은 기본적으로 PHP가 설치되어 있기 때문에, 귀찮아서.. 맥으로 PHP테스트 작업을 하려고 했었다.

하지만 사용하는 서버가 MSSQL인 관계로... 따로 설정해야하는 작업이 필요하다.


참고 동영상 > http://youtu.be/2sO_ByCwvAM (삭제됨..)(맥기반에서 PHP + MSSQL 사용하기)


1. http://www.freetds.org/로 이동하여, 소스파일을 다운받는다.


2. 다운로드 받은 파일을 압축해제한 후, 터미널을 이용하여 다운로드 경로로 이동한다.


3. (이후부터는 터미널 작업)

   ./configure --prefix=/usr/local/freetds --with-tdsver=9.0 --sysconfdir=/usr/local/freetds/conf/freetds

   를 입력한다.


4. make


5. sudo make install


6. PHP를 재설치 해주어야 한다. (소스코드 다운로드) http://www.php.net/

   (되도록, 기존에 설치된 PHP와 동일한 버전으로 재설치한다.)


7. 다운로드 받은 파일을 압축해제한 후, 터미널을 이용하여 다운로드 경로로 이동한다.


8. (이후부터는 터미널 작업)

    ./configure


9. make


10. ext/mssql 경로도 이동한다. (다운로드 받은 PHP파일 아래 위치)


11. phpize 를 입력 후, PHP Api Version을 기억해놓는다.

     (phpize실행 후, configure파일이 생성되지 않은 경우, autoconf를 설치한다.)

*autoconf 설치방법(http://www.gnu.org/software/autoconf/)

./configure --prefix=/usr/local/

make

sudo make install


12. ./configure --with-mssql=/usr/local/freetds


13. make

    (make 과정 중, error: ‘PHP_FE_END’ undeclared here (not in a function)가 발생하는 경우, 

     vi php_mssql.c을 실행한 후, 아래와 같이 define문구를 추가한다.

     #define PHP_FE_END              {NULL, NULL, NULL}


14. sudo cp modules/mssql.so /usr/lib/php/extensions/no-debug-non-zts-숫자
     '숫자'부분은 위에서 기억해놓은 PHP Api Version과 동일하면 된다.

15. sudo vim /private/etc/php.ini
     별다른 설정을 하지 않은 경우, 'php.ini' 파일이 존재하지 않기때문에, 새로 생성하여 사용한다.
     기존의 사용중인 'php.ini'파일이 존재하는 경우, 편집모드로 사용하면 된다.

16. extension = mssql.so 를 추가후 저장.

17. apachectl restart (아파치 재시작)

18. 아래 화면과 같이 phpinfo화면에서 mssql이 추가된것을 확인할 수 있다.


★연동 테스트

연동작업을 시작하기전, freetds.conf파일을 수정해주어야 한다.

/usr/local/freetds/conf/freetds로 이동한다.(freetds 버전마다 위치가 다를 수 있다.)


1. # sudo vi freetds.conf

    마지막 줄로 이동하여, 아래와 같이 입력한다.

    

[지정이름]

host = server ip주소

port = 1433

tds version = 8.0

client charset = UTF-8


※ tds version은 mssql버전에 따라 달라진다. (버전을 잘못맞추는 경우, 한글이 깨져서 출력될 수 있다.)

   mssql 2005 -> 8.0

   mssql 2000 -> 8.0

   mssql 7.0 -> 7.0

   mssql 6.x -> 4.2

  (mssql 2008 R2을 8.0으로 테스트 해본 결과, 문제없이 작동하였다. mssql 2000이상 버전의 경우, 8.0으로 셋팅해주면 될 듯 하다.)


수정 후, 아파치 서버를 재시작 한다.


2. php코드

<?

$host = "지정이름"; //위에 freetds.conf파일에서 [지정이름]과 동일하게 입력한다.

$user = "접속ID";

$password = "접속비밀번호";

$database = "접속 디비명";


$db_ms=mssql_connect($host,$user,$password); 

mssql_select_db($dataname, $db_ms) or die ("DB접속에 실패하였습니다."); 


$query = 'select * from 테이블명'; 

$rst = mssql_query($query); 

while($row=mssql_fetch_array($rst)) 

echo $row[0]; //배열의 인덱스로 필드에 접근할 수 있다.

}

?>   


'Web' 카테고리의 다른 글

[Mac] 웹공유 활성시키기  (0) 2012.08.29
추천 사이트 [추가중..]  (0) 2012.06.11
[html] html에서 php인식 시키기  (0) 2012.05.16
[PHP] Mac에서 PHP사용하기  (0) 2012.05.16