Freetds 설치 (소스컴파일) 및 PHP 연동 방법
Freetds 설치 및 PHP 연동 방법에 대해서 알아보겠습니다.
설치 환경은 CentOS 5.5, Apache, MySQL 이 설치되어 있는 상태이며 Apache, MySQL 부분만 연동이 된 상태입니다.
서버 관리가 잘 안돼 있던 서버라 PHP 가 버전별로 여러 폴더들이 존재하였고 기존에 설치된 PHP에 Freetds 연동을 하루종일 시도했지만 번번히 실패하여 시스템 상의 PHP를 모두 삭제 한 후 설치를 진행하였습니다..--;;
그럼 지금부터 Freetds, PHP 설치 및 연동을 시작하겠습니다~
1. freetds-stable 파일을 다운 받습니다.
- 저는 /usr/local/src 폴더 밑에 다운을 받았습니다.
2. 압축을 해제합니다.
3. 압축 후 폴더 화면입니다.
- 버전 : freetds-0.82
4. Makefile 을 만드는 과정입니다.
- FreeTDS 설치 시 libsydbd.a|so 및 Drrectory /usr/local/freetds is not a FreeTDS installation directory 등의 에러가 나신다면 http://sybd.tistory.com/107 을 참조하시기 바랍니다~
5. 컴파일 및 설치를 진행합니다.
6. Freetds 설치가 완료 되었습니다. 의외로 쉽죠? 이제 PHP 연동 부분만 남아있습니다~
7. PHP 설치에 앞서...
- 왠만한 소스들은 안정화 버전 및 소스 간의 충돌은 없는지를 미리 검토 후 설치 하시는게 좋습니다. 저는 그 당시 최신으로 나온 PHP 5.2.15로 설치를 진행했지만 Freetds 연동 부분에서만 반나절씩이나 허비했네요...원인은 정확치는 않지만 PHP 5.2.15 버전과 MySQL 5.1.53 버전 간의 버그가 있다고 합니다..
- 아래 화면은 5.2.15버전으로 설치를 진행한 화면입니다.
8. 에러 내용
colloct2: ld returned 1 exit status
make: *** [sapi/cli/php] 오류 1
위 오류는 무수한 원인이 있지만 PHP 버그로 인해 발생할 수 있는 오류이기도 해서 결국 현재 Stable 버전인 PHP 5.3.6 버전으로 재 설치를 진행하였습니다.
9. PHP 다운 로드 URL : http://kr2.php.net/downloads.php
- PHP 5.3.6 버전을 다운받아 압축을 풀고 설치를 진행합니다.
- ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-mssql=/usr/local/freetds --disable-debug
- Makefile이 아래와 같이 만들어지면 컴파일 및 설치를 진행합니다.
- make; make install
10. PHP 설치가 완료 되면 php.ini-production (PHP 압축을 풀었던 폴더에 있음) 파일을 Apache 폴더로 복사를 합니다.
11. 이제 PHP 와 Apache 와의 연동 부분입니다.
- 보통은 PHP 설치 시 apxs 관련 옵션을 주면 자동으로 삽입이 되는 내용들입니다.
- LoadModule php4_module 모듈이 보이는 것은... 이전에 4버전을 누군가 설치를 했나봅니다;;
- PHP 설치 버전에 맞는 모듈만 적재하셔야 합니다. 저는 php4 module은 주석처리를 하였습니다. 만약 주석처리를 하지 않는다면 apache 재 시작시 ./apachectl: line 78 $HTTPD -k $ARGV 요런 에러를 보시게 됩니다..;
- index.php 를 추가하여 줍니다.
- Mime 값 확인~
12. 자~ 그럼 PHP 와 Freetds 설치가 모두 완료 되었습니다.
- PHP가 정상적으로 설치가 되었는지 확인을 해봅시다~
- PHP 테스트 페이지를 만든 후 내용에는 <?phpinfo()?> 를 집어넣고 브라우저를 통해 보시면 아래와 같은 화면을 보실 수가 있습니다. 만약 Text 로만 나온다면 PHP연동이 되지 않아서입니다.
13. PHP info 화면에서 쭉 스크롤하시다 보면 아래와 같은 mssql 부분을 확인 하실 수 있습니다.
- mssql 이라는 문구를 확인할 수 없다! 하시면.. Freetds 연동이 잘 안된 것이므로 다시 한번 검토 !!
수고하셨습니다