들어가며

기존에 eclipse 에서 tomcat 프로그래밍을 하려면 톰켓을 받아서 설치해야 했었다. maven 에서는 어떻게 하는지 확인해 보도록 하자.

 

프로젝트 만들기

이번 프로젝트는 웹 어플리케이션 이기 때문에 배포형태를 war 로 한다.

 

 

 

디렉토리 구조

웹 어플리케이션 형태는 위와 같이 webapp 디렉토리가 추가된 것이 보일 것이다. 여기에 웹 파일들을 위치시키면 된다.

 

 

TOMCAT 플러그인 설치

이제 웹 어플리 케이션을 테스트 하기 위해서 tomcat 플러그인을 설치해야 한다. tomcat 플러그인은 이름에서도 알 수 있듯이 maven 웹 어플리케이션을 편리하게 tomcat 으로 테스트 해 볼 수 있게 해 주는 플러그인이다. 

 

설치하기 위해서는 아래와 같이 pom.xml 파일을 열어서 plugins 탭에 Add Plugin 아이콘을 클릭한다.

 

아래와 같은 검색화면이 나오는데 tomcat 으로 검색해서 추가하자.

 

 

HELLO 실행하기

일단 아래와 같은 index.jsp 파일을 webapp 디렉토리에 추가하자.

 

- main/webapp/index.jsp

<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

 

 

이제 위에서 받은 톰켓 플러그인을 실행해 주면 되는데 그 방법은 [Run As]-[maven build…] 를 클릭 한다음 아래와 같이 Goals 에다가 tomcat:run 이라고 입력하고 Run 을 누르면 된다.

 

그러면 Console 창에 메시지가 뜨면서 실행을 하게 되는데 만약 톰켓이 없다면 자동으로 로컬 레포지토리에 받아지게 된다. 다 받아진 후에 아래 메시지가 뜨면서 실행된다.

[INFO] [tomcat:run {execution: default-cli}]
[INFO] Running war on http://localhost:8080/simplewebapp
[INFO] Creating Tomcat server configuration at D:\cranix\work\workspace-wtp2\simplewebapp\target\tomcat
2009. 8. 17 오후 10:15:47 org.apache.catalina.startup.Embedded start
정보: Starting tomcat server
2009. 8. 17 오후 10:15:48 org.apache.catalina.core.StandardEngine start
정보: Starting Servlet Engine: Apache Tomcat/6.0.16
2009. 8. 17 오후 10:15:48 org.apache.coyote.http11.Http11Protocol init
정보: Initializing Coyote HTTP/1.1 on http-8080
2009. 8. 17 오후 10:15:48 org.apache.coyote.http11.Http11Protocol start
정보: Starting Coyote HTTP/1.1 on http-8080

 

이제 위에서 나온 주소로 접속해 보면 아래와 같이 제대로 뜨는 것을 확인 할 수 있다.

 

 

마치며

maven 은 tomcat 조차도 플러그인 형태로 취급한다. 이렇게 함으로서 작업환경을 특정 플랫폼에 종속시키지 않을 수 있을 것이다.

신고
by cranix 2009.08.17 22:24

서론

최근 페도라코어10 리눅스 시스템에 apache+ajp+tomcat 를 셋팅할 일이 생겨서 삽질끝에 작업을 완료하였다. 그래서 이번에 내 gentoo 리눅스 서버에도 미뤄두었던 tomcat 연동을 하기로 맘을 먹었다.

 

본론

1. apache 업그레이드 하기

mod_proxy_ajp 는 apache 2.2 버젼에서 추가된 모듈이기 때문에 그 이하의 버젼이라면 업그레이드 해야한다. gentoo 에서 아파치 업그레이드 하는방법은 아래 사이트를 참조하기 바란다. 여기서 중요한건 업그레이드 중에 make.conf 설정에서 APACHE2_MODULES 셋팅에 proxy_ajp 를 추가하고 나머지를 알맞게 변경해야 한다는 것이다.

http://www.gentoo.org/proj/en/apache/doc/upgrading.xml

2. 가상호스트 설정하기

아파치와 연동한 이유는 아파치의 다른 기능들을 그대로 쓰면서 톰켓도 돌아가게 하기 위해서 이다. 그래서 아파치의 가상호스트 설정으로 특정 서브도메인을 지정해서 해당 가상호스트로 들어오는 모든 요청은 톰켓으로 돌리도록 만들겠다. 먼저 아파치 가상호스트 설정에 아래와같이 추가해서 apps.cranix.net 으로 들어오는 모든 요청을 톰켓으로 돌리도록 한다.

<VirtualHost apps.cranix.net:80>
        ServerName apps.cranix.net
        ServerAdmin cranix@cranix.net
        ErrorLog "/home/users/admins/cranix/logs/apps_error_log"
        RewriteEngine On
        RewriteRule (.*) ajp://localhost:8009$1 [P]
</VirtualHost>

가상호스트 설정은 아파치에만 있는것이 아니다 톰켓 역시 하나의 서버이고 가상호스트 설정을 가지고 있다. 위에서 설정한 설정대로 아파치에서 먼저 요청을 받아서 톰켓으로 넘기게 되면 톰켓 역시 apps.cranix.net  이라는 도메인으로 받게 됨으로 가상호스트 설정을 해 주어야 한다. 톰켓 설정은 server.xml 파일을 열어서 아래 부분을 추가한다.

<Host name="apps.cranix.net" appBase="/home/users/admins/cranix/webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
                <Context path="" docBase="/home/users/admins/cranix/public_html" privileged="true"/>
</Host>

그리고 톰켓의 기본 http 포트인 8080 번은 쓰지 않을것이기 때문에 해당 Connector 태그는 주석을 걸어준다.

이제 /home/users/admins/cranix/webapps 디렉토리에 톰켓 어플리케이션을 올리게되면 http://apps.cranix.net/[어플리케이션명] 형태로 접근이 가능하게 된다.

3. 보안관련 셋팅하기

톰켓 혼자서 실행시키면 알아서 /WEB-INF 디렉토리나 /META-INF 디렉토리의 접근을 금지했지만 apache 와 같이 실행하면 설정을 해 주어야 한다. apache 의 설정파일에 아래 내용을 추가한다.

<LocationMatch “/WEB-INF”>

deny from all

</LocationMatch>

<LocationMatch “/META-INF”>

deny from all

</LocationMatch>

 

결론

서버작업은 언제나 삽질의 연속이다. 이 작업도 써놓은것은 얼마 안되지만 이 결과를 얻기 위해서 수많은 삽질을 했다. 그래도 역시나 깔끔해진 서버를 보면 뿌듯하긴 하다.

신고
by cranix 2009.08.07 15:47
- fedora 10 받기
페도라 공식 홈페이지 (무료)
CD-R 한장짜리 (700 MB) Fedora10 Live 받아서 설치하면 기본적으로 영어로 깔림.


- yum 으로 gcc, java, mysql, tomcat, php, php-mysql 설치
   - gcc
gcc-4.3.2-7.i386

   - java
java-1.6.0-openjdk
java-1.6.0-openjdk-devel
   - mysql
mysql-5.0.67-2.fc10.i386
mysql-gui-tools-5.0r12-9.fc10.i386
mysql-libs-5.0.67-2.fc10.i386
mysql-gui-common-5.0r12-9.fc10.i386
mysql-administrator-5.0r12-9.fc10.i386
mysql-query-browser-5.0r12-9.fc10.i386
mysql-server-5.0.67-2.fc10.i386
    - tomcat (yum install tomcat6\*)
tomcat6-jsp-2.1-api-6.0.18-6.2.fc10.noarch
tomcat6-6.0.18-6.2.fc10.noarch
tomcat6-webapps-6.0.18-6.2.fc10.noarch
tomcat6-admin-webapps-6.0.18-6.2.fc10.noarch
tomcat5-jsp-2.0-api-5.5.27-6.1.fc10.noarch
tomcat6-servlet-2.5-api-6.0.18-6.2.fc10.noarch
tomcat5-servlet-2.4-api-5.5.27-6.1.fc10.noarch
tomcat6-javadoc-6.0.18-6.2.fc10.noarch
jakarta-commons-collections-tomcat5-3.2-2.3.fc10.i386
jakarta-commons-dbcp-tomcat5-1.2.1-11jpp.4.fc10.i386
tomcat6-docs-webapp-6.0.18-6.2.fc10.noarch
jakarta-commons-pool-tomcat5-1.3-10.5.fc10.i386
tomcat6-lib-6.0.18-6.2.fc10.noarch
    - php (yum install php)
php-5.2.6-5.i386
php-cli-5.2.6-5.i386
php-common-5.2.6-5.i386
php-pdo-5.2.6-5.i386


    - php-mysql (yum install php-mysql)
php-mysql-5.2.6-5.i386

- vsftpd 설정
    1. touch /etc/vsftpd/chroot_list
    2. vsftpd.conf 수정
anonymous_enable=NO
chroot_local_user=YES
passwd_chroot_enable=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

- apache+tomcat 연동하기
http://wiki.kldp.org/wiki.php/Apache2Tomcat5Howto2

- tomcat server.xml 설정에서 8080 기본 리슨을 삭제
- 각 유저 디렉토리 권한은 711, public_html 디렉토리 권한은 755 로 셋팅해야함


- setup 설정
setup 명령실행후 iptables 모두 죽이고 지금까지 설치한 데몬 모두 살리기


- SELinux 해제 (보안관리도구)
시스템 -> 관리 -> SELinux Management 가서 Disabled 로 바꿈


신고
by cranix 2009.03.25 13:51
| 1 |