톰캣 매핑

Cafe24 2012.12.27 18:11
cafe24에서 sturts 사용시 action 이 실행되게 하기 위해서는 반드시 톰캣 매핑을 해주셔야 합니다. 

톰캣 매핑은 호스팅관리-기본관리-톰캣매핑에서 하실 수 있습니다. 아래와 같이 규칙에 action을 적은 후 적용 버튼을 누르면 규칙이 추가 됩니다. 매핑 추가후 적용되는데는 15분정도 걸립니다.


 
저작자 표시 비영리 변경 금지
신고
Posted by 플라스틱라디오
톰캣을 재시작할 경우 반드시 톰캣을 먼저 내린 다음 재시작 해야 합니다. 그렇지 않을 경우 tomcat/conf/web.xml이 사라져 사이트 접속시 404 에러가 발생하게 됩니다. 

이런 경우에는 cafe24에 복구해 달라는 문의글을 남겨 복구 될 때까지 기다리는 수밖에 없으니 주의 하셔야 합니다.
저작자 표시 비영리 변경 금지
신고
Posted by 플라스틱라디오
이미지 등의 콘텐츠를 외부 링크로 가져가는 것을 막기 위해서는 아래와 같은 내용의 .htaccess 파일을 만든 후 www 디렉토리 안에 올려주시면 됩니다.

SetEnvIf Referer mydomain.com go_in  <= 허용을 원하는 도메인 명
SetEnvIf Referer naver.com go_in         <= 허용을 원하는 도메인 명
SetEnvIf Referer empas.com go_in       <= 허용을 원하는 도메인 명
SetEnvIf Referer ^$ go_in                     

<FilesMatch ".\="" (gif|jpg|zip|alz|a00|jpeg|gif|jpg|zip|rar|alz|a00|ace|mp3|mp3|mpeg|mpeg\="" |wav|wav|asf|asf|wmv|wmv|swf|smi|smi|swf|exe|exe|wma|wma)$"=""> <= 제한할 파일 확장자 지정
                                                                                                                 (없으면 모든 파일에 적용) 

Order Deny,Allow
Allow from env=go_in 
Deny from all <= go_in으로 지정된 주소 외엔 모두 거부 

</FilesMatch> 



만일 허용 금지된 사이트에서 이미지를 링크했을 경우 x박스 대신 대체 이미지를 보여주길 원한다면 Allow from env=go_in 다음에 아래와 같은 코드를 추가해 주시면 됩니다.

ErrorDocument 404 대체이미지링크URL 




이때 주의 하실 점은 tomcat을 재시작 해야 적용된다는 점이며 재시작하기 전에는 반드시 tomcat을 내려주셔야 한다는 점입니다.


출처 : cafe24 고객센터 
         큐디
          
신고
Posted by 플라스틱라디오

log 파일 catalina.out

Cafe24 2012.12.27 12:10
tomcat 구동 중 발생하는 모든 상황에 대한 로그 기록은 catalina.out에 기록됩니다. 

따라서 tomcat 구동 중 발생하는 오류 사항은 catalina.out에 기록되며 서버에서 발생하는 오류 내용을 확인하기 위해서는 cat tomcat/logs/catalina.out | more 명령어나 vi tomcat/logs/catalina.out 명령어를 사용하여 catalina.out을 열어 그 내용을 확인하면 됩니다.

또한 System.out.println() 명령어를 통해 출력되는 사항도 catalina.out에 기록됩니다. 만일 코드에 System.out.println() 명령어가 있으면 해당 코드가 실행될때마다 catalina.out 에 기록되어 catalina.out 파일의 용량이 빠른 속도로 증가되는 문제가 발생할 수 있습니다. 따라서 tomcat 서버에 올릴 시에는 코드에서 모든 System.out.println() 명령어 부분을 제거해 주는 것이 좋습니다.


앞서 말했듯 서버 구동 후 시간이 지날 수록 catalina.out 파일에는 로그기록이 계속해서 쌓이게 되기 때문에 catalina.out의 파일 용량은 계속해서 늘어나게 되며, 서버의 용량이 부족해지는 현상까지 발생시키게 됩니다. 이러한 경우에는 catalina.out의 용량을 비우기 위해 빈 내용의 .txt 파일을 만들어 서버에 올린 후 catalina.out 파일에 덮어 쓰기 해주어야 합니다.
저작자 표시 비영리 변경 금지
신고
Posted by 플라스틱라디오

tomcat 구동되어 있는 상태에서 홈디렉토리(appBase) 내의 디렉토리명을 변경하거나 삭제할 경우, 해당 파일들이 삭제가 되며, 이는 tomcat/conf/server.xml에 autoDeploy가 true로 설정되어 있을 경우 발생하는 문제입니다.

tomcat 이 구동되어 있을 경우 www와 동일한 홈디렉토리 내에 디렉토리명을 변경한다던지 삭제하는 등의 작업은 반드시 tomcat을 shutdown 후 작업해야 합니다.
 
위와 같은 처리 방식이 불편할 경우 autoDeploy를 false로 변경하고 tomcat을 재시작하면 됩니다. 단, 이 경우 설정 변경 등이 바로 적용되지 않으므로 설정 변경 후 tomcat을 꼭 재시작 해주셔야 합니다.
신고
Posted by 플라스틱라디오
JSP 웹 애플리케이션은 war 파일 형태로 간편하게 배포가 가능합니다. Cafe24 서버에 war 파일을 배포하기 위해서는 아래와 같은 순서를 따라야 합니다.



1. 톰캣을 정지시킨 후 www 디렉토리를 www_ 등의 다른 이름으로 변경합니다. 


: 톰캣을 정지시키지 않을 경우 tomcat의 설정 파일들이 사라져서 홈페이지에 접속이 불가능한 상황이 발생하므로 반드시 톰캣을 정지한 후 작업해야 합니다. 또한 www 디렉토리를 다른 이름으로 변경하는 것은 www 디렉토리에 똑같은 파일이 있을 경우 덮어씌워지기 때문에 폴더명을 변경하는 것입니다.


2. war 파일의 이름을 www.war 로 변경하고 www 와 동일한 위치(www 폴더, tomcat 폴더가 위치한 경로)에 업로드 한 후 톰캣을 재시작 합니다.


: 톰캣을 재시작하면 www.war 파일이 www라는 폴더 안에 자동으로 압축해제되면서 배포가 이루어집니다. 주의 할 점은 반드시 www라는 폴더 안에 war 파일의 압축을 해제해야 한다는 것입니다. Cafe24 서버에서는 www 이외의 다른 폴더명은 지원되지 않습니다.

※  tomcat 재시작시 www폴더와 함께 ROOT폴더가 같이 생성되는 경우가 있는데 이 경우에는 ROOT폴더를 삭제해주셔야 합니다. (마찬가지로 tomcat을 정지한 후 삭제하셔야 합니다.)
저작자 표시 비영리 변경 금지
신고
Posted by 플라스틱라디오
TAG cafe24, War
톰캣의 /tomcat/webapps 폴더는 각각의 웹애플리케이션의 파일들을 저장하기 기본 위치입니다. 설정을 바꾸지 않는 이상 기본적으로 개발자가 개발한 웹애플리케이션의 jar, class, jsp 등의 파일들은 이곳에 위치해야 합니다. 이는 /tomcat/server.xml 파일안의 Host 태그의 appBase 속성에 지정되어 있습니다.

하지만 Cafe24의 경우 appBase 속성이 "webapps"가 아니라 "/home/hosting_users/Cafe24아이디"로 지정되어 있으며 root 폴더로 www 폴더가 지정되어 있습니다. 따라서 Cafe24 서버에 올리는 웹애플리케이션의 파일들은 반드시 /home/hosting_users/Cafe24아이디/www 에 업로드 해야 합니다. (Cafe24 서버에 ftp 접속시의 root 폴더가 바로 /home/hosting_users/Cafe24아이디/www/ 입니다.)

또한 하나의 Cafe24 서버에 하나의 사이트만 운영이 가능합니다. www폴더 이외에 폴더를 만들어 이곳에 사이트 관련 파일들을 넣는 것은 허용되지 않습니다.
저작자 표시
신고
Posted by 플라스틱라디오
Cafe24에서 JNDI 사용시에 JNDI에 대한 설정내용을 반드시 /tomcat/conf/server.xml에 입력해주어야 합니다. /META-INF 폴더안에 context.xml 를 따로 생성하는 방식은 지원되지 않습니다. (Cafe24에서 tomcat 설정 파일 중 외부에 따로 생성할 수 있는 파일은 web.xml 파일 뿐입니다. 따로 생성한 web.xml 파일은 WEB-INF 폴더안에 넣어주면 됩니다.) 

server.xml의 수정은 SSH로 서버에 접속 후 vi 명령어를 이용해서 하면 됩니다. server.xml에서 수정할 내용은 아래와 같습니다. (새로 Context 태그를 추가하는 것이 아니라 기존의 Context 설정을 변경하는 것입니다. Cafe24에서는 기본적으로 Context 태그안의 JNDI 지정하는 부분에 주석처리가 되어있습니다. 따라서 주석 처리된 부분을 해제한 후 JDBC이름, DB이름, DB접속아이디, DB접속패스워드 부분을 변경해주시면 됩니다.) 

<Context path="" docBase="www"> 
   
<!-- Mysql JNDI --> 

   <Resource name="jdbc/JDBC이름(Cafe24에서는 기본적으로 아이디로 지정. 임의로 변경 가능)
     auth="Container" 
     type="javax.sql.DataSource" 
     driverClassName="com.mysql.jdbc.Driver" 
     url="jdbc:mysql://localhost/DB이름(Cafe24에서는 아이디가 DB명)
     username="DB접속 아이디
     password="DB접속 패스워드
     maxActive="20" 
     maxIdle="10" 
     maxWait="3000"
     validationQuery="select 1" /> 

</Context> 

 
 

이와 함께 WebContent/WEB-INF/web.xml에도 JNDI 관련한 사항을 입력해주어야 합니다. 추가해야 할 내용은 아래와 같습니다.

<resource-ref> 
   <res-ref-name>jdbc/JDBC이름(Context안에 지정한 이름과 동일해야 함)</res-ref-name> 
   <res-type>javax.sql.DataSource</res-type> 
   <res-auth>Container</res-auth> 
</resource-ref> 




※ 주의할 점은 SqlMapConfig.xml 파일의 JDBC이름도 동일하게 통일시켜주어야 한다는 것입니다.

<!-- JNDI 연결 설정 -->

<transactionmanager type="JDBC">

   <datasource type="JNDI">

       <property name="DataSource"
                     value="java:comp/env/jdbc/JDBC이름(Context안에 지정한 이름과 동일해야 함)">

       </property>
   </datasource>

</transactionmanager>

 
저작자 표시 비영리 변경 금지
신고
Posted by 플라스틱라디오
TAG cafe24, JNDI
서버에 SSH2로 접속 한 후 명령창에 아래의 명령어를 입력하면 톰캣 서버를 재시작 할 수 있습니다.

tomcat/bin/startup.sh



반대로 서버를 정지시키고 싶으면 아래와 같은 명령어를 입력합니다. 

tomcat/bin/shutdown.sh



서버의 정상 작동 상태는 catalina.out 파일을 통해 확인할 수 있습니다. 아래의 명령어 입력 후 실행 시 파일의 마지막 부분에 Server startup in 874 ms 와 같은 문구가 있다면 톰캣이 정상적으로 구동된 것입니다.

tail tomcat/logs/catalina.out 

저작자 표시
신고
Posted by 플라스틱라디오
Cafe24 서버에 다른 환경에서 컴파일된 class 파일을 바로 업로드 하면 제대로 작동이 안될 가능성이 높습니다. 따라서 java 파일을 업로드한 후 Cafe24 서버에서 컴파일 해주어야 합니다. Cafe24의 FAQ에 설명되어 있는 서블릿 컴파일을 위한 기본적인 명령어는 다음과 같습니다. (띄어쓰기에 주의해서 입력해야 합니다.)

javac -d . -classpath /home/hosting_users/Cafe24아이디/tomcat/lib/servlet-api.jar 컴파일할파일이름.java




하지만 이는 서블릿을 컴파일하기 위한 명령어이고 iBatis나 Struts 등을 사용할 경우에는 이를 컴파일하기 위한 라이브러리를 classpath에 추가해야 합니다. 보통 ';' 나 ':'를 뒤에 붙여주어 추가하는데 Cafe24의 경우 ':'를 붙여 추가합니다. Cafe24의 서버에 업로드시 Library 파일은 /WEB-INF/lib 폴더안에 위치하므로 이 경로안에 있는 jar 파일 중 컴파일을 위해 필요한 jar 파일을 classpath에 추가해 주도록 합니다. 

javac -d . -classpath /home/hosting_users/Cafe24아이디/tomcat/lib/servlet-api.jar:/home/hosting_users
/Cafe24아이디/www/WEB-INF/lib/라이브러리파일이름.jar
컴파일할파일이름.java   




또한 만일 컴파일할 클래스가 본인이 직접 작성한 다른 패키지에 있는 클래스를 참조하는 경우 이 클래스파일들 또한 classpath에 추가해 주어야 합니다. 직접 작성한 class 파일들은 모두 /WEB-INF/classes 폴더안에 위치하므로 아래와 같이 이 경로를 그대로 추가해 주면 됩니다.

javac -d . -classpath /home/hosting_users/Cafe24아이디/tomcat/lib/servlet-api.jar:/home/hosting_users
/Cafe24아이디/www/WEB-INF/lib/라이브러리파일이름.jar:/home/hosting_users/Cafe24아이디/www/WEB
-INF/classes/
컴파일할파일이름.java




컴파일 명령어 중 javac -d 다음에 오는 것은 파일을 어느 위치에 컴파일 할 것이지 지정하는 부분인데 위의 경우처럼 '.'으로 표시하는 것은 현재 디렉토리에 컴파일 하겠다는 것을 의미합니다. 컴파일된 class 파일은 패키지명에 해당하는 디렉토리들을 자동으로 생성하므로 Cafe24 서버의 경우에는 /WEB-INF/classes/ 로 지정하면 편리합니다. 

javac -d  ./www/WEB-INF/classes/ -classpath /home/hosting_users/Cafe24아이디/tomcat/lib/servlet-api.jar:/home/hosting_users/Cafe24아이디/www/WEB-INF/lib/라이브러리파일이름.jar:/home/hosting_us
ers/Cafe24아이디/www/WEB-INF/classes/ 컴파일할파일이름.java




참고 : 건우농장 - 펌] Java classpath (UNIX와 Mac OS X) 관리하기 (한글)
저작자 표시
신고
Posted by 플라스틱라디오


맨 위로

티스토리 툴바