원본 본문으로 이동하기

스프링 4 입문강의 : 6. 리눅스 서버에 배포

박용서 - 이전강의 - https://gs.saro.me/#!m=elec&jn=679 이전 장에서는 우분투 리눅스에 개발환경을 설정하는 방법을 진행하였습니다. 그럼 이번 시간에는 war 파일을 배포하는 것을 해보도록하겠습니다. 이 강의는 1 ~ 5강까지 모두 완료했다는 전제하에 진행하도록 하겠습니다. 1. MySQL 설정 이전 장에서 설치한 MySQL에 3 장에서 했던 것과 똑같이 데이터베이스, 테이블, 유저를 설정해주겠습니다. - 3장 참고 : https://gs.saro.me/#!m=elec&jn=676 먼저 우분투에 아래와 같이 타이핑합니다. > sudo mysql -u root -p mysql> CREATE SCHEMA `first`CHARACTER SET utf8 COLLATE utf8_general_ci; mysql> GRANT ALL PRIVILEGES ON first.* TO 'first'@'%' IDENTIFIED BY 'first'; mysql> flush privileges; mysql> CREATE TABLE `first`.`simple_comment` ( `comment_no` INT NOT NULL AUTO_INCREMENT, `text` TEXT NOT NULL, `datetime` DATETIME NOT NULL DEFAULT now(), PRIMARY KEY (`comment_no`)); mysql> quit - first 라는 스키마(데이터베이스)를 만들고 - first 라는 계정을 만들고 first 데이터베이스 권한을 줌 (이 계정의 암호도 first) - flush privileges 는 계정이나 설정값 처럼 즉시 적용되지 않는 것들을 적용하도록 하는 명령입니다. - 테이블을 만들어줍니다. 2. 톰켓 매니저 설정 > sudo vim /etc/tomcat8/tomcat-users.xml - tomcat8 버전 apt-get으로 설치한 경우의 경로임으로 버전에 따라 경로가 다를 수 있습니다. - 기본적으로 tomcat-users.xml에 보기권한이 없으니... 찾기 어렵다면 su를 쓰고 루트권한으로 찾아보시기 바랍니다. - <tomcat-users></tomcat-users> 사이에 다음 코드를 추가합니다. <role rolename="manager-gui"/> <role rolename="manager-script"/> <user username="tomcat" password="tomcat-test" roles="manager-gui,manager-script"/> 설명 - manager-gui 웹사이트에서 웹페이지를 통한 관리 옵션. - manager-script 텍스트기반의 곧 활용하게될 메이븐 배포를 위해 필요. 여기까지 완료되셨다면 톰켓을 재시작합니다. > sudo service tomcat8 restart - 위 과정이 끝났다면 데스크탑으로 아래 주소에 접속합니다. - http://아이피주소:8080/manager/html - 아이디 암호는 위에서 설정한 tomcat / tomcat-test 입니다. 3. 웹으로 배포 - 기억속에서 잊혀진.. STS(이클립스)를 오픈합니다. - 1강 참조 : https://gs.saro.me/#!m=elec&jn=674 - Package Explorer -> jstl -> 오른쪽 클릭 -> Export... - Web -> WAR file -> 적당한 곳에 jstl.war 로 저장합니다. - 접속 : http://아이피주소:8080/manager/html - WAR file to deploy 에 jstl.war 를 올리고 deploy !! - 접속 : http://아이피주소:8080/jstl/main 다음과 같은 문구가 나오면 성공한겁니다. 안녕 jstl !! 하지만 매번 이렇게 웹으로 배포하면 상당히 귀찮아집니다. 그래서 first 프로젝트는 메이븐 배포를 해보도록 하겠습니다. 4. maven 으로 배포 - STS 을 열고 first 프로젝트 선택 pom.xml 을 엽니다. - <build>의 <plugins></plugins> 사이에 다음과 같은 코드를 추가합니다. <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://아이피주소:8080/manager/text</url> <path>/first</path> <username>tomcat</username> <password>tomcat-test</password> </configuration> </plugin> - tomcat8을 사용하더라도 이글의 작성 시점으로 tomcat7 만 작동합니다. - STS 상단바 ▶(run) 의 ▼ 를 눌러 Run Configurations 클릭 - Maven Build -> 우클릭 -> New - Name : First Deploy (이름은 편한대로 지으시면됩니다...) - Base directory : ${workspace_loc:/first} (그대로 따라하셨다면 이경로일겁니다.) - Goals : tomcat7:redeploy (위 설명대로 톰켓 8이지만 명령어는 7밖에안됩니다.) - Run 을 누릅니다. - 접속 : http://아이피:8080/first/main 다음과 같은 문구가 나오면 성공한겁니다. 안녕 mustache !! ====================================================== 메이븐을 통한 배포시에 아래와 같은 오류가 날경우. No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? - 참조 : https://gs.saro.me/#!m=elec&jn=690 ====================================================== 5. 톰켓 기본 경로잡기 ====================================================== 이 부분의 내용이 부실하고 자세히 쓰기엔 강의 주제와 떨어지는 것 같아 별도의 강의로 작성했습니다. 자세한 원리가 알고싶다면 톰켓 버추얼 호스팅 + server.xml 설정 를 참고해주세요. 톰켓 버추얼 호스팅 + server.xml 설정 : https://gs.saro.me/#!m=elec&jn=768 ====================================================== 호스트 설정을 통해 http://아이피:8080/first/ 에서 http://아이피/ 형태로 바꾸도록 하겠습니다. - sudo vim /etc/tomcat8/server.xml - Connector 태그를 찾아 port 를 80으로 바꾸어줍니다. - Host 태그 아래 다음과 같이 Context 를 추가 합니다. <Host name="localhost" 생략> ... <Context docBase="first" path="/" reloadable="true"/> ... </Host> - 이대로 실행하면 작동하지 않습니다. - 데비안 계열은 기본적으로 시스템 포트(예약포트: 1023 이내 포트)가 막혀있습니다. - 그럼 아래와 같은 방법으로 포트를 열어보겠습니다. > sudo apt-get install authbind > sudo touch /etc/authbind/byport/80 > sudo chmod 500 /etc/authbind/byport/80 > sudo chown tomcat8 /etc/authbind/byport/80 > sudo vim /etc/default/tomcat8 - 스크롤을 내리다보면 #AUTHBIND=no 혹은 #AUTHBIND=yes 가 보입니다. AUTHBIND=yes - 위와같이 # 주석을 제거해줍니다. (no라면 당연히 yes로 고칩니다...) > sudo service tomcat8 restart - http://아이피/main 다음과 같은 문구가 나오면 성공한겁니다. 안녕 mustache !! 6. 실행 - http://아이피/SimpleComment/ 실행 - 아래와 같이 작동하면 DB까지 모두 성공입니다. [미디어]가리사니 1-128.png[/미디어] 3강에서 쓰인 이미지를 재활용한 것이니... 주소는 http://아이피/SimpleComment/ 로 가정합니다... 스프링 4 입문강의 0. STS 설치 - https://gs.saro.me/#!m=elec&jn=673 1. Spring Starter Project 를 이용한 JSTL 예제 - https://gs.saro.me/#!m=elec&jn=674 2. Spring Starter Project 를 이용한 Mustache 예제 - https://gs.saro.me/#!m=elec&jn=675 3. 데이터베이스 연동 ( MySQL / 하이버네이트 ) - https://gs.saro.me/#!m=elec&jn=676 4. 롬복 / Lombok !! - https://gs.saro.me/#!m=elec&jn=677 5. 우분투 리눅스 Java / Tomcat / MySQL 설치 - https://gs.saro.me/#!m=elec&jn=679 6. 리눅스 서버에 배포 - https://gs.saro.me/#!m=elec&jn=680 - MySQL 리눅스 Tomcat 이클립스 스프링