OSX에서 Servlet/JSP 개발 환경 만들기
- Tomcat 설치
- Eclipse 설치
- PostreSQL 설치
1. Tomcat 설치

[code bash nogutter nocontrols]
export JAVA_HOME=/Library/Java/Home
export CATALINA_HOME=/Library/Tomcat/Home
톰캣 바이너리 다운로드 및 설치
톰 캣은 소스를 받고 컴파일 하여 설치할 수도 있습니다. 하지만 특이한 설정을 사용하지 않는 이상 컴파일 된 바이너리를 받아서 설치하는 편이 시간과 머리 사용을 절약할 수 있습니다. 톰캣은 여기(톰캣 다운로드)에서 다운 받을 수 있습니다. 이 글을 작성할 때 톰캣의 최신 버전은 6.0.16입니다. 톰캣 홈페이지에서 바이너리 파일 apache-tomcat-6.0.16.tar.gz을 바탕화면(~/Desktop)에 다운 받은 것으로 가정하겠습니다.
톰캣은 /Library에 설치하겠습니다.
[code bash nogutter nocontrols]cd /Library
mkdir Tomcat
cd Tomcat
tar xvf ~/Desktop/apache-tomcat-6.0.16.tar.gz
ln –s apache-tomcat-6.0.16 Home
톰캣 바이너리 파일에는 OSX에는 필요 없는 파일이 있습니다. 이 파일들은 톰캣이 설치된 곳의 bin에 있습니다. 다음 명령을 이용합니다.
[code bash nogutter nocontrols]cd /Libaray/Tomcat/Home/bin
rm –f *.bat *.exe
톰캣 시작 및 중지
이제 톰캣을 시작 해 보겠습니다.[code bash nogutter nocontrols 1]cd /Libaray/Tomcat/Home/bin
./startup.sh

위와 유사한 화면이 보입니다. 에러가 발생하는지를 잘 보셔야 합니다. 마지막 문장을 잘 보시면 됩니다. 에러가 발생하지 않으면 http://localhost:8080/ 에서 고양이를 보실 수 있습니다.
포트 번호 80으로 변경 - conf/server.xml 수정
톰캣은 HTTP의 기본 TCP 포트 번호인 80을 사용하지 않고 8080을 사용합니다. 80 번을 사용하기 위해서는 물론 다른 서비스가 80번을 사용하고 있지 않아야 합니다. 그리고 톰캣이 설치된 곳의 conf/server.xml 파일을 수정하면 됩니다. (이 예제를 따라하셨으면 /Library/Tomcat/Home/conf/server.xml 입니다. )[code xml nocontrols 80 ]
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
여기에 port 속성 8080을 80으로 변경하면 됩니다.
Invoker Servlet 사용 - conf/web.xml, conf/context.xml 수정
또, invoker Servlet을 사용하기 비활성된(주석 처리된) 것을 활성화 해 줘야 합니다. 이는 conf/web.xml 파일을 수정합니다. (이 예제를 따라하셨으면 /Library/Tomcat/Home/conf/web.xml 입니다. )[code xml nocontrols 115 ]
<!--
<servlet>
<servlet-name>invoker</servlet-name>
<servlet-class>
org.apache.catalina.servlets.InvokerServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
-->
[code xml nocontrols 374]
<!--
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
-->
위 두 곳에 있는 <!--, -->을 삭제합니다.
다음은 context.xml 파일에서 <Context>를 다음과 같이 수정합니다.
[code xml nocontrols 19]
<Context reloadable="true" privileged="true">
Mod_Jk 설치
Mod_Jk 는 아파치(Apache)와 톰캣을 연결해 주는 기능을 담당합니다. 다음 페이지에서 다운 받을 수 있습니다. 이 문서를 작성할 때 최신 버전은 1.2.26 입니다. 바이너리 파일을 다운 받아서 설치하셔도 됩니다. 하지만 약간 문제가 있습니다. OSX에 따라오는 아파치는 유니버설 버전입니다. 이는 여러 프로세스 아키텍처에서 수행할 수 있다는 뜻입니다. PPC, PPC64, i386, x86_64 등등 입니다. 따라서 설치된 HTTPD(아파치 데몬)에 따라서 Mod_Jk를 맞게 설치해야 합니다. 그래서 여기서는 소스 파일을 다운 받고 컴파일 하여 사용하겠습니다.설치된 아파치 컴파일 정보 찾기
/usr/sbin/httpd –VL
을 수행하면 필요한 정보가 나타납니다.
제가 가지고 있는 Leopard가 설치된 맥북에서는 다음과 같은 결과를 보여 줬습니다.

[code bash nogutter nocontrols]
#빌드 하고 설치하기
cd /usr/local/src/tomcat-connectors-1.2.26-src/native
# 32bit
./configure --with-apxs=/usr/sbin/apxs
# x86_64 ( Core 2 Duo, Xeon )
./configure CFLAGS='-arch x86_64' APXSLDFLAGS=' -arch x86_64' --with-apxs=/usr/sbin/apxs
# PPC
./configure CFLAGS='-arch ppc' APXSLDFLAGS='-arch ppc' --with-apxs=/usr/sbin/apxs
# PPC64
./configure CFLAGS='-arch ppc64' APXSLDFLAGS='-arch ppc64' --with-apxs=/usr/sbin/apxs
# 빌드하기
make
# 설치하기
sudo make install

/etc/apache2/httpd.conf 파일 끝에 다음을 추가합니다.
[code xml nogutter nocontrols]
# Load mod_jk module
# Update this path to match your modules location
LoadModule jk_module libexec/apache2/mod_jk.so
# Where to find workers.properties
# Update this path to match your conf directory location (put workers.properties next to httpd.conf)
JkWorkersFile /etc/apache2/workers.properties
# Where to put jk shared memory
# Update this path to match your local state directory or logs directory
JkShmFile /var/log/apache2/mod_jk.shm
# Where to put jk logs
# Update this path to match your logs directory location (put mod_jk.log next to access_log)
JkLogFile /var/log/apache2/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the timestamp log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# Send everything for context /examples to worker named ajp13 (ajp13)
JkMount /examples/* ajp13
JkMount /host-manager/* ajp13
JkMount /docs/* ajp13
JkMount /manager/* ajp13
/etc/apache2 에 workers.properties 파일을 만들고 다음을 붙여 넣기 합니다.
[code xml nogutter nocontrols]
worker.list=ajp13
worker.ajp13.type=ajp13
worker.ajp13.host=localhost
worker.ajp13.port=8009
이제 정말 끝입니다.
톰캣을 다시 시작해 보세요. 이제는 http://localhost 에서도 고양이를 보실 수 있습니다.
만약에 톰캣 시동중에 에러가 발생하면, 설정파일에 뭔가 에러가 생긴것이기 때문에 잘 수정 하시기 바랍니다. :-)

