[서버] WEB (Apache), DB (MariaDB) 세팅

2025. 4. 24. 10:17·서버

WEB - 리눅스 => Apache(1.3x, 2.x), Nginx(1.x)

WAS => Tomcat => Spring(8.x), Spring-boot(10.x)

 

도커를 안쓰게 되면

Centos7 => JDK17, FTP, SSH, Apache(80), Tomcat(8080), Mysql(3306)

Centos7-1 => JDK11, FTP, SSH, Nginx, Tomcat, Oracle(1521), MariaDB(3306)

Postgresql, MongoDB, JDK11를 쓴다면 7-1에 추가 

Centos7-2 => JDK21, Nfinx, Tomcat 11.x, Postgresql, Redis, MariaDB

이렇게 서버를 계속 새로 만들어야함 

 

도커 안깔고 딱 하나만 있는 서버 => 로컬서버 

이런 형태를 사용하는게 카페24 

 

각각의 포트를 알고있어야 도커를 할때 편함 

 


아파치의 데몬 이름  httpd

엔지닉스의 데몬이름 nginxd

 

[WEB - 아파치 설치]

yum search httpd

yum install httpd

2.4.6-99버전이 깔린다고 나옴 => y

 

systemctl start httpd.service

아파치 키고 

netstat -an

또는

netstat -an | grep "80"

쳐서 80번 포트가 돌아가고있는지 확인

 

오라클버츄얼머신 > 도구 > 네트워크 > NAT네트워크 > 포트토워딩에 http 추가  포트 80 

이렇게 하고 웹브라우저 켜서 

주소창에 아이피를 넣었을때 Testing123.. 뜨면 성공

systemctl stop httpd

연결 끊김 

다시 켜려면 

systemctl start httpd.service

 

아파치 환경설정

설정할거니까 일단 스탑 

systemctl stop httpd

환경설정 파일 들어가기

vi m/etc/httpd/conf/httpd.conf

:set nu

:40 => 포트번호확인

:66 => 이름이 아파치로 잡혀있어서 아파치라고함

:119 => 해당 경로에 html파일들을 넣어야함 "웹디렉토리" 무조건 저기에 넣어야 함

/var/www/html 이라고 돼있는데 var파일은 root만 접근 가능하다 그래서 일반사용자는 접근 불가능

그래서 수정이 필요함

#으로 119라인 주석처리하기 

119번 라인을 120번에 복사 

:119 co 120

복사한 줄 주석 풀고 경로 수정하기 "/home/cms(일반사용자명)/html"

 

119줄 수정시 아래 애들도 수정해야함 안하면 서버 시작안함 

:124

주석 처리 후 

:124 co 125

복사하고 주석 풀고 

경로 수정 "/var/www/" => "/home/cms"

:132

똑같이 수정 "/home/cms/html"

 

cms하위에 html폴더 만들기

html폴더에 html파일 넣고

실행시켜보면 권한때문에 실행이 안됨

cms의 html폴더는 755로 잘 설정되어있는데

cms 사용자의 폴더의 권한이 700으로 되어있어서 권한 오류남

chmod 705 cms

를 이용해서 일반사용자 홈디렉토리의 권한을 설정하고 다시 실행해보면 잘 된다!

 

index.html => 대문

다른 html작동시키려면 파일명 입력

 

1. web daemon => httpd => yum install httpd

2. /etc/httpd/conf/httpd.conf => apache 환경설정 

3. DocumentRoot "var/www/html" => /home/사용자명/html 로 변경 

4. <Directory "var/www"> => /home/사용자명 으로 변경 

5. <Directory "var/www/html"> => /home/사용자명/html 으로 변경 

6. 사용자 디렉토리로 이동 웹 디렉토리를 생성 

7. /home/사용자 퍼미션 700 => 705 변경 필수

8. systemctl start httpd 또는 ststemctl start httpd.service

 

다른블로그 암만따라해봐라 잘되나 ㅋㅋ


[DB - MariaDB 설치]

yum install mysqld

읎다

mariadb 홈페이지 가기

다운로드에

11.4.5버전 버전뒤에 아무것도 안붙는게 좋음 

os 리눅스

미러 오사카 

=> tar.gz로 다운됨 ㅇㅣ거슨 설정 매우 힘들다 개고수라면 이것으로 다운하기 

 

초보는 yum으로 다운해야함 

조금위에있는 탭 

마리아 디비 서버 레포지토리 선택해

센트오에스

버전 11.4

미러 오사카 

해서 아래쪽 카피 클릭

 

루트로 서버 접속 

cd /etc/yum.repos.d

vi mariadb.repo

쉬프트인서트로 붙여넣기 맨앞 안잘렸나 잘 확인

yum install mariadb

 

netstat -an | grep "3306"

rpm -qa MariaDB

 

서버가 업슴

마리아디비서버 설치

yum install MariaDB-* --skip-broken

그래도 없다 뭔가 잘못됨

서버 따로 다운해야하는데 없음

깔려있는 클라이언트 버전은 11.4.3 다운할 서버버전도 똑같이 해야하는데 서버 없음

다운한 오사카서버에 서버파일이 없었던거임 보안때문이라던가 뭔가 문제가 있었던것..

젠장 

 

버전을 낮추거나 (버전 낮추면 쉽게 할수있음)

서버 따로 다운하기

 

repo만들때 복사했던거 보면  베이스url 있음

클릭 > server7 > x86_64 > rpms

가져와서 wget으로 다운 

 

강제설치

-nodeps 옵션사용 

rpm -ivh MariaDB-server-compat-11.4.3-1.el7.centos.noarch.rpm --nodeps

rpm -ivh MariaDB-server-11.4.3-1.el7.centos.x86_64.rpm --nodeps

 

systemctl start mariadb.service

mysql -u root -p

기본 패스워드 안잡혀이씀 그냥 엔터로 들어가기

 

status

언어셋이 라틴임

언어셋 바꾸기

exit로 마리아디비나가기

vi /etc/my.cnf

#
# This group is read both by the client and the server
# use it for options that affect everything
#
[client]
default-character-set=utf8mb4

[mysqld]
character-set-server=utf8mb4

[mysqldump]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

#[client-server]

#
# include *.cnf from the config directory
#
!includedir /etc/my.cnf.d

 

[디비 루트 비번 설정]

mysql -u root -p

use mysql

select * from user

desc db => 24개 나옴 

alter user 'root'@'localhost' identified by 'a123456';

exit

mysqladmin -u root -p reload

mysql -u root -p

 

[디비 사용자 추가]

use mysql

create user 'koo'@'localhost' identified by 'koo1004';

create user 'koo'@'%' identified by 'koo1004';

insert into db values ('localhost','mrp','koo','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y'); => DB 컬럼 24개만큼 

insert into db values ('%','mrp','koo','y','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

 

[디비버로 디비 백업]

덤프데이터베이스 > 다음 > 파일저장 경로 설정 > 에러 나도 그냥 저장 경로 가서 파일 확인해보고 정상이면 쓰면됨

낚이지마~!

 

[복구]

리스토어 데이터베이스로 백업파일 넣어서 완료하기 

언어셋 안맞아서 에러나면

파일질라로 파일 유저의홈디렉토리에 넣기

(절대 웹디렉토리(html)에 올리면 안됨 작살남 해커들이 데이터베이스 내용 다봄 개인정보유출 삐용삐용!!!🚨 쇠고랑찬다)

또는 dump-mrp-202504241437.sql 파일을 dump-mrp-202504241437.sql. 이렇게 점 붙이면 다운 안됨

또는 아예 sql지움dump-mrp-202504241437 => 안전 

백업할때만 .sql로 설정 

서버에서 명령어로 복구해도 언어셋 안맞아서 안됨

 

언어셋 바꾸려면

먼저 내 서버에서 테스트 테이블 만들어보고

mysqldump -u koo -p mrp > mrp.sql

백업한 후 내 서버의 언어셋을 확인한 후 

 

백업했던 파일 열어서그 파일의 언어셋을 서버의 언어셋으로 바꾼다 

 

COLLATION

 

메모장에서 컨트롤 h

모두바꾸기

다시 이 파일을 파일질라로 서버에 올려서

서버에서

mysql -u koo -p mrp < dump-mrp-202504241437.sql

해서 복구 완료 후

디비버에서 새로고침 해보면 잘 보임

 

[Mysql or MariaDB]

* 언어셋이 중요

1. 기존 데이터베이스에서 복구할 데이터베이스가 서로 다를 경우 (서버가 다를 경우)

2. 기존 데이터베이스의 언어셋 \status로 확인 => utf8mb4

3. 신규 서버의 데이터베이스의 언어셋, 기존 데이터베이스의 언어셋 동일하게 세팅

4. 신규 서버의 데이터베이스 테스트용 테이블을 생성하여 백업함 (COLLATE 확인)

백업 후 .sql 파일을 메모장으로 열어서 COLLATE 부분을 확인 필수 

5. 기존 데이터베이스를 백업 => mysqldump 명령어를 이용하던가 디비버 백업 이용 

6. 해당 백업된 기존 데이터베이스 .sql파일을 메모장으로 열어 COLLATE 부분을 확인

7. 기존 데이터베이스와 신규 데이터베이스 언어셋이 같은 경우 바로 복구 가능 (COLLATE 같을 경우)

8. COLLATE 다를 경우 메모장에서 COLLATE 언어를 신규서버 데이터베이스 COLLATE 언어로 모두 수정 후 복구 

9. mysql 명령어로 복구 가능


[Project 구축 서버]

1. Web 셋팅

2. Database 셋팅

3. WAS 셋팅

4. 배포


[서버 보안]

[포트 바꾸기]

먼저 ssh포트 바꾸기 나는9022로바꿔야징 

vi /etc/ssh/ssh_config

41번줄 9022

vi /etc/ssh/sshd_config

17번줄 9022

systemctl restart sshd

재시작 

서버 나가기

버츄얼박스에서 포트포워딩 ssh 포트 22로 돼있는거 9022로 바꾸기 

푸티로 서버 접속시 포트 9022로 바꿔서 접속

 

이런식으로 포트를 다른 것들도 바꿀 수 이씀

해커입장에서 포트가 다를경우 포트를 찾기보다 다른곳 해킹하는게 더쉽기때문에 포트바꾸는게 좋음

 

[서버 루트 바로들어가는거 막기]

서버접속시 바로 루트로 들어가게 냅두면 보안 약함

이거를 막고

일반사용자로 접속 후 루트로 들어가게 하는것이 보안에 좋음

단, 일반사용자 없는데 루트 막아버리면 작살난다잉

 

vi /etc/ssh/sshd_config

38번 주석 풀고

permitrootlogin no

로 바꾸기

 

vi /etc/ssh/ssh_config

42번 프로토콜 주석 풀기 

systemctl restart sshd.service

exit

이제 접속하고 루트로 접속하면 비밀번호가 맞아도 접속 팅긴다

 

일반사용자로 로그인 후 

su

입력하여 루트로 로그인하기

 

리눅스는 비번칠때 쿠킹(?)안되려고 입력하는 상황을 안보여줌

 

기본프로토콜버전 2로 돼있어서 작동됨

1로 바꿔도 2로 작동됨

 

해킹시 

ssh -프로토콜버전 사용자명@아이피 -p 포트번호

이렇게 접속함

 

실무에서는 1,2로 설정해서 둘다 들어갈 수 있게 함

 

sshd 40번 1로 

MaxAuthTries 1

비번 한번틀리면 종료되게함

기회많이주면 디도스 프로그램돌리면 금방뚫음

 

41번 주석 풀고 2

MaxSessions 2

최대 2개의 아이피가 하나의 아이디로 접속하게함 (사수접속가능)

 

systemctl restart sshd.service

재시작해서 적용하기


ssh => 원격접소 shell

ssh 환경설정은 2가지 존재 => 루트로 바로접속 안되도록 설정, 기본포트변경 

 

vi /etc/ssh/ssh_config

vi /etc/ssh/sshd_config

둘다 포트번호 바꿔줘야 정상적으로 적용됨 


[다른 아이피에서 서버 접속하게 만들기]

서버에서 init 0으로 서버 종료

 

버추얼머신 서버 설정  > 네트워크 1번 > NAT를 NAT네트워크로 바꾸고 확인 

 

서버 가동 

도구 > NAT네트워크 > 포트포워딩 추가 >

ssh2 / 윈도우아이피 / 9022 / 

ftp2

http2

이렇게 윈도우아이피를 쭉 추가해줌

 

이렇게하고 푸티로 윈도우 아이피로 접속하면

접속!완료!

 

systemctl start httpd
systemctl start mariadb

 

ntsysv

httpd

mysql 

켜서 자동시작 설정하기

 

저작자표시 비영리 변경금지 (새창열림)
'서버' 카테고리의 다른 글
  • [서버] WAS - Tomcat 세팅
  • [서버] 엿보기 구멍
  • [Linux] 기초 & [서버] FTP, JAVA (17) 세팅
  • [서버] CentOS, OracleVirtualBox 세팅
9na0
9na0
응애
  • 9na0
    구나딩
    9na0
  • 전체
    오늘
    어제
    • 분류 전체보기 (211)
      • Web (118)
      • Java (28)
      • 데이터베이스 (14)
      • 세팅 (12)
      • 과제 (3)
      • 쪽지시험 (2)
      • 정보처리기사 (4)
      • 서버 (25)
  • 블로그 메뉴

    • 링크

      • 포폴
      • 구깃
    • 공지사항

    • 인기 글

    • 태그

      file25_t
      macbook pro m4
      noticewriteok
      Oracle
      ab1
      java_io1~10
      net3
      re_java10
      file25
      file24
      notice_writer
      net2
      exam1_1~10
      datalist
      net1
      net4
      io_dto
      spring-boot
      re2
      net5~10
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    9na0
    [서버] WEB (Apache), DB (MariaDB) 세팅
    상단으로

    티스토리툴바