간단한 외주를 받았는데 "카페24"를 이용해서 호스팅을 하고싶다는 요구사항이 있었다.
카페24는 한번도 안써봐서,,,, 이틀동안 삽질을 했는요,,,
호스팅에 성공하기까지 삽질의 전 과정을 담아보았습니다,,
프로젝트를 중간에 이어받은거라 호스팅 서비스는 내가 고르지 않았다.
"Tomcat JSP호스팅 일반형"을 사용중이고, 서버환경은 아래와 같다.
Tomcat 8.0.x / JSP 2.3 / Servlet 3.1 / Open JDK 1.8.x / MariaDB 10.1.x UTF-8
Open JDK 1.8.x / Spring Boot 2.4.2 / Intellij / Gradle
start.spring.io에서 아래와 같이 설정했다.
11말고 8을 누르셔야합니다 ,,,
start.spring.io에서 위와 같이 설정한뒤 generate!
맨 처음 프로젝트를 시작했을때의 진입 페이지인 index페이지와 "/home"으로 매핑되는 home페이지만 올려서 호스팅이 되는지 테스트를 해보자 .
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("/home")
public String home(){
return "home";
}
}
html 페이지들은 아래와 같이 src/resources/templates아래 위치시켜준다.
로컬에서 문제없이 작동됨을 확인했으니까 이제 war로 추출해서 구매한 카페24 서버에 올려보자.
jar가 아닌 war로 추출하려면, start.spring.io에서 위와 같이 war에 체크를 해줘야 한다.
그럼 이제 build.gradle의 plugin에 war가 생김
file > Project Structure에서 Artifacts를 클릭
여기서 Web Application : Archive를 클릭해주는데,
archive는 .war로 압축한 결과를
exploded는 압축 해제된 결과를 저장한다고 한다.
여기서 output directory의 이름이나 war파일의 이름은 원하는데로 수정하고, apply -> OK!
위와 같이 저장해주었으면 이제
Build > Build Artifacts 클릭 !
아까 설정한 Artifacts를 클릭하고 build한다.
그럼 out 폴더에 위와 같이 war 파일이 추출됐음을 알 수 있다.
저는 File zila를 사용했는데, 아무거나 사용해도 상관없을듯
이렇게 연결에 성공하면,
/tomcat/webapps 아래에 빌드한 war 파일을 업로드한다.
terminal에서 서버에 접속한다. Host와 비밀번호는 ftp접속했을때와 같음
/tomcat/bin의
startup.sh를 실행시키면 서버가 올라간다.
./startup.sh
서버를 내리고 싶으면
./shutdown.sh
서버를 올리고 도메인에 접속하면
성공~~!
암튼 이렇게 간단하고 가성비 좋게 호스팅 완료완료
안녕하세요. 쓰신글 잘 보았습니다.
제가 ROOT.war 파일로 톰캣의 webapps 하위에 업로드하고 HelloController를 호출했습니다.
하지만 404 오류가 발생합니다.
HelloController의 패키지 경로는 아래와 같습니다.
/tomcat/webapps/ROOT/WEB-INF/classes/com/example/demo/HelloController.class
호출 URL : http://XXXXXX.cafe24.com/hello
HelloController의 매핑값을 @GetMapping("/hello") 입니다.
어느부분이 문제일지 알수 있을까요?
/tomcat/webapps/ROOT/WEB-INF/classes/com/example/demo > 컨텍스트 루트 및 패키지 경로가
맞는지도 의문입니다. 잘되시는분의 경로와 비교해서 맞는지 문의드립니다.
감사합니다.