공부/리눅스
리눅스 환경 기반 JSP 웹 서버 구축 2
Codey
2024. 6. 13. 14:49
https://minuk2.tistory.com/184
리눅스 환경 기반 JSP 웹서버 구축
필요 테스트 파일1. 아파치 설치리눅스 운영체제에서는 패키지와 패키지 매니저를 지원합니다.리눅스 패키지 : 여러 파일을 모아 하나의 파일로 저장하고 있는 압축 파일입니다.sudo suapt update--
minuk2.tistory.com
지난 글에서 이어집니다.
교수님 과제 : 리눅스에 구축하여 오류를 수정하라.
모델 2 아키텍처 (MVC 패턴)
- Model(모델) : 비즈니스 로직 및 데이터 접근 담당
- View(뷰) : 사용자 인터페이스 담당, JSP로 구현
- Controller(컨트롤러) : 클라이언트 요청을 처리, 모델과 뷰 사이를 연결, 서블릿으로 구현
1. PC에서 우분투 서버로 zip 파일 이동
-- cmd --
scp ubuntu.zip ubuntu@192.168.178.133:/home/ubuntu
-- ubuntu --
unzip model2_jsp.zip
cd [옮길 파일 경로]
2. 파일 압축 풀기
unzip ubuntu.zip
3. 파일 복사하여 이동
- META-INF
- src
cp -r /home/ubuntu/META-INF/* /var/lib/tomcat9/webapps/ROOT
cp -r /home/ubuntu/src/* /var/lib/tomcat9/webapps/ROOT
4. MySQL에서 테이블 생성
mysql -u root
use micom;
source /home/ubuntu/sql/board.sql;
5. ssh로 접속
ssh ubuntu@192.168.178.133
sudo chmod -R 777 /var/lib/tomcat9/webapps/ROOT/WEB-INF/classes
-- classes 디렉토리에 전체 권한을 부여합니다.
javac -encoding ISO-8859-1 -classpath /usr/share/tomcat9/lib/servlet-api.jar:/var/lib/tomcat9/webapps/ROOT/WEB-INF/classes -d /var/lib/tomcat9/webapps/ROOT/WEB-INF/classes /var/lib/tomcat9/webapps/ROOT/WEB-INF/src/*.java
-- 소스 코드의 인코딩이 ISO-8859-1이기 때문에, 이를 명시하여 컴파일
-- 컴파일은 Java 소스 코드를 바이트코드로 변환하여 JVM에서 실행 가능하게 함
6. mysql 테이블 이름 변경
mysql -u root
use micom;
rename table BOARD to board;
* 오류 : 리눅스 운영체제에서 MySQL은 테이블 이름을 대소문자를 구분하여 테이블명을 변경
7. 경로 변경
cd /var/lib/tomcat9/webapps/ROOT/WEB-INF/src/action
vi BoardWriteProAction.java
String saveFolder="var/lib/tomcat9/webapps/ROOT/boardUpload"
* 오류 : 파일 업로드가 되지 않는 오류
-- 20줄에 코드 수정
-- 파일 업로드 디렉토리를 지정하는 코드
-- 경로가 "/boardUpload"로 절대 경로로 설정되어 있음
-- 절대 경로를 사용하면 애플리케이션이 다른 위치에서 실행될 때에도 파일 경로를 정확하게 참조할 수 있습니다.
-- 파일 업로드와 관련된 보안 및 접근 권한을 일관되게 관리할 수 있음
8. 권한 부여
chmod -R 777 /var/lib/tomcat9/webapps/ROOT/boardUpload
-- boardUpload 디렉토리와 그 안의 모든 파일 및 하위 디렉토리에 대해 읽기, 쓰기, 실행 권한을 부여
9. 파일 다운로드시 오류 해결
cd /var/lib/tomcat9/webapps/ROOT/board
vi file_down.jsp
String sFilePath = sDownloadPath + "\\" + fileName;를
String sFilePath = sDownloadPath + "/" + fileName;로 변경
- '\\'는 Windows에서 사용하는 경로 구분자
- '/' 유닉스 계열(Linux, macOS 등)에서 사용하는 경로 구분자
- 현재는 리눅스에서 사용하기 때문에 '/'를 쓰면 됨