Linux 2012. 11. 13. 22:28

fedora 17 kde 에서 yum으로 톰캣 설치 후 초기화

find -name "tomcat"

명령어를 쓰면


./usr/share/tomcat

./usr/share/maven-fragments/tomcat

./usr/share/java/tomcat

./usr/sbin/tomcat

./etc/sysconfig/tomcat

./etc/logrotate.d/tomcat

./etc/tomcat

./var/log/tomcat

./var/cache/tomcat

./var/lib/tomcat

두군데에 톰캣 폴더가 보인다. 어느곳이 진짜일까?

/usr/share/tomcat 의 경우

drwxr-xr-x.   2 root root   4096  9?? 7 11:27 bin
lrwxrwxrwx.   1 root tomcat   11  9?? 7 11:27 conf -> /etc/tomcat
lrwxrwxrwx.   1 root tomcat   22  9?? 7 11:27 lib -> /usr/share/java/tomcat
lrwxrwxrwx.   1 root tomcat   15  9?? 7 11:27 logs -> /var/log/tomcat
lrwxrwxrwx.   1 root tomcat   22  9?? 7 11:27 temp -> /var/cache/tomcat/temp
lrwxrwxrwx.   1 root tomcat   23  9?? 7 11:27 webapps -> /var/lib/tomcat/webapps
lrwxrwxrwx.   1 root tomcat   22  9?? 7 11:27 work -> /var/cache/tomcat/work

/etc/tomcat 의 경우

drwxrwxr-x.   3 root   tomcat   4096  9?? 7 11:27 Catalina
-rw-rw-r--.   1 tomcat tomcat  12128  7??26 05:54 catalina.policy
-rw-rw-r--.   1 tomcat tomcat   5435  7??26 05:54 catalina.properties
-rw-rw-r--.   1 tomcat tomcat   1394  7??26 05:54 context.xml
-rw-rw-r--.   1 tomcat tomcat    547  7??26 05:55 log4j.properties
-rw-rw-r--.   1 tomcat tomcat   3288  7??26 05:54 logging.properties
-rw-rw-r--.   1 tomcat tomcat   6435  7??26 05:54 server.xml
-rw-rw----.   1 tomcat tomcat   1998  7??26 05:54 tomcat-users.xml
-rw-rw-r--.   1 tomcat tomcat   1445  7??26 05:55 tomcat.conf
-rw-rw-r--.   1 tomcat tomcat 152724  7??26 05:54 web.xml

/etc/tomcat 이 설정파일이 있는 conf 폴더이고 /usr/share/tomcat 의 경우 다른 폴더들을 심볼릭 링크 해놓은 것을 알 수있다.
이제부터 /usr/share/tomcat 을 {$tomcat} 이라고 지칭하겠다.
아파치 서버와 연동해야 하지만 이번에는 단순히 웹어플리케이션만 만들어 보기로 하겠다.

윈도우의 톰캣과 비슷한 경로인 {$tomcat}/webapps 디렉토리에 들어가보면 
아무런 웹 어플리케이션도 있지 않다.

가장 간단한 웹 어플리케이션의 경우
{$tomcat}/webapps 경로 아래에
(끝에 /가 붙는 것은 폴더임)
프로젝트명/
프로젝트명/WEB-INF/
프로젝트명/WEB-INF/web.xml
이렇게 존재한다. 

(주의 WEB_INF, web_inf, web-inf 등이 아니다. 리눅스/유닉스는 파일,디렉토리명의 대소문자를 구분한다. WEB-INF를 정확히 쓸것)

톰캣 서버를 껏다 켰을때 메모리상에 올라가는 것이다.

index.jsp 의 경우 없어도 상관 없다 하지만 이런 폴더구조와 web.xml이 없을 경우, 또는 web.xml이 
잘못된 경우 로딩이 되지 않는다.

톰캣 루트 폴더인 {$tomcat}/webapps로 이동
(이후 톰캣 루트폴더는 웹앱스 폴더로, 표현하고 {$tomcat}은 톰캣 폴더로 표현하겠다. 물론 그냥 루트폴더는 /이다.
 이것은 톰캣을 설치후 해당 서버명으로 붙었을때 접근하는 폴더, 즉
 http://도메인 혹은 아이피:8080
 또는
 http://도메인 혹은 아이피:8080/
 로 접근했을때 뜨는 페이지가 톰캣루트디렉토리이기 때문이다.
 이 파일구조와 웹에서 접근 할 때의 관계를 잘 외워두자.)

cd {$tomcat}/webapps 

이번에 만들 프로젝트이름은  ticketM 이다.

mkdir ticketM
cd ticketM
mkdir WEB-INF
touch web.xml

이렇게 하면 web.xml 이 된다.

web.xml의 내용은 이렇게 채운다

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

당신이 root 로 작업했다면 ls -al 이나 ls -lrt 를 쳤을때 이상한 것을 발견해야 된다.

만약 발견하지 못한다면 알려주겠다.

새로 생성된 폴더와 파일은 root로 생성되어 다른 유저가 접근하지못한다.

그런데 톰캣 서비스 (데몬프로세스) 는 tomcat이라는 유저가 실행하는 것과 같다.
(아파치도 마찬가지)

그래서 이 파일 주인과 그룹을 톰캣으로 바꿔놓는 것이 필요

chmod 644 <파일명>
chmod 755 <디렉토리명>

으로 각자 실행해 준다.


권한까지 다 변경하면

톰캣 서비스를 껏다켜보자

페도라에서 yum으로 설치한 경우:
service tomcat restart
라고 치면 
 Redirecting to /bin/systemctl restart  tomcat.service  
이렇게 출력되면 된다.
톰캣 바이너리를 따로 설치한 경우,
     {$tomcat}/bin/shutdown.sh
     {$tomcat}/bin/startup.sh
이렇게 실행하면 된다.
    (해당 쉘이 없을 경우 잘 모르겠다.)

이후  http://도메인 혹은 아이피:8080/로 들어갔을때 출력되지 않을 것이다.
 ticketM 폴더에 index.jsp 파일을 생성한후
파일의 내용을
123123 으로 채우고

http://도메인 혹은 아이피:8080/ticketM 
혹은
http://도메인 혹은 아이피:8080/ticketM/
로 들어가면 123123이 출력된다.

이후에

http://도메인 혹은 아이피:8080/ 
을 홈페이지 루트를 웹으로 접근한다고 표현하고
http://도메인 혹은 아이피:8080/ticketM
혹은
http://도메인 혹은 아이피:8080/ticketM/
를 웹브라우저에 쳐서 접근하는 것을
웹어플리케이션 루트, 또는 웹 프로젝트 루트디렉토리에 웹으로 접근한다고 하겠다.


//