ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • spring 프로젝트 war 파일 카페24에서 배포
    포트폴리오 (웹 개발)/계좌관리 웹애플리케이션 2023. 8. 14. 00:58

    spring (springboot말고)프로젝트를 배포할 사이트를 찾던중 카페24를 발견하여 배포에 성공하였다.

    aws ec2같은 IAAS서비스를 이용하자니, 리눅스명령어가 미흡한데 직접 JAVA,TOMCAT,DB설치까지 진행하면서 할 자신이 없었고, 그보다 편리하다는 AWS ELASTIC BEANSTALK 같은 PAAS를 사용하려고 처음에 시도하기도 하였다. 많이 알게된점도 있으나, 그러나 결국 배포는 실패하였다. 배포가 이렇게 오래걸리는 것인지 몰랐다..해서 나중에 AWS는 좀 더 공부해보기로 생각하고 ,우선은 다른 호스팅 업체를 찾게 되었다.

     

    ****준비물: 카페24, 파일질라, hputty

     

     

    1. 카페24 에서 tomcat jsp 호스팅 서비스로 구매하였다.

    나는 현재 로컬환경에서, 이클립스를 사용하여 model-view-controller, controller-service-dao 구성을 갖는 spring framework 프로젝트를 구현중이었다. 서버는 tomcat 8.5, db로는 mysql8.0을 사용중이다. 그래서 3번째 tomcat,maridb가 사용가능한 서버환경으로 선택해주었다.(mariadb이긴 하지만, mysql이랑 호환이 좋다하니, 우선 진행해보자.)

    2. mariadb사용에 따른 몇 가지 수정

    2-1) DBConfig.java

    	//private String driverClassName="com.mysql.jdbc.Driver";  //로컬
    	//private String url="jdbc:mysql://localhost:3306/mywebdb?useUnicode=true&characterEncoding=utf8&useSSL=false";   //로컬
    	//private String userName="mywebuser";  //로컬
    	//private String password="myweb123#";  //로컬
    	
    	private String driverClassName="org.mariadb.jdbc.Driver";  //카페24
    	private String url="jdbc:mariadb://xxx.cafe24.com:3306/twinhks1?useUnicode=true&characterEncoding=utf8&useSSL=false";  //카페24
    	private String userName="twinhks1";     //카페24	
    	private String password="xxx";   //카페24

    "jdbc:mariadb://카페24에서발급받은주소:3306/데이터베이스명?useUnicode=true&characterEncoding=utf8&useSSL=false" 으로 적어주면 된다.

    팁으로, 데이터베이스명 같은 경우는 카페24에서 아이디와 동일한 database하나를 자동으로 만들어 준다고 한다. 그 database를 사용하겠다.

    (원래는 'mywebdb'라는 database만드려고 putty에서

    'create database mywebdb' 를 시도했는데 계속 ERROR 1044 (42000): Access denied for user 'twinhks1'@'localhost' to database 'mywebdb' 이런 에러를 겪고 있었다. 그러던중 우연히 아이디와 동일명의 데이터베이스가 있을거라하여, 'use twinhks1'로 확인해보니 정말 있다...다행이다 이것을 사용하기로 한다.)

     

    2-2) pom.xml

    "com.mysql.jdbc.Driver" 를 로드해주어야 하니 maven dependency 에도 추가해준다. 기존에 사용하던 mysql depency는 삭제하지 않고 그대로 두었다. 로컬 mysql로 접속할때는 필요하니 삭제하지 않는다.

    <!--mysql-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.45</version>
    </dependency>      
    <!--mariadb-->
    <dependency>
        <groupId>org.mariadb.jdbc</groupId>
        <artifactId>mariadb-java-client</artifactId>
        <version>2.6.2</version>
    </dependency>

    3. 이클립스에서 export하여 war 생성한다. 이름은 ROOT.WAR 로 해준다.

    4. 파일질라에 호스트명, 사용자아이디, 비밀번호, 포트를 입력하여 접속한다. 

    /tomcat/webapps 위치에 ROOT.WAR를 복사해준다.

    5. 서버에 파일을 올렸다면 tomcat 재기동 해주기. putty를 통해 shell명령어로 중지,시작 하는 경우도 있는듯한데,

    나는 간편하게 카페24>호스팅관리>톰캣 재시작 기능을 이용하여 재기동 해주었다.

    [재시작]버튼 클릭

    6. db 외부ip 접근설정

    [설정하기]버튼을 클릭하여 허용할 외부 ip를 추가해준다.

    어떤 외부ip를 추가해줘야 할까 생각해보자. 우리는 카페24에서 소스파일이 존재하는 서버, db서버 2개를 제공받는 것이다. 우리가 제공 받은 mariadb서버 입장에서는 이번에 카페24에서 제공 받은 도메인 또한 외부 서버인 것이다. 소스파일이 존재하는 서버를 통해 db서버로 접속요청이 이루어질테니,,, '도메인서버 아이피--->db' 이런 그림이다. 그러므로 카페24에서 제공받은 서버 아이피를 등록해 주면 된다.

     

    7. 간혹 접속했는데 계속 403 forbidden 에러가 뜨는경우가 있는데, 이경우 url이 'https'로 시작하고 있다면 ssl인증서 등록하여 해결한다. 아니면 그냥 우선은 'http'로 접속해도 접속이 된다.

     

    8. 추후 db 작업 

    mysql workbench 같은 client 에서 호스트명: xxx.cafe24.com, 포트:3306, 아이디, 비번 을 입력하고 카페24서버에 존재하는 mariadb에 접속하하여 작업하는 방법이 있고, 

    putty에서 원격서버에 접속하여 그 원격 서버내에서 로컬로서 작업하는 방법이있다.

    putty.exe

     

Designed by Tistory.