• JSP를 이용한 웹프로그램을 개발중이라면 일반 웹호스팅이 아닌 jsp호스팅을 이용해야한다.
  • 따로 도메인을 구매하지 않으면, cafe24 사이트에 가입할 때 사용한 아이디가 웹페이지 주소가 된다.
    예를 들면 아이디를 abc123으로 만들었으면 abc123.cafe24.com 이런식으로.

 

 

cafe24에 가입한 후,

호스팅센터로 들어가보면 수많은 호스팅 종류가 있다.

그중에 Tomcat JSP호스팅을 선택한다.

cafe24 호스팅 선택 화면
cafe24에서 제공하는 Tomcat JSP호스팅 종류

실제로 사람들이 많이 찾아오는 웹사이트를 운영하는 것이 아니라 포트폴리오용으로 가지고 있을 사이트이기때문에 절약형으로 선택했다.

DB는 MariaDB가 기본인것 같지만 MySQL도 지원한다.

Tomcat 8.0.x 로 되어있었으나 실제 Tomcat 9.0.x을 사용한 프로젝트도 잘 구동됐다.

호스팅 신청을 하고 결제까지 하고나면 따로 기다릴 필요 없이 바로 세팅이 된다.

 

로컬에만 담겨있던 내 프로젝트가 로컬을 탈출하기 위해서 필요한 프로그램이 세개 있다.

그리고 배포할 프로젝트의 WAR파일도 필요하다.

 

[이클립스 기준]

프로젝트명 우클릭 - Export - WAR file

Destination : war파일을 저장할 위치를 선택한다.

보통 도메인주소만 입력 후 엔터를 쳤을 때

바로 웹페이지가 나오게 하려면(abc123.cafe24.com) 파일명을 ROOT.war로 저장하면 되고,

웹페이지주소/프로젝트명(abc123.cafe24.com/bakingdom) 이런식으로 여러가지 프로젝트를 배포하려면 프로젝트명.war로 저장하면 된다.

나는 한 두가지 프로젝트를 나누어 담고 싶었으므로 bakingdom.war로 저장했다.

 

 

FileZilla

[파일] - [사이트 관리자]

[New site]

- 프로토콜 : SFTP

- 호스트 : 아이디.cafe24.com

- 포트 : 22

- 로그온 유형 : 일반 (또는 보통)

- 사용자 : 아이디

- 비밀번호 : FTP비밀번호 (cafe24 회원 비밀번호가 아닌, 호스팅 신청시 새로 설정한 FTP 비밀번호이다.)

[연결]

 

로컬사이트(내 PC)에서 아까 저장한 war 파일을 찾아

리모트사이트(cafe24)의 tomcat/webapps 폴더안으로 로 넘겨준다. 

이걸 쓰고 있는 시점에서는 이미 설정을 모두 완료했기때문에 bakingdom.war 그리고 bakingdom이라는 폴더가 리모트사이트쪽에 이미 생성되어 있는데, 처음엔 이런게 없고 기본적으로 manager, host-manager, ROOT 폴더만 달랑 있을 것이다. 아무튼 war파일을 옮겨주고 나도 별로 달라지는 일은 없다. 

※ 참고 : cafe24에서 안내하는 FTP사용 방법

 

 

PuTTY

일단 그 다음은 PuTTY로 서버를 실행시킨다.

PuTTY를 실행시키면 처음 나오는 창에서 설정해줄 내용은

Host Name (아이디.cafe24.com)

Port (22)

이 두개뿐이다.

설정을 하고나면 login as: 라는 문구와 함께 까만 창이 뜨는데,

cafe24 아이디를 입력해주고 enter

그리고 password를 입력해준다. 역시 cafe24회원 비밀번호가 아닌 FTP에서 사용했던 비밀번호를 입력한다. 입력을 할때 ***같은 입력표시가 나지 않고 아무것도 써지지 않는데, 어쨌든 그냥 키보드로 다 입력하고 엔터를 누르면 알아서 서버가 가동된다.

./tomcat/bin/startup.sh 를 입력하면 톰캣이 실행된다.


 

톰캣을 실행시키고 나서

다시 FileZilla로 돌아와 새로고침을 눌러보면,

아까 단순히 war파일이 전송되어 있기만 했던 리모트 폴더에

bakingdom 이라는 폴더가 생성되고

자동으로 그 안에 war파일 안에 있던 내용들이 담겨져있다.

만약 ROOT.war로 저장했었다면 따로 폴더가 더 생기진 않고

기존에 있던 ROOT폴더 안에 war의 내용들이 들어가 있을 것이다.

 

 

이렇게 war파일이 적용된 것을 확인하고 

도메인주소로 접속해보면! (배포파일명을 ROOT.war로 설정한 경우엔 아이디.cafe24.com 만 입력하여 접속한다.)

잘 접속이 된다. 

 

 

그런데 DB와 연결되어 있는 게시판을 들어가면 에러가 발생한다.

root-context.xml에서 설정해준 jdbc url이 아직도 로컬로 적용되어 있기때문이다. 

	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
	    <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
	    <property name="url" value="jdbc:mysql://아이디.cafe24.com:3306/아이디?useSSL=false&amp;allowPublicKeyRetrieval=true&amp;serverTimezone=Asia/Seoul" />
	    <property name="username" value="아이디"/>
	    <property name="password" value="비밀번호"/>
  	</bean>

url의 value부분을 위와 같이 작성하고, 아이디와 비밀번호도 올바르게 써준다.

바뀐 내용을 저장하고 root-context.xml파일을 FTP를 통해 리모트사이트로 넘겨 덮어쓰기 해준다.

 

그리고 워크벤치로 로컬에서 관리하던 sql파일들을 HeidiSQL프로그램으로 옮겨준다.

 

HeidiSQL

 

HeidiSQL에서 세션관리자 창을 열고

세션이 아무것도 없으면 신규 버튼을 눌러 새로운 세션을 만들어준다.

 

네트워크 유형 : MariaDB or MySQL (TCP/IP)

호스트명 / IP : 아이디.cafe24.com

사용자 : 아이디

암호 : 비밀번호

포트 : 3306

 

기존에 워크벤치에서 사용하던 sql파일들을 export해두었기때문에, 

SQL 파일 실행... 메뉴를 통해 한꺼번에 테이블을 설정해주었다.

 

기존 sql파일을 정상적으로 불러온 모습

 

 

 

※ MySQL 8.0의 sql파일을 불러올 때 Unknown collation: 'utf8mb4_0900_ai_ci' 에러 해결 방법

에러가나는 SQL파일을 불러오기 한 후, 해당 쿼리문 중에 COLLATE=utf8mb4_0900_ai_ci 부분을

utf8mb4_general_ci 로 변경해주고 저장한 후 쿼리를 실행하면 테이블이 정상적으로 생성된다.

 

 

※ Host '아이피주소' is not allowed to connect to this MariaDB server 에러발생시

아래 MySQL 외부 IP 접근 설정 방법을 통해 에러가 나는 아이피주소를 카페24호스팅센터에서 추가로 등록해준다.

이 아이피는 네이버에서 '내 IP'를 검색하면 나오는 IP! 내 로컬PC의 IP이다!

설정하기 버튼을 통해 IP등록을 마친 후의 모습

 

 

 

 

카페24 호스팅센터의 나의서비스관리 페이지를 가보면,

메뉴 중 [호스팅관리] - [기본관리] - [서비스 사용현황] 페이지에서

 

상단의 서버아이피를 확인한 후,

하단의 MySQL 외부 IP 접근설정 부분에서 설정하기 버튼을 눌러 서버아이피를 등록해준다.

 

 

 

 

 

 

 

이제 바뀐 설정들이 많으니 톰캣 서버를 종료했다가 다시 재실행을 하면 된다.

PuTTY프로그램을 다시 열어 놓고

./tomcat/bin/shutdown.sh 를 입력하면 톰캣 서버가 종료된다.

톰캣 서버를 종료했다가 다시 재시작한 모습이다.

 

 

 

DB를 이용한 페이지도 에러없이 잘 구동되는 모습.

 

 

 

 

 

 

 

처음 해보는 웹사이트 배포여서 상당히 애먹었다. 5시간 정도를 삽질 ㅠㅠ 한 느낌이지만 어쨌든 해냈으니까 기록으로 남겨둔다!!!

'SPRING' 카테고리의 다른 글

요청(HttpServletRequest)과 응답(HttpServletResponse)  (0) 2021.07.22