티스토리 뷰

 

이번 포스팅은 지난 https://ekeprl.tistory.com/52

 

서버호스팅 (1) – [Ubuntu] OS 업데이트와 웹/DB 환경 세팅

이전에 작성했던 웹호스팅을 이어서 서버호스팅을 해보려고 합니다.https://ekeprl.tistory.com/51 웹 호스팅 - 닷홈(DOTHOME) 무료호스팅로컬환경에서만 프로젝트를 활용하다가직접 웹 서비스를 진행하

ekeprl.tistory.com

설정 이후에 직접 서버 초기 세팅을 진행하려합니다.

 

Ubuntu 서버를 처음 세팅할 때 필요한 작업은 다음과 같습니다

  • Apache 웹 서버 설치
  • MariaDB 성치 및 관리자 계정 생성(본인이 사용하는 DB)
  • 호스트 네임 변경
  • 시스템 패키지 업데이트

위 세팅을 끝내면 웹/DB서버로 사용이 가능합니다.

 

#!/bin/bash
set -e
  •  - #!/bin/bash : bash 환경 선언 
  •  - set -e : 에러 발생 시 즉시 종료

 * bash : 사용자가 명령을 입력해 시스템을 제어하고, 쉡 스크립트를 사용해 작업을 자동화하는 작업*

 

# 0.사용자 설정

NEW_HOSTNAME="변경할 HOSTNAME"
ADMIN_USER="DB 관리자계정"
ADMIN_PASS="DB 관리자 비밀번호"

 

 

# 1. 패키지 업데이트
echo "[1/5] Updating system packages..."
apt update -y
apt upgrade -y
  • echo : logger와 같은 용도
  • apt update : 패키지 목록 최신화
  • apt upgrade : 설치된 패키지 모두 최신 버전으로 업데이트
  • -y : “Yes” 선택을 자동으로 처리

 

 

 

# 2. Apache 설치
echo "[2/5] Installing Apache..."
apt install -y apache2
systemctl enable apache2
systemctl start apache2

 

  • apt install -y apache2 : Apache 웹 서버 설치
  • systemctl enable apache2 : 서버 재부팅 후 자동으로 실행
  • systemctl start apache2 : 설치 후 바로 실행
# 3. 호스트네임 변경
echo "[3/5] Changing hostname to $NEW_HOSTNAME..."
hostnamectl set-hostname $NEW_HOSTNAME
sed -i "s/127.0.1.1.*/127.0.1.1 $NEW_HOSTNAME/" /etc/hosts

 

 

  • hostnamectl set-hostname : 서버 이름 변경
  • /etc/hosts 수정 : 내부 시스템에서도 새 호스트네임을 인식하도록 적용

  * 호스트네임을 바꾸는건 로그, 스크립트 등에서 서버 이름을 정확하게 확인하기 위해서다*

# 4. MariaDB 설치
echo "[4/5] Installing MariaDB..."
apt install -y mariadb-server
systemctl enable mariadb
systemctl start mariadb

 

  • apt install -y MariaDB-SERVER : MariaDB 설치
  • systemctl enable mariadb / systemctl start mariadb : 재부팅 시 자동 실행 설정
# 5) 안전한 DB 초기화: root 비번을 건드리지 않고, 관리계정(ADMIN_USER)을 생성/갱신
echo "5) Creating/Updating admin DB user (${ADMIN_USER}@localhost)..."

mysql -e "CREATE USER IF NOT EXISTS '${ADMIN_USER}'@'localhost' IDENTIFIED BY '${ADMIN_PASS}'; \
GRANT ALL PRIVILEGES ON *.* TO '${ADMIN_USER}'@'localhost' WITH GRANT OPTION; \
FLUSH PRIVILEGES;"

 

  • root 비밀번호를 건드리지 않고 새 계정을 만들어 관리 가능
  • CREATE USER IF NOT EXISTS : 계정이 없으면 생성
  • GRANT ALL PRIVILEGES : 모든 권한 부여
  • FLUSH PRIVILEGES : 권한 즉시 적용

${ADMIN_USER} / ${ADMIN_PASS} 는 0번에서 입력한 값입니다.

 

직접 명령어를 입력해서 사용하는 방법도 있지만, 스크립트로 저장해서 다른방법으로 세팅을 할 수 도있습니다.

 

이만 포스팅을 마치겠습니다.

감사합니다.

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
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 30 31
글 보관함