본문 바로가기

BackEnd/Aws

우분투에 Maven으로 프로젝트 배포(이클립스 활용)

반응형

1. 톰캣 관리자 화면 활성화하기

 

1) tomcat9-admin 설치

 

     sudo apt-get install tomcat9-admin

 

2) cd /etc/tomcat9 로 이동

 

cd /etc/tomcat9

 

3) tomcat-users.xml 파일 열기 - 톰캣의 설정파일 수정

 

     sudo nano tomcat-users.xml

 

4) xml 맨 하단에 있는 </tomcat-users> 위에 아래 설정 내용을 입력한다.

 

 <role rolename="manager-script"/>

 

 <role rolename="manager-gui"/>

 

 <role rolename="manager-jmx"/>

 

 <role rolename="manager-status"/>

 

 <user username="관리자 계정명" password="비밀번호" roles="manager-gui,manager-script,manager-status,manager-jmx"/>

 

5) tomcat9 시작 

 

 sudo service tomcat9 start

 

6) http://우분투서버 IP주소:8080/manager/html 접속

 

 

 

7) 설정한 관리자 계정과 비밀번호를 입력한다.

 

2. 권한 풀어주기

 

먼저 아래 명령어로 폴더에 도달하기 전까지의 권한을 바꿔준다.

 

sudo chmod -R 777 ROOT

https://recipes4dev.tistory.com/175

 

3. 톰캣에서 undeploy 날려주기

 

 

 

4. 메이븐을 이용해 톰캣에 배포하기

 

1) 배포할 프로젝트의 pom.xml 파일을 연다. 

 

2) <plugins></plugins> 사이에 아래 내용을 입력한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!-- 메이븐을 통한 서버 배포 -->    
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.4</version>
        <configuration>
            <warsourcedirectory>src/main/webapp</warsourcedirectory>
            <webxml>src/main/webapp/WEB-INF/web.xml</webxml>
        </configuration>
    </plugin>
 
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>tomcat-maven-plugin</artifactId>
        <version>1.1</version>
        <configuration>
            <url>http://서버 IP주소:톰캣 포트번호/manager/text</url>
            <path>/프로젝트명</path>
            <username>관리자 계정</username>
            <password>비밀번호</password>
        </configuration>
    </plugin>
 
   <!-- 로컬에 있는 톰캣에 배포할 경우 서버 IP주소 대신 localhost 입력 -->
   <!-- 톰캣의 기본 포트번호는 8080 이다. -->
   <url>http://localhost:8080/manager/text</url>
  
 
출처: https://all-record.tistory.com/186 [세상의 모든 기록]
cs

 

3) 다음으로 이클립스에서 배포할 프로젝트를 선택하고 마우스 우클릭 한다. 그리고 [Run As] - [Run Configurations] 를 선택한다.

 

4) Run Configurations 창에서 왼쪽에 Maven Build를 클릭한다. 그리고 마우스 우클릭을 하여 New Configurations 를 선택한다.

 

5) 그리고 Workspace 버튼을 누른다.  여기서 배포할 프로젝트를 선택한다.

 

6) 다음으로 Name에 빌드명을 입력하고

 

7) Goals에 tomcat:deploy를 입력한다. 입력 후 Run을 누르면 배포가 시작된다.

 

tomcat:deploy -X 는 모든 로그가 다찍힘

 

8) 배포를 하면 http://서버 IP주소:8080/프로젝트이름  - 이렇게 접근을 하게된다.

 

9) 배포 결과를 확인해 보기위해 우분투 서버에서 명령어를 실행한다.

 

1
2
3
4
5
6
7
8
# webapps 폴더로 이동
 cd /var/lib/tomcat9/webapps
 
 # 폴더 및 파일 목록 확인
 ls
 
 
 
cs

 

10)  webapps 폴더 아래 배포한 프로젝트.war 파일과 프로젝트 폴더가 생긴 것을 확인할 수 있다

 

 

-----아래 부분 부터 띄어넘고 6 디렉토리 접근 설정 부터하자

 

11)  배포된것을 확인했으니 URL 설정을 해야한다. 

 

12) 그래야만 http://서버 IP주소:8080/ 로 접근할 경우 배포한 프로젝트 화면이 나오게 된다.

 

뒤에 프로젝트 이름을 빼고도 나오는것이다.

 

1
2
3
4
5
 # tomcat9 폴더로 이동
 cd /etc/tomcat9
 
 
 
cs

 

13) ls를 입력하여 목록을 보면 server.xml이 있다. 여기에 URL 설정을 추가할 것이다. 명령어를 실행하여 server.xml 파일을 연다.

 

1
2
3
4
5
# server.xml 파일 열기
 sudo nano server.xml
 
 
 
cs

 

14)  server.xml을 보면 <Host>...</Host> 태그가 있다. 이 사이에 아래 설정을 입력한다. 그리고 Ctrl+X  → Y 입력 → 엔터를 눌러 저장한

 

1
<Context docBase="프로젝트명" path="/" reloadable="true" />
cs
 docBase : appBase(webapps 폴더) 하위 경로
path : http://서버 IP:8080/ 뒤에 정의 되는 부분 ( ex: path=”/SpringBoard” 일때 URL은 http://서버 IP:8080/SpringBoard )
paht="/" 이렇게 설정하면 

 http://서버 IP:8080 으로도 접속되는것

 

이부분이 프로젝트명을 넣을 지 안넣을지를 결정한다!


reloadable : class 파일 수정 시 redeploy 여부
15) 즉 정리하면 위처럼 배포를 하게되면 2가지 프로젝트가 배포가된다

 

 /var/lib/tomcat9/webapps에 가보면

 

- ROOT와 dokky, dokky.jar 이렇게 배포가되어있고

 

ROOT안에도 프로젝트가 배포

dokky에도 프로젝트가 배포

 

총2가지가 배포되서 도는방법이다. 내 예상으로 이렇게되면 자원의 낭비가 있다. 그래서

 

아래방법을 추천한다.

 

6. 배포경로 ROOT로만 잡는 2번째 방법

 

- 위 처럼  context docbase를 전혀 입력하지않는다

 

- 아래처럼 ROOT 폴더를 삭제해준다

 

 

 

- 그리도 pom.xml에서 <path>/</path>로 잡은후 배포하면

http://도메인:/접속이된다

- 그런데 최초 한번은 http://도메인:/main으로 접속해줘야 정상적으로 돌아감

 

 

3. 디렉토리 접근 설정


apache <Directory>설정에서 기본적으로 막아 둔 폴더권한을 허용한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
sudo nano /etc/apache2/apache2.conf
 
 
 
<Directory /var/lib/tomcat9/webapps/>
 
        Options Indexes FollowSymLinks
 
        AllowOverride All
 
        Require all granted
 
</Directory>
cs

 

나는 webapps 밑에 프로젝트를 생성하기 때문에 위와 같이 설정을 허용해줬다.

 

5. 아파치 사용자에게 해당 프로젝트의 폴더 및 파일 권한 주기

 

아파치 프로세스를 실행하는 사용자에게 권한이 필요하다. 이 사용자는 일반 사용자랑 다르다.


나같은 경우 dokky라는 프로젝트 하위의 모든 폴더 및 파일에 권한을 755로 변경해주었다.
이렇게 해줘야 톰캣이 아닌 웹서버도 프로젝트 의 폴더 및 파일에 접근할수 있게 된다.
즉 other권한을 5로 설정해준것이다.
특히나 css파일접근을 위해 아래 명령 필요

 

1
2
root@ip-172-31-30-52:/var/lib/tomcat9/webapps# sudo chmod 755 -R dokky
cs

 

 

 

6. 명령어를  실행하여 톰캣을 재시작한다

 

1
2
3
# tomcat8 정지, 시작
 sudo service tomcat8 stop
 sudo service tomcat8 start
cs

참고사이트 :  https://all-record.tistory.com/186

       https://mytory.net/archives/3143

 https://jdm.kr/blog/93

 

 

 

반응형

'BackEnd > Aws' 카테고리의 다른 글

리눅스 명령어 모음  (0) 2019.10.23
aws s3 설정  (0) 2019.10.03
RDS 처음 생성 설정값들  (0) 2019.09.29
ec2 우분투에 아파치와 톰캣 연동  (0) 2019.09.29
ec2 우분투에 톰캣 설치  (0) 2019.09.29