|
번외1 솔라리스 패치하기
0. J2SE 설치하기
1. Apache 설치하기
2. 연동 모듈 생성하기
3. Tomcat 설치하기
4. 아파치 톰캣 연동.
5. MySQL 설치하기
6. PHP 설치하기
7. Zend Optimizer 설치하기
8. 마치며.
|
시스템 환경
SunFire 250 SPARC 프로세서
Apache 2.0.48
MySQL 4.0.17
PHP 4.3.4
Zend Optimizer 2.1.0b
J2SDK 1.4.2
Tomcat 5.0.16
JK2 Connector 2.0.2
|
오늘은 토요일이다. 회사에서 빈둥빈둥 놀고 있는 내 모습을 철저히 숨기기 위해서는 뭔가 열심히 하는 모습을 보여줘야 한다. 아침 9시에 출근해서 오후 2시 반까지 뭔가를 해야 할텐데...
항상 그렇듯 okjsp 사이트에 가장 먼저 방문한다. 대부분 사는얘기, 머리식히는 곳에서 시간을 때우다가 QnA 를 잠시 살펴보다가 오늘 할 일이 생각났다.
아니 할일이라기 보단 실험해보고 싶은 일이라고나 할까?
작년 프로젝트에 실패한 솔라리스9에서 아파치 톰캣 연동하기.
필자는 작년 프로젝트에서 아파치와 톰캣의 연동 모듈 생성에 빈번히 실패를 했다.
그래서 이번 문서의 순서는 가장 빨리 모듈을 생성해보는것이다. 모듈이 생성되지 않는다면 아마도 전체적인 수정(버젼)이 필요하니까..
관련 문서를 구하고 설치를 할려고 하는데... 이런. 솔라리스9 설치후 패치를 안해줬군. ㅡㅡ;
오늘 안에 성공할 수 있을까? 지금 열심히 패치를 받는중이다.
패치를 다 설치하고 나면 또 해야 할일은 바로 각종 패키지 설치... 으. 할거 많군.
지금도 계속 다운로드 받고 있는중이다. 에고고 심심하군.
그럼 차리리 패치 관련 문서부터 정리를 해볼까?
|
번외1.1 Recommended and Security Solaris Patch Clusters 다운로드 방법
솔라리스는 처음 버젼을 발표하고나서 이미 발견된 버그와 보안 취약성에 대해서 주기적으로 패치를 내 놓는다. 이 패치의 이름은 바로 'Recommended and Security Solaris Patch Clusters'.
www.sun.com 에 가서 Support & Training 메뉴에 가서 Patches 메뉴로 이동하면"SunSolve Patch Support Portal" 페이지가 나타난다.
위치는 http://sunsolve.sun.com/pub-cgi/show.pl?target=patchpage 이다.
이페이지에서 Patch Finder 라는 메뉴를 클릭하면 "Recommended Solaris Patch Clusters, J2SE and Orion Clusters" 항목에 여러 패치중에 솔라리스 9가 보일것이다. 가볍게 다운로드 버튼을 누르자.
필자는 현재 다운로드 속도 84.5Kb 에 약 28메가 정도 받았다. 아직 100메가 정도 남았으니.. ㅡㅡ; 대략 낭패이다. 다시 okjsp 에서 놀아야 하나?
일단 필수 패키지도 다운로드 받도록 하자. 쉬는시간에 아무것도 할게 없다는게 너무 비참하다.
번외1.2 Recommended and Security Solaris Patch Clusters 설치하기
이런 저런 작업을 하고 있으면 패치 다운로드가 완료 되었을것이다. 사실 필자는 필수패키지 이외에 J2SDK, Apache, Tomcat, JK Connector, MySQL, PHP 등을 다운로드 받고있다. 심심해서...ㅡㅡ;
설치에 앞서 다운로드 받은 파일을 적당한 폴더에 위치시키자.
bash-2.05$ unzip 9_Recommended.zip |
명령어를 실행해서 압출을 풀어준다.
아마도 엄청나게 많은 목록이 눈앞을 스쳐 지나갈 것이다. 잠시 커피타임을 갖는것을 권하고 싶다.
방금 커피 둘 둘 둘 의 조합으로 마시고 왔는데도 아직 압축을 풀고 있다. ㅡㅡ; 시스템이 너무 느린가? 흠..
이제 막 패치 압축이 다 풀렸다.
bash-2.05$ ls |
압축이 풀린 폴더로 이동하자. 파일 목록을 보면 숫자로 된 많은 폴더가 보일것이다.
이 번호는 솔라리스 패치 번호이다. 솔라리스9가 발표되고 나서 이런 수많은 버그 혹은 취약점이 있다는것이라고 할수 있을것이다.
패치 설치를 해보자.
bash-2.05$ Patch cluster install script for Solaris 9 Recommended You must be root to execute this script. |
명령어를 실행하면 다음 메세지가 떠버린다. ㅡㅡ; 그렇다. 필자는 지금까지 일반 사용자모드로 파일을 옮겨 놓은것이다. 루트로 권한을 얻도록 하자.
bash-2.05$ su - |
루트 권한을 얻고 다시 패치 폴더로 이동했다. 다시 설치파일을 실행하자. (필자는 앞으로도 계속 삽질을 할 것 같다..)
bash-2.05# ./install_cluster |
에서 멈춰있다. 당연히 y 를 눌러서 설치를 실행하자.
Are you ready to continue with install? [y/n]: y |
위 작업이 계속 진행될것이다. 엄청 오래 걸리는 작업이므로 시간때울 다른 방법을 알아서 강구해보길 바란다.
......
에휴.. 이제 끝이 났다. 약 1시간 반 정도 소요되었군.
Installing 113026-14... The following patches were not able to be installed: Use '/usr/bin/showrev -p' to verify installed patch-ids. |
설치 되지 않은 부분에 대해서는 별로 신경쓸 필요가 없습니다. 그냥 설정을 적용시키기 위해 리부팅을 하도록 하자.(꼭 해야 하는지는 모르겠지만 일단은...)
번외1.3 필수 패키지 다운로드 받기
솔라리스의 패키지를 다운로드 받을수 있는 무료 사이트가 있다. 바로 http://sunfreeware.com
여기에서 필요한 패키지를 모두 다운로드 받을 것이다.
사이트에 접속해보면(상당히 느림) 오른쪽 중간쯤에 Search 프레임에서 "SPARC/Solaris 9" 항목을 클릭하자.
그러면 오른쪽 하단에 솔라리스9 스팍 버전의 최신 패키지 목록이 보일것이다.
해당 패키지 목록에서 원하는 패키지를 찾은후에 클릭하면 화면 중간 상단에 패키지 다운로드 링크가 나타난다.
필요한 패키지를 전부 다운로드 하자.
*필수 패키지 파일 목록*
libtool-1.5-sol9-sparc-local.gz
m4-1.4-sol9-sparc-local.gz
make-3.80-sol9-sparc-local.gz
automake-1.7.2-sol9-sparc-local.gz
autoconf-2.57-sol9-sparc-local.gz
tar-1.13.19-sol9-sparc-local.gz
gd-2.0.22-sol9-sparc-local.gz
zlib-1.2.1-sol9-sparc-local.gz
libpng-1.2.5-sol9-sparc-local.gz
jpeg-6b-sol9-sparc-local.gz
freetype-2.1.7-sol9-sparc-local.gz
libgcc-3.3-sol9-sparc-local.gz
번외1.4 필수 패키지 설치하기
위 목록을 다운로드 다 받았다면 설치를 시작해보자. 위 패키지는 아피치 설치및 연동 모듈 생성을 위해서 필요한 패키지이다. 위 패키지가 각각 무슨 역할을 하는지 필자도 잘 모른다. 다만 시키는데로 할 뿐이다. ㅡㅡ;
bash-2.05# ls |
귀차니즘의 압박이랄까? 압축을 한꺼번에 풀었다. 이젠 패키지 설치를 해보자.
이미 다운로드 받은 파일은 솔라리스 패키지 형태로 받았다. 자신있는 사람은 소스로 받아서 컴파일 해서 잘 설치해보길 바란다.
bash-2.05# pkgadd -d autoconf-2.57-sol9-sparc-local The following packages are available: Select package(s) you wish to process (or 'all' to process |
설치를 묻는다. 이때 default 로 all 이 선택된다. 과감히 Enter 키를 누르자.
Processing package instance <SMCautoc> from </export/home/ggil/programs/pkg/auto autoconf The selected base directory </usr/local> must exist before Do you want this directory created now [y,n,?,q] |
/usr/local 폴더를 생성할지 묻는다. 솔라리스에 새로운 패키지를 설치할때 -d 옵션을 주면 기본적으로 /usr/local 폴더에 설치된다. 현재는 처음 패키지를 설치하기때문에 local 폴더를 생성해도 되는지 물어본다. 당연히 y
Using </usr/local> as the package base directory. Installing autoconf as <SMCautoc> ## Installing part 1 of 1. Installation of <SMCautoc> was successful. |
이렇게 하면 하나의 패키지가 설치가 되었다.
다운로드 받은 모든 패키지를 위와 같은 방식으로 설치하길 바란다. 아마도 두번째 이후부터는 local 폴더 생성물음이 없을것이다.
가끔씩
The following files are already installed on the system and are being Do you want to install these conflicting files [y,n,?,q] |
이런 메세지가 나타난다. 이미 설치된 파일이 있다는 뜻이다 무조건 y 이다. 이유는 모르니 묻지 말기 바란다. ㅡㅡ;
모든 패키지 설치가 끝나면 reboot 을 하기 바란다. 설정을 바로 적용하려면 다른방법(?)이 있긴 하지만 리부팅 하지 말아야할 서버가 아니라면 그냥 리부팅 하기 바란다.
아참 리부팅 하기전에 PATH 의 값에 /usr/local/bin 을 추가하기 바란다.
방금 설치한 각종 패키지가 설치된 경로로써 최신 프로그램(ex: tar)을 실행시키기 위해서이다.
물론 라이브러리 환경변수도 아래와 같이 설정해야 한다.
필자의 쉘은 bash 이므로 /etc/profile 파일을 수정한다.
bash-2.05# vi /etc/profile |
|
우리는 Tomcat 사용하려고 한다. 왜냐하면 JSP 를 돌려야 하므로. JSP 는 Java Server Page 의 약자이다. 말 그대로 자바 가상머신에 의해 HTML 의 페이지가 만들어진다는 얘기이다. 그렇다면 당연히 JVM 이 설치되어 있어야 한다.
여기에서 필자는 J2SDK 의 최신판을 먼저 설치하고자 한다.
J2SDK 를 먼저 다운로드 받아보자.
http://java.sun.com 에 접속해보자.
왼쪽 상단의 Download 항목을 클릭한 이후에 Java 2 Platform, Standard Edition (J2SE) 항목의 드롭다운 메뉴에서 J2SE 1.4.2 All platform 을 선택한 후에 Go 버튼을 누르면"Download Java 2 Platform, Standard Edition, v 1.4.2 (J2SE)" 페이지로 이동한다.
Download J2SE v 1.4.2_03 항목에서 "32-bit/64-bit for Windows/Linux/Solaris SPARC" 의 SDK 링크를 클릭해서 바이너리 버젼 패키지를 다운로드 받는다.
SunFire 250 서버의 SPARC CPU는 64비트 프로세서이다. 설치 순서는 32비트 J2SDK 를 설치후에 64비트를 설치해야 한다. 그러므로
j2sdk-1_4_2_03-solaris-sparc.sh
j2sdk-1_4_2_03-solaris-sparcv9.sh
두개의 파일을 받도록하자.
앗.. 그러다가 눈에 띄는 "Solaris OS Patches" ㅡㅡ;
흠.. 이것도 받아서 설치해보도록하자. 일단 이것도 Download 링크를 가볍게 클릭해서 다운로드 받는다.
먼저 패치를 설치해보았다.
"Recommended and Security Solaris Patch Clusters" 와 마찬가지로 압축을 풀고 설치 파일을 실행시키면 된다.
bash-2.05# unzip J2SE_Solaris_9_Recommended.zip |
필자의 경우 이미 Recommended 패치에서 설치를 했다고 한다. 아마도 최신 Recommended 패치를 하면 J2SE_Recommanded 패치를 할 필요가 없는가 보다. ㅡㅡ; 또 삽질했다.
J2SDK 를 차례대로 설치해보자.
먼저 32비트용 SDK 를 설치해야 한다.
bash-2.05# |
라이센스가 나타난다. 스페이스바를 클릭하면 한페이지씩 밑으로 내려간다.
마지막 페이지에 도착하면 라이센스에 동의하는지 물어본다. 당연히 yes.
그러면
Unpacking... |
이 나타나다. 그리고 64비트용 깔기
bash-2.05# ./j2sdk-1_4_2_03-solaris-sparcv9.sh |
32비트와 설치 과정이 같다. 마치 32비트가 깔린 폴더에 64비트로 패치를 하는듯 하다.
이제 j2sdk1.4.2_03 폴더가 만들어져 있다.
이제 이것을 적당한 위치에 위치시키도록 한다. 필자는
/program/j2sdk1.4.2_03
에 위치를 시켰고, 소프트링크로 /program/java 로 잡아두었다.
bash-2.05# mkdir /program |
그리고 /usr/bin/java 의 링크를 /program/j2sdk1.4.2_03/bin/java 로 바꾸고 나머지 자바관련 실행파일의 링크를 수정한다.
bash-2.05# cd /etc |
파일 링크가 끝나면 JDK 의 환경변수를 설정하자. 이미 필자는 bash 쉘을 사용하고, 모든 사용자에게 허용하는 환경변수를 설정하기 위해 /etc/profile 파일을 수정하겠다.
bash-2.05# vi /etc/profile |
위와같이 수정한후에 다시 로그인을 해야한다.
이제 자바가 제대로 돌아가는지 테스트를 해보겠다.
간단하게 자바의 버젼을 확인해보고 기본적인 hello world! 예제를 실행시켜보겠다.
bash-2.05# java -version |
↑ 버젼 표시 잘됨. 그럼 이제 실제 간단한 예제를 실행시켜보자.
bash-2.05# vi Test.java |
Great!!!!!! 잘 돌아가는것이 눈에 보인다. 여기까지 흐믓함에 잠시 커피타임을 갖고 아파치 설치를 시도해볼 것이다.
|
먼저 이미 설치되어 있는 Apache 버젼이 있는지 확인해본다.
bash-2.05$ pkginfo | grep httpd |
위 명령어가 패키지 설치여부를 확인 하는 명령어가 맞는지 모르겠지만 설치되어 있지 않다고 간주하겠다.
먼저 아파치 최신판을 다운로드 받아보겠다. 아파치의 배포본은 모두 소스 형태로 제공된다.
http://www.apache.org 에 접속해보자.
왼쪽 상단의 "HTTP Server" 항목을 클릭한 후에 "Download! from a mirror" 페이지로 이동한다.
이 페이지에서 "Apache 2.0.48 is the best available version" 항목에 보면 아파치 소스 파일이 존재한다.
Unix Source: httpd-2.0.48.tar.gz 를 다운로드 받는다.
다운로드 받은 파일을 적절한 위치에서 압축을 해제한다.
이미 최신 tar 프로그램을 이전에 설치했으므로 xvfz 옵션사용이 가능하다.
bash-2.05# tar xvfz httpd-2.0.48.tar.gz |
실행이 종료가 되면 httpd-2.0.48 란 폴더가 생겼을 것이다. 해당 폴더로 이동후 구성을 설정한다.
bash-2.05# cd httpd-2.0.48 checking target system type... sparc- |
필자는 아파치 설치를 DSO 방식으로 했다. 왜냐하면 동적 모듈인 mod_jk 와 libphp4 를 이용해서 연동을 해야 하기 때문이다.
configure 을 무사히 마쳤다면 이젠 make 를 해서 컴파일을 한 후에 지정된 위치(/program/apache)에 설치를 해보자.
잠깐.. 잠시 먼저 선행되어야 할 일이 있다. make 를 하다가 보면 ar 라는 명령어를 실행시키지 못해서 에러가 발생한다. 이때 환경변수 PATH에 /usr/ccs/bin 를 추가해야 한다.
그리고 다시 make 실행
bash-2.05# make |
별다른 에러메세지가 없다면 install 을 시작해 보자.
bash-2.05# make install |
아파치2.x 설치는 아파치1.x 보다 배 이상의 시간이 소요된다.
설치가 다 끝나면 설치한 위치(/program/apache) 로 이동해보길 바란다.
아파치 설치가 제대로 되었다는게 눈에 띈다. 그럼 이제 시동을 한번 걸어볼 것이다.
필자는 다음과 같이 명령어를 날렸는데
bash-2.05# cd /program/apache/bin |
아! 설정을 안해줬군... 아파치 설정을 안해줬다. 이런 xxx 같은 경우가..
사실 필자도 httpd.conf 파일을 수정해주어야 하는지 잘 몰랐었다. 다만 위 문제와 child process 를 못찾는 다는 에러가 뜬것을 보고 부랴 부랴 인터넷을 뒤져서 해결했기 때문이다. 일단은 필요한 몇몇 항목을 수정하고 이후에 연동을 할때 제대로 설정을 해보자.
bash-2.05# vi /program/apache/conf/httpd.conf |
이젠 정말 실행시켜보자.
bash-2.05# ./apachectl start |
httpd 데몬이 눈이 보인다. 이젠 자신의 웹 브라우저로 접속을 해보길 바란다.
아이피를 입력하거나 도메인이 존재하고 ServerName 을 제대로 설정했을경우 도메인네임으로 접속하자.
그러면 첫 페이지에서
"예상한 웹사이트 대신 이 페이지가 보입니까?"
커다란 문구가 나타났다.
오케이 이제 막 아파치의 설치를 마쳤다. 우린 기본적인 http 서비스를 할수 있게 되었다.
그럼 연동 모듈 컴파일을 위해서 잠시 웹서버를 꺼두자.
bash-2.05# ./apachectl stop |
|
톰캣과 아파치를 연동하기 위해서는 연동 모듈이 필요하다.
필자는 현재 설치 도중에 문서를 작성하고 있는데 이 부분은 솔직히 장담하기 힘들다.
이때까지 수십번을 시도했지만 번번히 실패를 했기 때문이다.
일단 시도를 해보겠다.
먼저 모듈을 다운로드 받는다.
톰캣과 아파치의 연동 모듈 이름은 "JK2 Connector" 이다. 이 모듈의 바이너리 버젼은 solaris8 과 win32 버젼만 제공되고 있다. 그러므로 필자는 소스를 다운 받아서 현재 시스템에 적합한 모듈을 생성하도록 하겠다.
http://www.apache.org 에 접속해서 jakarta 프로젝트 페이지로 이동한 이후에 Downloads Source Code 항목을 클릭해서 Source Downloads 페이지로 이동한다. 여기에서 페이지 하단으로 쭈~~욱! 내려가면 "Tomcat Web Server Connectors KEYS" 항목이 있다. 바로 JK 커넥터 소스 다운로드 링크이다.
여기에서 "JK 2.0.2 Source Release tar.gz" 클릭해서 모듈 소스를 다운로드 받는다.
좀더 편한방법을 알아보자.
http://www.apache.org/dist/ 접속후
jakarta 폴더 클릭 (url : http://www.apache.org/dist/jakarta/ )
tomcat-connectors 폴더 클릭 (url : http://www.apache.org/dist/jakarta/tomcat-connectors/ )
jk2 폴더 클릭 (url : http://www.apache.org/dist/jakarta/tomcat-connectors/jk2/ )
source 폴더 클릭 (url : http://www.apache.org/dist/jakarta/tomcat-connectors/jk2/source/ )
jakarta-tomcat-connectors-jk2-2.0.2-src.tar.gz 파일을 다운로드 받는다.
이때 다운로드 받는 파일의 확장자가 xxxx.tar.tar 로 되어 있다. 왜 이런지는 모르겠지만 tar 명령어로 바로 압축이 풀어지니 걱정하지 말자.
bash-2.05# tar zxvf jakarta-tomcat-connectors-jk2-src-current.tar.gz |
별다른 에러메세지가 나타나지 않으면 다음 위치에 mod_jk2.so 파일이 존재할 것이다.
/jakarta-tomcat-connectors-jk2-2.0.2-src/jk/build/jk2/apache2/
다행이 한방에 제대로 된 모듈이 생성되었다. 감격!! 감격!! 이젠 톰캣을 설치하고 모듈을 테스트 해보도록 하자.
그전에 먼저 모듈을 아파치 모듈 모아 두는곳에 복사를 한다.
bash-2.05# cp mod_jk2.so /program/apache/modules/ |
|
톰캣을 설치하도록 하겠다. 톰캣은 바이너리 버젼과 소스 버젼 두가지가 존재한다.
먼저 Tomcat 이 뭔지 '예크디엠' 님의 설명을 인용해보자.
---------------------------------------------------------------------------------------
* Java Servlet Container
JVM 상에서 WEB 서비스를 위한 Java Servlet API를 구현하여 서비스 해주는 Java Program으로, Servlet Container는 Client의 http 요청을 웹서버를 통해 전달받아서 Application Servlet에 전달하고, Servlet의 http 응답 메시지를 웹서버에게 전달해서 Client로 돌려주는 역할을 한다.
* Servlet Container의 종류
1) Sun Microsystems 제공 Servlet Container
JSDK(Java Servlet Development Kit)
JSWDK(JavaServer Web Development Kit)
J2EE(Java2 SDK, Enterprise Edition)
Java Web Server(iPlanet Web Server)
2) Apache 제공 Servlet Container
Apache JServ, Tomcat
3) 기타 Servlet Container
JRun/JRun Pro, Resin, WebLogic, Web Sphere, IAS
* Tomcat
Tomcat은 Apache Software Foundation의 Jakarta 프로젝트의 일환으로 개발중인 소프트웨어입니다.
Tomcat은 Java Servlet과 Java Server Page를 사용할 수 있도록 하는 Servlet Container이며 독립적으로 웹서버의 기능을 수행합니다. 그러나 일반 html 문서도 Servlet Container를 통해 번역되므로 수행속도가 느리고 웹서버로서의 기능에 제한이 있으므로 보통 다양한 모듈과 막강한 기능을 가지고 있는 Apache 웹서버와 연동하여 사용합니다.
배포본은 binary와 source 형식으로 제공됩니다. 여기서는 바이너리 배포본의 설치만 설명합니다. The Apache Jakarta Project 홈페이지의 Downloads 부분에 있는 CVS repositories는 현재 개발중인 소스들을 확인하고 다운로드 받을 수 있는 페이지입니다. (CVS는 Concurrent Version System의 약어로 오픈소스 프로젝트에서 개발중인 소스의 버전을 관리해주는 시스템입니다. CVS에 대한 자세한 사항은 이 문서의 성격과 다르므로 언급하지 않겠습니다. 자세한 사항은 CVS 매뉴얼을 참고하기 바랍니다.)
----------------------------------------------------------------------------------------
필자의 귀차니즘을 한방에 해결해 줄수 있는 유용한 문서를 작성해주신 '예크디엠' 님께 다시한번 감사의 인사를 마음속(?)으로 했다. ㅡㅡ;
위 설명을 읽어보면 대충 톰캣이 무엇인지 알수 있을것이다. 아마도 이 문서를 읽고 있는 대부분은 이미 톰캣이 무엇인지 알고 있다는것을 필자는 알고 있다. 하지만 톰캣에 대해서 모르거나 기본지식이 부족한 0.00001% 의 사람들을 위해서 과감히 배껴서 올려 놓았다.
이제 정말 톰캣을 다운로드 해보자.
http://www.apache.org 에 접속해서 'Apache Projects' 항목중 'Jakarta' 프로젝트 페이지에 접속해 보자.
바로 가는 URL 은 http://jakarta.apache.org/ 이다.
자카르타 프로젝트의 홈페이지에서 왼쪽 하단(밑으로 스크롤)에 'Products' 항목중 'Tomcat'항목을 클릭해서 Apache Tomcat 홈페이지에 접속하자.
바로 가는 URL 은 http://jakarta.apache.org/tomcat/index.html 이다.
여기에서 왼쪽의 'Download Binaries' 항목을 클릭해서 'Binary Downloads' 페이지로 이동한다.
그리고 'Tomcat 5.0.19 KEYS' 항목을 찾은후에 '5.0.19 tar.gz PGP MD5' 를 클릭하면 자동으로 다운로드 된다.
좀더 편한 방법으로 찾는방법을 알아보자.
http://www.apache.org/dist/ 접속후
jakarta 폴더 클릭 (url : http://www.apache.org/dist/jakarta/ )
tomcat-5 폴더 클릭 (url : http://www.apache.org/dist/jakarta/tomcat-5/ )
v5.0.19 폴더 클릭 (url : http://www.apache.org/dist/jakarta/tomcat-5/v5.0.19/ )
bin 폴더 클릭 (url : http://www.apache.org/dist/jakarta/tomcat-5/v5.0.19/bin/ )
jakarta-tomcat-5.0.19.tar.gz 파일 클릭하면 톰캣5.0.19 버젼을 다운로드 받는다.
전체 URL : http://www.apache.org/dist/jakarta/tomcat-5/v5.0.19/bin/jakarta-tomcat-5.0.19.tar.gz
이제 다운로드 받은 파일을 적절한곳에 위치시킨다.
그리고 압축을 해제하기 바란다.
bash-2.05# tar xvfz jakarta-tomcat-5.0.19.tar.gz |
그리고 폴더를 이름을 간단하게 바꾸어서 적절한 위치에 이동시킨다.
마지막으로 톰캣의 환경설정을 한다.
bash-2.05# vi /etc/profile |
이젠 톰캣을 시동 시동시켜서 이쁜 고양이를 보도록 하자.
http://ggil.pe.kr:8080/
앗싸! 이것도 성공.. 한방에 ^^ 이쯤에서 퇴근을 하고 나머지를 정리해야 겠다.
|
두둥!!! 드디어 연동 부분을 설정해야 할 순간이다. 사실 이번 문서를 작성하면서 가장 우려했던 부분이 바로 mod_jk2.so 파일의 생성이며 그다음으로 걱정했던 부분이 바로 이부분이다.
이미 mod_jk.so 파일이 한번에 잘 만들어 졌기 때문에 이번 한고비만 잘 넘기면 이번 연동 프로젝트(?) 는 성공하게 될것이다.
그럼 이제 연동을 시작해보자.
필자가 원하는 연동은 다음과 같다.
ggil.pe.kr 의 도메인을 사용해서 /data/home/www 폴더에 접근한다.
모든 .jsp 파일과 servlet 파일은 ajp13 을 통해서 톰캣으로부터 서비스를 받는다.
일단 index.jsp 파일을 DirectoryIndex 에 추가해야 한다. 이렇게 하면 특정 폴더 혹은 도메인 명을 입력하면 자동으로 index.jsp 파일을 찾는다. 물론 생성한 모듈(mod_jk.so)도 로딩해야 한다. 또한 도메인 ggil.pe.kr 에 대한 가상호스트도 지정해주어야 한다. 마지막으로 WEB-INF 폴더로의 접근을 막아야 한다.
bash-2.05# vi /program/apache/conf/httpd.conf <VirtualHost *> <--------- ggil.pe.kr 이란 가상호스트의 설정 부분이다. LoadModule jk2_module modules/mod_jk2.so <--- 모듈 로딩도 추가 |
그리고 workers2.properties 를 생성해야 한다. 이 파일은 아파치 웹서버가 JK2 모듈을 사용할 때 필요한 여러가지 설정을 저장한 파일인데 JK2 Connector 폴더에 사본이 있으므로 복사해서 편집하면 손쉽다.
먼저 여기에서 한가지 짚고 넘어가야 할 사항이 있다. 우선 필자의 목표는 Apache2 + Tomcat5 + JK2 의 연동이다. 하나의 웹서버와 하나의 어플리케이션 서버와 이 둘을 연결해주는 커넥터의 조합이다.
JK2 의 강력한 기능중 하나인 로드 벨런싱을 염두한다면 현재 시스템에 톰캣을 여러개 설치한다거나 다른 서버에 톰캣을 각각 두어서 웹 컨텐츠 요청을 분산시켜야 한다.
하지만 그건 이후에 로드벨런싱이 필요할 정도로 많은 과부하가 발생했을때의 일이므로 일단 무시하도록 하겠다.
이후에 현재의 시스템에 여러 톰캣을 설치하고 workers2.properties 파일을 수정하면 손쉽게 로드벨런싱을 할 수 있다. (JK2 의 로드벨런싱은 라운드 로빈방식임)
그러므로 로드 벨런싱을 간과하고 아파치 + 톰캣의 연동에만 초점을 맞추어서 설정하겠다.
bash-2.05# cp ./jakarta-tomcat-connectors-jk2-2.0.2-src/jk/conf/workers2.properties /program/tomcat5/conf/ [uri:ggil.mcnd.co.kr/servlet/*] ..... 중략 .... ------------------------------------------------------------------------ |
또한 server.xml 파일을 수정한다.
bash-2.05# vi /program/tomcat5/conf/server.xml AJP13 코요테 커넥터 부분 설정이 잘못되었을수도 있다. 필자의 경우 다음과 같이 설정되어 있었는데 다음과 같이 수정하였다. ---------↓↓↓↓↓------------------------------------------------------ ...중략... <Valve className="org.apache.catalina.valves.AccessLogValve" <Logger className="org.apache.catalina.logger.FileLogger" |
server.xml 파일 설정은 이정도로 하도록 하겠다.
마지막으로 jk2.properties 파일을 수정해 보자. 이 파일은 톰캣이 기본적으로 포함하고 있다. 수정해 보도록 하자.
bash-2.05# vi /program/tomcat5/conf/jk2.properties |
이젠 모든 설정이 끝났다.
위에서 /data/home/www 폴더에 ggil.pe.kr 이란 도메인을 사용하기로 했으므로 해당 폴더를 생성시켜주자. 또한 WEB-INF 폴더를 생성하고 web.xml 파일을 ./tomcat5/webapps/ROOT/WEB-INF/ 밑에서 복사해오자.
bash-2.05# mkdir /data |
마지막으로 테스트를 위해서 /data/home/www 에 파일 두개를 생성하도록하자.
bash-2.05# vi /data/home/www/test.html bash-2.05# vi /data/home/www/test.jsp |
이젠 모든 준비가 끝났다. 톰캣과 아파치를 차례대로(순서와 상관없음) 실행시키고 접속해보도록 하자.
bash-2.05# /program/apache/bin/apachectl start |
그리고 http://ggil.pe.kr/test.html 로 접속해보길 바란다. 물론 도메인 주소는 자신이 설정한 대로 따르기 바란다.
"경험은 현명한 사람의 유일한 예언이다" 란 문구가 잘 보일것이다.
물론 http://ggil.pe.kr/test.jsp 에서도 잘 보일것이다.
"경험은 현명한 사람의 유일한 예언이다" 란 문구가 10개씩이나...
결과가 만족스럽게 나왔다. 원하는대로 아파치와 톰캣의 연동은 이루어졌다.
|
공짜 DATABASE 의 최고봉은 역시 MySQL 일까? 필자가 공짜 DATABASE 를 MySQL 밖에 모르기 때문에 이런 망상에 빠져있는지 잘 모르겠다.
Oracle 같은 상용 DATABASE 보다 유용한 기능을 제공하지는 않지만 가장 기본적이고 빠른 처리를 장점으로 하는 MySQL 은 많은 사용자를 확보하고 있는 만큼 뛰어나다.(필자의 생각)
필자 역시 앞으로 진행할 수많은 프로젝트(개인적으로 하는)를 대부분을 MySQL DATABASE 로 개발할 생각이다. 왜냐하면. 공짜이기 때문.. ㅡㅡ;
자.. 설치를 진행해 보도록 하자.
먼저 MySQL 을 다운로드 받아야 한다.
http://www.mysql.com 접속해서 Download 탭을 클릭하자. "MySQL database server & standard clients"에서 첫번째 항목인 "MySQL 4.0 -- Production release (recommended)" 을 다운로드 받도록 하자. 다른 버젼은 아직 안정화 되지 않은 버젼이므로 차후에 안정화 되면 그때 업그레이드 해도 늦지 않다.
"MySQL 4.0 Downloads" 페이지에 접속해서 페이지 밑으로 스크롤하면 많은 platform 에 따른 많은 종류의 바이너리 파일이 존재한다.
하지만 이미 필자는 바이너리 버젼으로 받았다가 php 설치에 실패했던 쓴 기억이 있기 때문에 소스버젼을 권하고 싶다.
여기에서 Source downloads 항목에 있는 Tarball (tar.gz) 를 받도록하자.
파일 이름은 mysql-4.0.18.tar.gz 와 비슷할 것이다.
적당한 위치에서 압축을 해제하도록 하자. 어짜피 설치할곳은 따로 지정할 것이기 때문이다.
bash-2.05# tar xvfz mysql-4.0.18.tar.gz |
그리고 configure 를 하자. 디폴트 Character Set 을 한글로 설정한다. 또한 data 폴더에 대한 지정, mysql 설치 경로도 지정해주기 바란다. 필자는 이걸 지정해주지 않아서 다시 설치했음(대략 1시간 낭비)
bash-2.05# cd mysql-4.0.18 |
configure 를 마쳤다. 별다른 이상이 없다면 MySQL 을 선택해 줘서 고맙다고 인사를 한다.
그리고 make 와 설치를 실행하자.
bash-2.05# make |
MySQL 이란 시스템이 너무 방대하단 뜻일까? 물론 오라클 설치만큼의 시간을 소요한건 아니지만 컴파일과 make, make install 을 하는데 한시간이 넘게 걸렸다.
가볍게 커피타임 정도로 생각했었는데...
일단 설치가 끝났으면 설치된 폴더로 이동한 이후에 DB 파일을 만들어 준다.
bash-2.05# cd /program/mysql |
이제 DB 파일을 만들었다. 그리고 기본적인 보안을 위해 사용자를 추가하고 파일에 권한을 설정하자.
모든 mysql 관련 파일은 root 가 소유주이다. 다만 생성된 db 에 한해서는 mysql 이란 유저가 소유주가 될것이다. 또한 myslq 의 모든 파일의 소유 그룹은 mysql 로 설정한다.
bash-2.05# groupadd mysql |
마지막으로 myslq 을 실행시켜보자.
bash-2.05# ./bin/mysqld_safe --user=mysql & |
프로세서까지 확인해봤으니 잘 실행이 되었음을 알수 있다. mysql 의 초기 세팅은 관련 문서를 참고하기 바란다.
|
php 를 설치해보자. 사실 필자는 php 가 별로 필요하지 않다. 하지만 이 서버(SunFire 250)의 사용자는 필자를 포함해서 한명더(울 과장님) 있기 때문에 설치해보도록 하겠다. 사실 php 설치에 대한 호기심때문이다.
먼저 php 홈페이지에서 설치파일을 다운로드 받아야 한다.
http://www.php.net 에 접속하자. downloads 페이지에 접속해보면 알겠지만 php 는 윈도우 이외의 시스템에서는 소스 형식의 배포본 만을 제공한다.
우리는 최신 파일(php-4.3.4.tar.gz) 을 다운로드 받을것이다.
예크디엠님의 말에 따르면 php 는 모든버젼이 apache1.3.x 와 연동이 가능하다. 하지만 apache2 와의 연동을 위해서는 php4.3.0 이상의 버젼을 사용해야 한다. Apache 2.0의 SAPI-support 는 PHP 4.2.0에서부터 시작되었다. PHP 4.2.3은 Apache 2.0.39에서 동작하므로 PHP 4.2.3과 다른 Apache 2.0 버젼을 사용하지 말기 바란다. 역시 권장은 최신판인 PHP 4.3.0 이후 버젼을 사용하기 바란다.
먼저 압축을 해제한다.
bash-2.05# tar xvfz php-4.3.4.tar.gz |
압축이 모두 해제 되었다면 configure 를 해야 한다.
bash-2.05# ./configure --prefix=/program/php --with-apxs2=/program/apache/bin/apxs --with-config-file-path=/program/apache/conf --with-mysql=/program/mysql --with-zlib --with-mod-charset --with-xml --with-track-debug --with-gd --with-jpeg-dir --with-gif-dir --with-language=korean --with-charset=euc_kr --enable-gd-native-ttf --enable-track-vars --enable-calendar --enable-shmop --enable-ftp --enable-sockets --enable-mailparse --enable-magic-quotes --enable-track-vars=yes --disable-debug |
별다른 에러가 없다면 make, make install 을 실행한다.
bash-2.05# make; make install |
컴파일과 링크를 하는데 상당한 시간이 걸린다. 물론 MySQL 만큼은 아니겠지만...
bash-2.05# ls -l /program/apache/modules/ |
아파치 모듈 폴더를 확인해보면 libphp4.so 파일이 있다. 성공 ^.^v
그리고 설정파일을 지정했던 위치(--with-config-file-path=/program/apache/conf)에 복사를 한다.
bash-2.05# cp php.ini-dist /program/apache/conf/php.ini |
마지막으로 아파치와 PHP 모듈과의 연동을 위해서 httpd.conf 파일을 수정한다. 물론 PHP 를 설치할때 옵션을 주었기 때문에 모듈 로드하는 부분이 httpd.conf 에 자동 추가되었겠지만 다시 한번 확인해보기 바란다. 또한 다음 설정도 해주길 바란다.
bash-2.05# vi /program/apache/conf/httpd.conf |
이젠 정말 연동이 다 끝났다. 노파심에 httpd.conf 파일의 문법을 확인해보고 아파치를 구동시켜보겠다.
bash-2.05# /program/apache/bin/apachectl configtest
Syntax OK
bash-2.05# /program/apache/bin/apachectl start
그리고 지정해 놓은 홈페이지 폴더에 가서 다음 파일을 작성하기 바란다.
bash-2.05# vi /data/home/www/test.php |
그리고 해당 url 을 입력해서 php 정보가 잘 나오는지 확인해본다. http://ggil.pe.kr/test.php
그럼 연동 성공!!!!! 다음으로 php 의 성능을 증가 시켜 준다는 Zend 란것을 설치해 보자.
|
이 파일을 설치하는 이유를 예크디엠 님은 다음과 같이 설명하였다.
---------------------------------------------------------------------------
Zend Optimizer - Zend Encoder와 Zend SafeGuard Suite에 의해 encoding된 파일을 실행시키며, PHP Application의 실행속도를 향상시키는 free software. runtime performance를 40%이상 향상시킬 수 있습니다.
---------------------------------------------------------------------------
그러므로 설치하자. ㅡㅡ; 사실 필자도 위 말이 무슨뜻인지 잘 모른다. 다만 성능이 좋아진다니 설치하도록 하겠다.
파일을 다운로드 받도록하자.
http://www.zend.com 에 접속해서 Products 의 Zend Optimizer 를 클릭하면 "Zend Optimizer™ - Optimize your PHP code " 페이지로 이동한다.
오른쪽 상단에 있는 "free download" 버튼을 클릭하자.
바로가기 URL 은 http://www.zend.com/store/free_download.php?pid=13 이다.
당연히 "Solaris Sparc 4.0.5 or later Download Now" 를 받아야 한다.
다른 버젼을 받아서 설치해보실분은 과감히 도전해 보길 바란다. 그리고 그 결과를 필자에게 알려주면 대단히 감사하게 생각(?) 할것이다.
다운로드 받은 파일이름은
ZendOptimizer-2[1].5.1-Solaris-sparc.tar.gz
이다. 이것을 적당한 곳에 위치시키고 압축을 해제한다.
bash-2.05# tar xvfz ZendOptimizer-2\[1\].5.1-Solaris-sparc.tar.gz |
Zend 는 GUI 설치환경(?) 이다. 각각의 과정은 자동으로 이루어 지며 마지막에는 아파치 웹서버를 재구동시켜준다.
필자는 텔넷으로 접속해서 설치를 했는데 글자가 많이 깨지거나 삐뚤게 나왔다. 하지만 대충 뜻은 이해할 수 있으므로 알아서 적절히 입력하기 바란다.
입력항목은 Zend 설치경로, php.ini 위치, 아파치의 bin 폴더 경로 3개만 잘 입력하면 된다.
다시 test.php 에 접속해보기 바란다. 아마도 바뀐부분이 있을것이다.
/program/apache/conf/php.ini 에서 /program/Zend/etc/php.ini 로 바뀌었을테고, Zend 관련 설정이 눈에 띄일것이다.
|
설치를 잘 하셨나요? 처음 이 문서를 만들때 저는 재미삼아 저에게 쓰는 메모 정도로 생각했었습니다.
그래서 대충 생각나는데로 끄적끄적했습니다.
사실 설치하다가 제가 뭘 설치했는지, 혹은 시도 했던 방향을 좀더 명확히 하고자 하는 이유로 메모를 했지만 , 설치 중간 중간의 시행착오를 다시 겪지 않기 위해서 였습니다. 예전에 이미 한번 연동때문에 많은 시간과 노력을 허비한 경험이 있거든요. 또한 컴파일시간의 남는 시간이 아까워 틈틈히 글을 적었습니다.
아무튼 이번 연동을 하는데 약 일주일 가량의 시간이 걸렸습니다. 저번주 토요일부터 연동을 했는데 중간에 몇번 실패도 하고 회사에서 다른일을 시켜서 며칠은 빼먹고...
하지만 직접 이런 문서를 만들었다는것에 대해서 자부심을 느끼며 비록 이 내용이 부실하더라도 많은 분들에게 도움이 되었기를 바랍니다.
마지막으로 mysql 과 tomcat, apache, php 를 구동시키고 테스트를 해보시기 바랍니다. 도메인 주소는 필자의 테스트환경과 약간의 차이가 있습니다.
다음은 실제 연동을 성공한 서버의 주소입니다.
http://ggil.mcnd.co.kr/test.html
http://ggil.mcnd.co.kr/test.jsp
http://ggil.mcnd.co.kr/test.php
|
1. MySQL 초기세팅하기 1탄, 2탄
http://www.ggil.pe.kr/bbs/view.php?id=db_tip&no=20
http://www.ggil.pe.kr/bbs/view.php?id=db_tip&no=21
2. 장윤기님의 '아파치+톰캣 로드벨런싱'
http://www.ggil.pe.kr/bbs/view.php?id=jsp_tip&no=5
|
이번 연동에서 경험했던 에러들
1. tomcat5/logs/catalina.out 에서 보이는 에러들
1) 경고: Error registering request
별다른 해가 없는 에러임 (from : Bill Barker)
단 이 경고 메세지가 보기 싫다면
jk2.properties 에서 다음 구문을 추가한다.
request.registerRequests=false
2) java.io.UTFDataFormatException: Invalid byte 2 of 2-byte UTF-8 sequence.
이 에러가 나타났다면 아마도 톰캣이 죽었을것이다. 바로 server.xml 파일에 한글이 들어갔거나 특수문자가 포함되었을때 나타나는 에러이다. 해결법. 문제의 문자를 삭제하자.
3) 심각: Error undeploying web application at context path ?????
이 에러는 context 의 위치가 잘못되었을때 나오는 메세지 이다. server.xml 에서 context 엘리먼트의 docBase 를 잘 확인하도록하자.
첫댓글 이런 내가 그 0.00001% 안에 포함되다니...쩝...열공해야쥐~~
우왕 안타깝네요...넘커서 스크랩을 못해가네요...좋은 자료인데...^^
저 PHP설정할때 그 긴 명령어가 다 입력이 되나요? 너무 길어서 그런지 앞에서 짤릴때도 있고 뒤에서 짤릴때도 있던데 어떻게 해야하는지요?
vi dso_php.sh 이렇게 해서 위의 글을 드래그 캡춰해서 dso_php.sh에 붙여넣기 줄이 바뀌어 있으면 마지막에 가셔서 Ctrl+j를 눌러서 연결해주세요. 그리고 chmod 755 dso_php.sh 다음 ./dso_php.sh하시면 됩니다. 또 연속해서 make와 make install을 하시고 싶으면 마지막에서 줄바꿈해서 make;make install 추가
좋은 게시물이네요. 스크랩 해갈게요~^^
좋은 게시물이네요. 스크랩 해갈게요~^^
스크랩 해갈게요. 항상 감사^ㅡ^