서버 Server

Linux 환경의 PHP MSSQL 연동

은둔한량 2013. 12. 5. 17:00
반응형

● Linux 환경의 PHP에서 Windows의 MSSQL과 연동해야하는 이슈가 있었음.


● 테스트 환경

- Linux OS : CentOS 6.4 64bit

- Windows OS : Windows 2008 R2

- Mssql 2008 R2


● 패키지 설치

rpm -ivh http://ftp.neowiz.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm

- yum install php-mssql freetds

- 끝.  정말 쉽다. 


● SELinux 작업 (*중요)

- 이작업을 진행해야 나중에 실제적으로 웹화면에 php로 작성된걸 뿌릴수있다.

- /etc/sysconfig/selinux에서 enforcing (ON) 시켜준다.

- 자세한 내용은 다음 링크 참조 : http://goo.gl/J4Zel

- 아니면 아래와 같이 진행한다.

 

[root@localhost httpd]# getsebool -a | grep httpd_can_network_connect

이렇게하면 httpd에 대한 설정사항이 나온다.

- 아마 아래와 같이 나올듯

 httpd_can_network_connect --> off
 httpd_can_network_connect_cobbler --> off
 httpd_can_network_connect_db --> off


- 이걸 on으로 변경해야한다. 아래와 같이 명령어 입력 : 시간이 좀 걸린다.

 setsebool -P httpd_can_network_connect 1
 setsebool -P httpd_can_network_connect_db 1


● 이제 PHPinfo로 아래와 같이 정상적으로 설치되어있는지 확인 필요.

- 아래와 같이 나오면 정상적으로 설치된것이다.

 

 

● 마지막으로 실제적으로 연동 테스트

- 구문 예시

- tsql -H [Server IP or Domain] -p [MSSQL Port] -U [계정]  -P[계정암호] 

- 이상하게 구문에다가 암호를 넣으면 현재 정상적이지 않고 저렇게 나중에 암호를 넣으면 정상적으로 접속

- 그리고 일반적인 Mssql 구문을 넣고 마지막에 go를 입력해야 데이터값이 나온다.

 

[root@localhost httpd]# /usr/bin/tsql -H 192.168.0.21 -p 1433 -U dev -P dev
locale is "ko_KR.eucKR"
locale charset is "EUC-KR"
using default charset "UTF-8"
1>  SELECT * FROM [MHCOM].[dbo].[T_MEMBER];
2>  go

NO      UID     PASSWD  UNAME   EMAIL   ZIPCODE ADDRESS1        ADDRESS2        TELEPHONE       CELLPHONE       DOKJANUM        REGDATE     SENDMAIL        BIRTHDAY        COMMENT RECOMID RECOMNAME       GUDOKCNT        GUDOKPRICE      RECENTGUDOKDATE MLEVEL  JOINTYPE    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

반응형