

도메인 구매 사이트에서 도메인 구매 후 프로젝트 생성
디펜던시는 기본 6개 잡고 세팅후 추가하는것이 정석
넥스트 삐니시 > 깔릴때까지 존버
언어셋 UTF-8로 세팅 후

스프링 프로퍼티스에 추가해두기


자바 컴파일러 서버와 동일하게 세팅
jre도 설정

XML 위에꺼 꼭 체크하기 안하면 xml깨짐


비어있는 src/main 에 webapp 폴더 생성
webapp 폴더 안에 META-INF, WEB-INF 폴더 생성
프로젝트 프로퍼티스
다이나믹 웹 모듈 5.0으로 바꾸기 안바꾸면 자카르타 사용 못함

application.properties 세팅
spring.application.name=kr.it.ecms
#Server
#포트설정은 배포시 주석처리후 배포
server.port=9000
server.servlet.encoding.charset=utf-8
server.servlet.encoding.force-response=true
server.servlet.encoding.enabled=true
spring.devtools.restart.enabled=true
server.servlet.jsp.init-parameters.development=true
#File
spring.servlet.multipart.enabled=true
spring.servlet.multipart.max-file-size=50MB
spring.servlet.multipart.max-request-size=100MB
#원래 /로 다풀어놓지는않음 view넣을 파일 ex /WEB-INF/ 해두면 여기서만 jsp작동
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
build.gradle
라이브러리 추가 - MavenRepository, SpringStarter
버전빼도되고 안빼도됨
https://mvnrepository.com/artifact/jakarta.servlet.jsp.jstl/jakarta.servlet.jsp.jstl-api/3.0.2

https://mvnrepository.com/artifact/org.glassfish.web/jakarta.servlet.jsp.jstl/3.0.1

https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.1

https://mvnrepository.com/artifact/org.apache.tomcat.embed/tomcat-embed-jasper/10.1.40

https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload/1.5

https://mvnrepository.com/artifact/commons-net/commons-net/3.11.1

https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp/4.12.0

https://mvnrepository.com/artifact/xalan/serializer/2.7.3

plugins {
id 'java'
id 'war'
id 'org.springframework.boot' version '3.4.5'
id 'io.spring.dependency-management' version '1.1.7'
}
group = 'kr.it.ecms'
version = '0.0.1-SNAPSHOT'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-web-services'
implementation 'org.springframework.boot:spring-boot-starter-webflux'
implementation 'org.springframework.session:spring-session-core'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.projectlombok:lombok'
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'io.projectreactor:reactor-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
// jstl
implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.2'
implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl:3.0.1'
//Httpservlet request, response 쓰고 싶을 떄 javax //요즘은 이거 안쓰고 자카르타 쓰기는함
compileOnly 'javax.servlet:javax.servlet-api:4.0.1'
//Dashboard에서 JSP, JSTL 사용하고 싶을 때 (대시보드돌리고 탐캣 버전확인 후 버전 맞춰서 사용해야함!)
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper:10.1.40'
//fileupload
implementation 'commons-fileupload:commons-fileupload:1.5'
//ftp 외부에 업로드시 필요
implementation 'commons-net:commons-net:3.11.1'
//okhttp 웹소켓 소켓통신시 필요
implementation 'com.squareup.okhttp3:okhttp:4.12.0'
//xalan : xml 도큐멘트 핸들링 (xml로 문서변환)
implementation 'xalan:serializer:2.7.3'
}
tasks.named('test') {
useJUnitPlatform()
}
프로젝트우클릭>그레이들>리프레시
반영하기
프로젝트우클릭>프로퍼티스>facet>다이나믹웹모듈 5.0
webapp에 jsp 만들어서 테스트
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="cr" uri="http://java.sun.com/jsp/jstl/core" %>
<%String user="구나영"; %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<%=user%>
<cr:set var="aa" value="테스트"></cr:set>
${aa }
</body>
</html>
웹브라우저로 접속시 다운안받아지고 잘 보이면 세팅 성공
확인 후 삭제
[타임리프 세팅]
스프링 스타터 > 타임리프 추가

implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
직접 복사붙여넣기
properties 세팅
#Thymeleaf
spring.thymeleaf.cache=false
spring.thymeleaf.check-template=true
spring.thymeleaf.enabled=true
spring.thymeleaf.prefix=classpath:/static/test
spring.thymeleaf.suffix=.jsp
spring.thymeleaf.mode=html
spring.thymeleaf.view-names=/*
resource/static에 test.html 만들어서 테스트하기
[서버2]
루트사용자
systemctl stop firewalld
systemctl start docker
docker start centos9
systemctl stop mysqld
systemctl stop httpd
실서버 그대로 두고
클라우드서버 접속
cms사용자
su
루트로 접속
netstat -an
yum search mariadb
cd /etc/yum.repos.d
yum install mariadb-server
자동으로 10.5.27 버전으로 깔림 (대략 5년전 개오래됨)
mariadb -V
깔면서 확인했지만 버전확인가능
서버말고 클라이언트도 깔아야함
yum install mariadb-client
없음 없으면 걍 넘어가
rpm -qa | grep mariadb

systemctl start mariadb
mysql -u root -p
비번 그냥 엔터
여기서 잠깐!
mysql은 패스워드가 임시 발급됨
vi /var/log/mysql/mysql.log
mariadb는 최초설치시 루트 패스워드 없음 => 엔터로 바로 접속 => 비번 설정 꼭하기 (안하면 디도스 뚜드러맞음)
패스워드 정책 mysql_native_password 확인
리눅스 사용자가 루트일경우 마리아디비 접근시 패스워드 없이 가능
일반사용자로 리눅스 로그인시 루트로 접속할 경우 패스워드를 무조건 입력해야만 루트로 디비 접근 가능
mariadb 비밀번호 설정
use mysql
[청기백기]
status로 언어셋 확인 기본 라틴이랑 utf8임 이거 아님
utf8mb4로 다 설정해야함
마리아 디비
set password for 'root'@'localhost'=password('a123456');
flush privileges;
exit
mysqladmin -u root -p reload
그냥엔터
mysql -u root -p
a123456
도 로그인되는데 그냥 엔터도 로그인이 돼버림 => 사고났다
systemctl stop mariadb
systemctl start mariadb
그래도 똑같음
제대로 비번바꾸기
- 지피티방법
use mysql
alter user 'root'@'localhost' identified by 'a123456';
- 쌤방법
select host,user,password,plugin from user;
플러그인확인
mysqladmin -u root password
위의 방법과 다르게 서버의 루트와 비번 동기화해서 바꾸는방법임
서버에 루트로접속시 바로 접속가능, 일반사용자로 로그인해서 디비 연결시 못들어감
mysqladmin -u root -p reload
일반사용자로 접속시 루트의 패스워드를 입력해야 접속 가능
단점 : 리눅스의 루트 뺏기면 디비도 뺏김
디비, 사용자 추가
create database webcms;
create user 'cms'@'localhost' identified by 'cms1234';
create user 'cms'@'%' identified by 'cms1234';
select user,host from user where user='cms';
사용자 검색
delete from user where user='cms' and host='%';
배포시 %삭제
desc db;
컬럼개수 확인 23개
insert into db values ('localhost','webcms','cms','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y');
insert into db values ('%','webcms','cms','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y');
exit
mysqladmin -u root -p reload
mysql -u cms -p
cms1234
접속해서
show databases;
설정한 디비 잘 보이면 성공
exit
클라우드서버의 루트
netstat -an | grep "3306"
[DB 세팅]
스프링스타터

다른거 복사해두고 직접 붙여넣기
implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.4'
runtimeOnly 'com.mysql:mysql-connector-j'
testImplementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter-test:3.0.4'
붙여넣은후 그레이들 리프레시
facet 다이나믹웹모듈 5.0으로 변경
[서버 디비 언어셋 변경]
서버2의 클라우드 마리아디비 루트로 접속
vi /etc/my.cnf

추가하기
systemctl stop mariadb
systemctl start mariadb

디비에서 status로 확인시 언어셋 잘 바뀜
create table testmember(
mid varchar(30) not null
)default character set utf8mb4;
select * from testmember;
STS에서 데이터 insert로 넣었을때 에러안나고 잘 들어가면 성공
키포인트 : 서버 데이터베이스의 언어셋!
코드 맞는데 왜 에러날까? 언어셋때문에~
mysql, mariadb에서 언어셋은 status로 확인