Webserver Ubuntu 24.04/26.04, Windows 11/Server(2022,2025) 환경의 Nginx, Apache, II…
페이지 정보

본문
Ubuntu 24.04/26.04, Windows 11/Server(2022,2025) 운영체제와 Nginx, Apache, IIS, Tomcat(톰캣) 연동, 웹 서버 조합에 맞춘 실제 터미널 명령어 세트 및 텍스트 스크린샷 가이드입니다. Ubuntu 환경: DB + PHP + 워드프레스 올인원 구축에 대한 설명도 포함하고 있습니다.
필요하신 환경을 언제든 복사해서 바로 쓰실 수 있도록 가장 안정적이고 표준적인 방법만 컴팩트하게 정리했습니다.
🐧 PART 1. Linux (Ubuntu 24.04 / 26.04) 환경
리눅스 환경에서는 Certbot을 사용하는 것이 표준입니다. Ubuntu 24.04 및 최신 버전에서도 동일하게 적용됩니다.
1️⃣ Ubuntu + Nginx 환경 가이드
Nginx는 Certbot 플러그인이 완벽하게 지원되어 명령어 한 줄로 설정 파일 수정까지 끝납니다.
bash
# 1. 시스템 패키지 업데이트
sudo apt update && sudo apt upgrade -y
# 2. 스냅(Snap)을 이용해 Certbot 최신 버전 설치
sudo snap install --classic certbot
# 3. certbot 명령어를 어디서나 쓸 수 있도록 심볼릭 링크 생성
sudo ln -s /snap/bin/certbot /usr/bin/certbot
# 4. Nginx 전용 플러그인으로 인증서 자동 발급 및 설정 적용
# (실행 후 이메일 입력 -> 약관 동의 Y -> HTTPS 리다이렉트 자동 설정)
sudo certbot --nginx -d 본인도메인.com -d ://xn--hq1bm8j58bhtqca.com
# 5. [검증] 자동 갱신이 잘 되는지 가상 테스트 (에러가 없으면 성공)
sudo certbot renew --dry-run
코드를 사용할 때는 주의가 필요합니다.
2️⃣ Ubuntu + Apache 환경 가이드
Apache 웹 서버 역시 전용 플러그인을 제공하여 가상 호스트(VirtualHost) 설정을 자동으로 갱신해 줍니다.
bash
# 1. 시스템 패키지 업데이트 및 Certbot 설치
sudo apt update
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
# 2. Apache 전용 플러그인으로 인증서 자동 발급 및 설정 적용
sudo certbot --apache -d 본인도메인.com -d ://xn--hq1bm8j58bhtqca.com
# 3. [검증] 자동 갱신 테스트
sudo certbot renew --dry-run
코드를 사용할 때는 주의가 필요합니다.
💻 PART 2. Windows (11 / Server 2022, 2025) 환경
윈도우 환경에서는 Certbot이 공식 지원되지 않으므로, win-acme 또는 Certify The Web을 사용해야 합니다.
1️⃣ Windows + IIS 환경 (추천: win-acme)
IIS는 win-acme를 사용하면 클릭 몇 번(텍스트 메뉴)으로 사이트 바인딩까지 한 번에 끝납니다.
text
[텍스트 스크린샷 가이드]
1. 공식 사이트에서 다운로드한 win-acme 압축을 'C:\win-acme'에 해제합니다.
2. wacs.exe를 마우스 우클릭하여 [관리자 권한으로 실행]합니다.
[화면 출력 내용 및 입력 순서]
----------------------------------------------------------------------
A: Renew all expired certificates
N: Create new certificate (simple for most cases) <-- 1. 키보드로 'N' 입력 후 엔터
M: Create new certificate (full options)
X: Cancel
----------------------------------------------------------------------
1: Single binding of an IIS website <-- 2. 키보드로 '1' 입력 후 엔터
2: All bindings of an IIS website
3: ...
----------------------------------------------------------------------
(서버에 등록된 IIS 웹사이트 목록이 출력됨)
Enter number of website: 1 <-- 3. 인증서를 적용할 사이트 번호 입력 후 엔터
4. 알림을 받을 이메일 주소(ex: admin@domain.com) 입력 후 엔터
5. 이용약관 동의 여부 물어보면 'y' 입력 후 엔터
[결과] IIS에 인증서가 자동으로 추가되고, '윈도우 작업 스케줄러'에 매일 새벽 만료를 체크하는 항목이 자동 등록됩니다.
코드를 사용할 때는 주의가 필요합니다.
2️⃣ Windows + Nginx 또는 Apache 환경 (추천: Certify The Web)
윈도우에서 IIS가 아닌 Nginx나 Apache를 구동할 때는, 설정 파일을 텍스트 기반으로 수정해야 하므로 GUI 툴인 Certify The Web을 쓰는 것이 정신건강에 가장 좋습니다. (5개 도메인까지 무료)
text
[텍스트 스크린샷 가이드]
1. Certify The Web 프로그램을 가동한 뒤 좌측 상단 [New Certificate] 클릭
2. [Name] 항목에 구별하기 좋은 이름 입력 (예: 내 웹사이트 Nginx)
3. [Domains] 탭에서 본인의 도메인 주소 입력 후 [Add Domain] 클릭
4. [Deployment] 탭 선택 (여기가 핵심입니다!)
- Deployment Task 항목에서 [Add] 버튼 클릭
- Task Type을 'Deploy to Nginx' 또는 'Deploy to Apache'로 선택
- 인증서 파일(.crt, .key)이 저장될 윈도우 내부 폴더 경로를 지정
5. 우측 상단 [Request Certificate] 버튼 클릭
6. [결과] 지정한 폴더로 SSL 인증서 파일이 발급되어 저장됩니다.
[최종 작업] Nginx/Apache 설정 파일(conf)을 열어 해당 인증서 경로를 매핑해 줍니다.
(예시 - Nginx.conf)
ssl_certificate "C:/인증서경로/fullchain.crt";
ssl_certificate_key "C:/인증서경로/cert.key";
코드를 사용할 때는 주의가 필요합니다.
■ 기존 Apache 제거 ➡️ Nginx 설치 ➡️방화벽(80, 443포트) 설정 ➡️ Certbot SSL 인증서 발급의 상황별 올인원 마이그레이션 가이드입니다.
🛑 1단계: 기존 Apache 완전히 제거하기
설정 파일과 찌꺼기 파일까지 깔끔하게 지워야 나중에 엔진엑스와 충돌하지 않습니다.
bash
# 1. 실행 중인 Apache 서비스 중지
sudo systemctl stop apache2
# 2. 부팅 시 자동 실행 설정 해제
sudo systemctl disable apache2
# 3. Apache 패키지 및 설정 파일 완전히 삭제 (purge)
sudo apt purge apache2 apache2-utils apache2-bin apache2.2-common -y
# 4. 의존성으로 설치되었으나 더 이상 쓰지 않는 패키지 정리
sudo apt autoremove -y
# 5. 남아있는 Apache 설정 디렉토리 강제 삭제
sudo rm -rf /etc/apache2 /var/www/html
코드를 사용할 때는 주의가 필요합니다.
⚡ 2단계: Nginx 설치 및 실행
우분투 공식 저장소에서 최신 안정판 Nginx를 설치합니다.
bash
# 1. 패키지 목록 업데이트
sudo apt update
# 2. Nginx 설치
sudo apt install nginx -y
# 3. Nginx 실행 및 부팅 시 자동 시작 설정
sudo systemctl start nginx
sudo systemctl enable nginx
# 4. 상태 확인 (Active: active (running) 표시가 나오면 성공)
sudo systemctl status nginx
코드를 사용할 때는 주의가 필요합니다.
🛡️ 3단계: 방화벽(UFW) 설정 및 80/443 포트 오픈
우분투 기본 방화벽인 UFW에서 외부 사용자가 웹사이트에 접속할 수 있도록 일반 웹(80) 및 보안 웹(443) 포트를 열어줍니다.
bash
# 1. Nginx 관련 방화벽 프로필 확인
# (Nginx Full 프로필은 80번과 443번 포트를 동시에 열어줍니다)
sudo ufw allow 'Nginx Full'
# 2. 만약 SSH(22번 포트)가 닫혀있다면 원격 접속이 끊어질 수 있으므로 안전하게 허용
sudo ufw allow ssh
# 3. 방화벽 활성화 (이미 켜져 있다면 생략 가능)
sudo ufw enable
# 4. 방화벽 규칙 적용 상태 확인
sudo ufw status
코드를 사용할 때는 주의가 필요합니다.
- 결과 화면 예시: 상태 창에 Nginx Full / ALLOW / Anywhere가 보이면 정상입니다. 이제 브라우저 주소창에 서버 IP를 입력하면 갱신된 Welcome to nginx! 페이지가 나타납니다.
🔒 4단계: Nginx 전용 SSL(Certbot) 연동
아파치를 지웠으므로, 이제 앞서 설명드린 Nginx 전용 Certbot을 실행하여 도메인에 SSL을 적용합니다.
bash
# 1. Certbot 및 Nginx 플러그인 설치 (최초 1회만)
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
# 2. SSL 인증서 발급 및 Nginx 환경설정 자동 반영
# (명령어 실행 후 안내에 따라 이메일 입력 및 약관 동의를 진행하세요)
sudo certbot --nginx -d 본인도메인.com -d ://xn--hq1bm8j58bhtqca.com
# 3. 자동 갱신 타이머 작동 테스트
sudo certbot renew --dry-run
코드를 사용할 때는 주의가 필요합니다.
■ Nginx로 전환한 후 웹사이트를 구동할 때 PHP를 연동해야 하거나(WordPress 등), 특정 프론트엔드/백엔드(Node.js, Spring Boot 등)와 연동해야 하는 설정 파일(nginx.conf) 예시가 필요하신가요?. Apache와 Nginx 환경 각각에 맞춘 주요 백엔드(PHP, Node.js, Spring Boot) 연동 설정 파일 예시와, 자바 개발의 필수품인 Tomcat(톰캣)의 사용 이유 및 설치·설정 매뉴얼입니다.
🌐 PART 1. Apache vs Nginx 환경별 연동 설정 (nginx.conf / httpd.conf)
웹 서버(Apache/Nginx)는 자체적으로 Java나 Node.js 코드를 실행하지 못하므로, 요청을 뒤쪽의 프로그램(App Server)으로 넘겨주는 역방향 프록시(Reverse Proxy) 역할을 해야 합니다. PHP의 경우 스크립트 엔진과 통신(FPM)하도록 설정합니다.
1️⃣ Nginx 환경 가이드 (/etc/nginx/sites-available/default)
Nginx는 가볍고 프록시 성능이 뛰어나 최신 웹 애플리케이션 연동에 매우 유리합니다.
nginx
server {
listen 80;
server_name yourdomain.com;
# 🟢 [CASE A] PHP 연동 (WordPress, Laravel 등)
# PHP-FPM 소켓 파일과 연동하여 스크립트를 처리합니다.
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock; # 설치된 PHP 버전에 맞춤
}
# 🔵 [CASE B] Node.js 또는 Spring Boot 연동
# 80번 포트로 들어온 요청을 내부에서 돌고 있는 백엔드 포트로 넘겨줍니다.
location / {
proxy_pass http://127.0.0.1:3000; # Node.js(3000) 또는 Spring Boot(8080) 포트 지정
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
코드를 사용할 때는 주의가 필요합니다.
2️⃣ Apache 환경 가이드 (/etc/apache2/sites-available/000-default.conf)
Apache는 모듈(Module)을 활성화하여 다양한 백엔드와 연동합니다. 설정 전 프록시 모듈 활성화가 필수입니다 (sudo a2enmod proxy proxy_http proxy_fcgi setenvif).
apache
<VirtualHost *:80>
ServerName yourdomain.com
DocumentRoot /var/www/html
# 🟢 [CASE A] PHP 연동 (PHP-FPM 이용)
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php/php8.3-fpm.sock|fcgi://localhost"
</FilesMatch>
# 🔵 [CASE B] Node.js 또는 Spring Boot 연동
# ProxyPass를 이용해 요청을 내부 포트로 포워딩합니다.
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8080 또는 3000 # Spring Boot(8080) 또는 Node.js(3000) 포트 지정
ProxyPassReverse / http://127.0.0.1:8080 또는 3000
</VirtualHost>
코드를 사용할 때는 주의가 필요합니다.
- ProxyPass: 사용자가 브라우저에 ://yourdomain.com을 입력했을 때, 아파치가 이 요청을 가로채서 내부의 http://127.0.0.1:8080 등으로 전달해 주는 역할을 합니다.
- ProxyPassReverse: 스프링 부트나 Node.js가 응답을 보낼 때, 헤더의 주소 정보를 아파치 주소(yourdomain.com)로 올바르게 변환하여 사용자에게 돌려보내 주는 역방향 매핑 주소입니다. (이 주소가 ProxyPass와 똑같이 일치해야 세션이나 리다이렉트가 깨지지 않습니다.)
🐯 PART 2. Tomcat(톰캣)이란 무엇이며 왜 사용하는가?
❓톰캣(Tomcat)을 사용하는 이유
- WAS (Web Application Server): Apache나 Nginx가 HTML, CSS, 이미지 같은 정적 파일을 빠르게 보여주는 웹 서버라면, Tomcat은 Java 코드(JSP, Servlet)를 실행하여 실시간으로 변하는 동적 페이지를 만들어내는 WAS입니다.
- 언제 사용하는가?: 전자정부프레임워크, Spring Boot(내장형이 아닌 외장형 배포 시), 중대형 기업용 시스템 등 Java 기반 백엔드 웹 애플리케이션을 구동할 때 무조건 사용합니다.
- 아키텍처 표준: 보통 성능 최적화와 보안을 위해 [Nginx/Apache (앞단: 정적 파일 처리 & SSL)] ➡️ [Tomcat (뒷단: Java 로직 실행)] 형태로 연결하여 사용합니다.
🛠️ PART 3. Tomcat 10 (외장형) 설치 및 설정 매뉴얼 (Ubuntu)
Tomcat을 단독으로 설치하고 구동하는 전체 프로세스입니다. Tomcat은 Java 기반이므로 Java(JDK) 설치가 선행되어야 합니다.
1단계: Java(JDK) 설치
bash
# 1. 패키지 업데이트 및 Java 최신 LTS 버젼 설치
sudo apt update
sudo apt install openjdk-17-jdk -y
# 2. Java 설치 버전 확인
java -version
코드를 사용할 때는 주의가 필요합니다.
2단계: Tomcat 다운로드 및 설치
안전성을 위해 tomcat 전용 시스템 계정을 만들고 압축을 풀어 배치합니다.
bash
# 1. tomcat 전용 유저 및 그룹 생성 (보안 목적)
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
# 2. 톰캣 공식 다운로드 (Tomcat 10 최신버전 경로)
cd /tmp
wget https://apache.org
# 3. 압축 풀고 /opt/tomcat 폴더로 이동
sudo tar -xf apache-tomcat-10.1.34.tar.gz -C /opt/tomcat --strip-components=1
# 4. 폴더 소유권 및 실행 권한 변경
cd /opt/tomcat
sudo chown -R tomcat:tomcat /opt/tomcat
sudo chmod +x /opt/tomcat/bin/*.sh
코드를 사용할 때는 주의가 필요합니다.
3단계: 시스템 서비스(Systemd) 등록
서버가 켜질 때 Tomcat이 자동으로 켜지도록 서비스 파일로 등록합니다.
bash
# 1. 서비스 설정 파일 생성
sudo nano /etc/systemd/system/tomcat.service
코드를 사용할 때는 주의가 필요합니다.
(파일 내용 입력)
ini
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_BASE=/opt/tomcat"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
코드를 사용할 때는 주의가 필요합니다.
(저장 후 종료: Ctrl + O -> 엔터 -> Ctrl + X)
bash
# 2. 시스템 서비스 새로고침 및 Tomcat 실행
sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl enable tomcat
# 3. 방화벽에서 톰캣 기본 포트(8080) 열기
sudo ufw allow 8080
코드를 사용할 때는 주의가 필요합니다.
- 확인: 이제 브라우저에 http://서버IP:8080을 입력하면 삼색 고양이 로고가 있는 Tomcat 환영 페이지가 나타납니다.
🔗 4단계: Nginx와 Tomcat 연동하기 (최종 단계)
사용자가 80번(HTTP)이나 443번(SSL)으로 들어왔을 때 뒷단의 8080번(Tomcat)으로 안전하게 넘겨주도록 Nginx 설정을 결합합니다.
/etc/nginx/sites-available/default 파일을 열어 아래 설정을 추가합니다.
nginx
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8080; # 톰캣 포트로 포워딩
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
코드를 사용할 때는 주의가 필요합니다.
설정 후 Nginx를 재시작(sudo systemctl restart nginx)하면 연동이 완료됩니다.
구상 중이신 웹서비스가 Spring Boot 프로젝트( .jar 또는 .war )인가요, 아니면 일반 JSP/Servlet 프로젝트인가요? 프로젝트 종류에 따라 톰캣 내부의 컨텍스트 경로(Context Path) 설정이나 빌드 파일 배포 위치가 달라지는데, 관련해서 추가적인 배포 가이드가 필요하시면 편하게 말씀해 주세요.
apache 톰캣 연동과 윈도우 iis 환경에서의 톰캣 연동 및 우분투 nginx, 아파치 환경에서의 DB설치 및 php 설치 워드프레스 설치 에 대한 명령어 설치법 등을 알려주세요
📊 1. 웹 서버 - 톰캣(Tomcat) 연동 가이드
① Apache + Tomcat 연동 (Ubuntu)
Apache와 Tomcat은 AJP(Apache JServ Protocol) 또는 HTTP 프록시로 연동합니다. 현대적인 환경에서 더 가볍고 설정이 직관적인 HTTP 프록시 방식을 사용합니다.
bash
# 1. Apache 프록시 관련 모듈 활성화
sudo a2enmod proxy proxy_http
sudo systemctl restart apache2
# 2. VirtualHost 설정 파일 수정
sudo nano /etc/apache2/sites-available/000-default.conf
코드를 사용할 때는 주의가 필요합니다.
- Apache 파일 수정 내용 (VirtualHost 블록 내부에 추가):
apache
<VirtualHost *:80>
ServerName yourdomain.com
# 모든 요청을 뒷단의 Tomcat(8080)으로 전달
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8080
ProxyPassReverse / http://127.0.0.1:8080
</VirtualHost>
코드를 사용할 때는 주의가 필요합니다.
bash
# 3. 반영을 위한 Apache 재시작
sudo systemctl restart apache2
코드를 사용할 때는 주의가 필요합니다.
② Windows IIS + Tomcat 연동
IIS와 Tomcat을 연결하려면 Microsoft의 공식 확장 기능인 ARR(Application Request Routing)과 URL 재작성(URL Rewrite) 모듈을 사용해야 합니다.
- 필수 모듈 설치:
# 1. Microsoft IIS URL Rewrite 다운로드 및 설치
# 2. Microsoft Application Request Routing (ARR) 다운로드 및 설치
- ARR 프록시 활성화:
# 1. IIS 관리자 실행 ➡️서버 이름 클릭 ➡️ Application Request Routing Cache 아이콘 더블클릭
# 2. 우측 작업(Actions) 패널에서 Server Settings 클릭
# 3. Enable proxy 체크박스 선택 후 Apply(적용) 클릭
- URL 재작성 규칙 추가 (web.config):
# 1. 워드프레스 또는 웹사이트 루트 폴더(C:\inetpub\wwwroot)에 web.config 파일을 생성하거나 수정하여 아래 내용을 입력합니다. 모든 요청을 Tomcat(8080)으로 포워딩하는 규칙입니다.
xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="TomcatProxy" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://127.0.0.1:8080/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
코드를 사용할 때는 주의가 필요합니다.
💡 {R:1}의 역할과 의미
- 만약 사용자가 브라우저에 http://xn--220b31d95hq8o.com라고 입력하면, IIS 웹 서버가 요청을 먼저 받습니다.
- 이때 (.*) 규칙에 의해 뒷부분인 notice/list가 가로채져서 {R:1}자리에 쏙 들어가게 됩니다.
- 결과적으로 IIS는 내부적으로 구동 중인 http://127.0.0.1:8080 주소를 호출하여 사용자에게 결과를 전달해 줍니다.
- *만약 **Node.js(3000번 포트)*를 연결하고 싶으시다면 위의 포트 번호 숫자만 3000으로 변경해 주시면 됩니다.
📝 2. Ubuntu 환경: DB + PHP + 워드프레스 올인원 구축
워드프레스는 PHP 기반으로 구동되며 데이터를 저장할 데이터베이스(MySQL 또는 MariaDB)가 필수입니다. 아래 단계를 순서대로 터미널에 복사하여 입력하세요.
🗄️ [공통] 1단계: Database(MariaDB) 설치 및 워드프레스 DB 생성
bash
# 1. MariaDB 데이터베이스 설치 및 실행
sudo apt update
sudo apt install mariadb-server mariadb-client -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
# 2. 데이터베이스 접속
sudo mysql -u root
# (여기서부터는 MariaDB 콘솔창 내부 명령어입니다. 한 줄씩 복사해서 실행하세요.)
# 3. 워드프레스용 데이터베이스 생성
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 4. 워드프레스 전용 DB 계정 생성 및 비밀번호 설정 (원하는 비번으로 변경하세요)
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'password123!';
# 5. 권한 부여 및 반영 후 종료
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
코드를 사용할 때는 주의가 필요합니다.
🌐 [선택 A] Nginx 기반 워드프레스 구축 가이드
Nginx 웹 서버 환경에서 PHP-FPM을 연동하고 워드프레스를 구동하는 방법입니다.
bash
# 1. PHP 및 필수 확장 패키지 설치
sudo apt install php-fpm php-mysql php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip -y
# 2. 워드프레스 최신 다운로드 및 압축 해제
cd /tmp
wget https://wordpress.org
tar -xvf latest.tar.gz
# 3. 웹 루트 폴더로 파일 이동 및 권한 설정
sudo mkdir -p /var/www/wordpress
sudo cp -r wordpress/* /var/www/wordpress/
sudo chown -R www-data:www-data /var/www/wordpress
sudo chmod -R 755 /var/www/wordpress
# 4. Nginx 가상 호스트 설정 파일 생성
sudo nano /etc/nginx/sites-available/wordpress
코드를 사용할 때는 주의가 필요합니다.
- Nginx 파일 내용 입력 (통째로 복사):
nginx
server {
listen 80;
server_name yourdomain.com; # 본인 도메인 또는 IP 입력
root /var/www/wordpress;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock; # 설치된 PHP 버전에 맞춰 숫자 수정
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
코드를 사용할 때는 주의가 필요합니다.
bash
# 5. 사이트 활성화 및 Nginx 재시작
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
sudo rm -f /etc/nginx/sites-enabled/default # 기본 기본 설정 해제
sudo systemctl restart nginx
코드를 사용할 때는 주의가 필요합니다.
🌐 [선택 B] Apache 기반 워드프레스 구축 가이드
Apache 웹 서버 환경에서 모듈 방식으로 워드프레스를 연동하는 방법입니다.
bash
# 1. PHP 및 Apache용 PHP 모듈 설치
sudo apt install php libapache2-mod-php php-mysql php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip -y
# 2. 워드프레스 다운로드 및 압축 해제
cd /tmp
wget https://wordpress.org
tar -xvf latest.tar.gz
# 3. 웹 루트 폴더 복사 및 권한 설정
sudo mkdir -p /var/www/wordpress
sudo cp -r wordpress/* /var/www/wordpress/
sudo chown -R www-data:www-data /var/www/wordpress
sudo chmod -R 755 /var/www/wordpress
# 4. Apache 가상 호스트 설정 파일 생성
sudo nano /etc/apache2/sites-available/wordpress.conf
코드를 사용할 때는 주의가 필요합니다.
- Apache 파일 내용 입력 (통째로 복사):
apache
<VirtualHost *:80>
ServerName yourdomain.com
DocumentRoot /var/www/wordpress
<Directory /var/www/wordpress>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/wordpress_error.log
CustomLog ${APACHE_LOG_DIR}/wordpress_access.log combined
</VirtualHost>
코드를 사용할 때는 주의가 필요합니다.
bash
# 5. 주소 재작성(Rewrite) 모듈 활성화, 사이트 적용 및 Apache 재시작
sudo a2enmod rewrite
sudo a2ensite wordpress.conf
sudo a2dissite 000-default.conf # 기본 설정 비활성화
sudo systemctl restart apache2
코드를 사용할 때는 주의가 필요합니다.
🚀 3. 최종 설치 마무리 (웹 브라우저)
Nginx나 Apache 설정이 끝나면 크롬 등 브라우저 주소창에 http://본인서버IP 또는 http://도메인을 입력합니다.
- 워드프레스 설치 화면이 나타나면 언어(한국어)를 선택합니다.
- 데이터베이스 연결 정보 설정 단계에서 아래 내용을 기입합니다.
# 1. 데이터베이스 이름: wordpress
# 2.사용자 이름: wp_user
# 3.비밀번호: password123! (위 MariaDB에서 설정한 값)
# 4.데이터베이스 호스트: localhost
- [설치 실행] 단추를 누르면 한국어 워드프레스 웹사이트 개설이 완료됩니다.
현재 도메인을 가지고 계신 상태라면, 이 상태에서 바로 아까 학습했던 Certbot 명령어(sudo certbot --nginx 또는 sudo certbot --apache)를 실행하여 곧바로 보안인증서(HTTPS) 주소로 자동 전환할 수 있습니다.
우분투 서버 환경을 운영하면서 데이터베이스(DB)와 PHP 서비스를 안정적으로 관리하고, 상태 점검 및 문제 발생 시 대처하기 위해 매일 사용하는 핵심 제반 명령어 가이드입니다.
🗄️ 1. 데이터베이스 (MariaDB / MySQL) 관리 명령어
DB 서버 자체의 상태를 제어하거나 내부 데이터(사용자, 데이터베이스)를 관리할 때 사용합니다.
① 서비스 제어 (생성/삭제가 아닌 백그라운드 구동 관리)
bash
sudo systemctl start mariadb # DB 서비스 시작 (구동)
sudo systemctl stop mariadb # DB 서비스 중지
sudo systemctl restart mariadb # DB 서비스 재시작 (설정 변경 후 적용)
sudo systemctl status mariadb # DB 현재 구동 상태 및 에러 로그 확인
sudo systemctl enable mariadb # 서버 부팅 시 DB 자동 시작 등록
코드를 사용할 때는 주의가 필요합니다.
② MariaDB 내부 관리 명령어 (접속 후 사용)
우선 sudo mysql -u root 명령어로 DB 콘솔에 접속한 뒤 아래 명령어를 사용합니다. (명령어 끝에 세미콜론 ; 필수)
- 데이터베이스(Schema) 관리
sql
SHOW DATABASES; -- 현재 존재하는 모든 DB 목록 보기
CREATE DATABASE [디비명]; -- 새 데이터베이스 생성
DROP DATABASE [디비명]; -- 데이터베이스 완전 삭제 (주의!)
코드를 사용할 때는 주의가 필요합니다.
- 사용자 계정 및 권한 관리
sql
SELECT User, Host FROM mysql.user; -- 현재 생성된 DB 사용자 목록 보기
-- 사용자 생성 (로컬 접속 전용)
CREATE USER '유저명'@'localhost' IDENTIFIED BY '비밀번호';
-- 사용자 권한 부여 (특정 DB의 모든 권한 부여)
GRANT ALL PRIVILEGES ON [디비명].* TO '유저명'@'localhost';
-- 변경된 권한 즉시 적용
FLUSH PRIVILEGES;
-- 사용자 삭제
DROP USER '유저명'@'localhost';
코드를 사용할 때는 주의가 필요합니다.
③ DB 백업 및 복구 (터미널에서 직접 실행)
bash
# [백업] wordpress 데이터베이스를 wp_backup.sql 파일로 저장
mysqldump -u root -p wordpress > wp_backup.sql
# [복구] wp_backup.sql 파일을 wordpress 데이터베이스에 다시 밀어넣기
mysql -u root -p wordpress < wp_backup.sql
코드를 사용할 때는 주의가 필요합니다.
🐘 2. PHP 및 PHP-FPM 관리 명령어
Nginx 환경에서는 PHP가 php-fpm이라는 독립된 서비스로 돌아가며, Apache 환경에서는 모듈 형태로 동작하므로 관리 방식에 차이가 있습니다.
① PHP 버전 및 기본 정보 확인
bash
php -v # 현재 CLI 환경에 설치된 PHP 버전 확인
php -m # 현재 활성화된 PHP 확장 모듈(curl, gd, mysqli 등) 목록 확인
코드를 사용할 때는 주의가 필요합니다.
② PHP-FPM 서비스 제어 (Nginx 환경 필수)
주의: 설치한 PHP 버전에 따라 php8.3-fpm, php8.4-fpm 등 서비스명이 달라집니다.
bash
sudo systemctl start php8.3-fpm # PHP 서비스 시작
sudo systemctl stop php8.3-fpm # PHP 서비스 중지
sudo systemctl restart php8.3-fpm # PHP 재시작 (php.ini 설정 변경 시 필수)
sudo systemctl status php8.3-fpm # PHP 구동 상태 확인
코드를 사용할 때는 주의가 필요합니다.
③ PHP 설정 파일(php.ini) 위치 찾기 및 편집
워드프레스에서 큰 파일(테마, 플러그인)을 업로드할 때 용량 제한 에러가 나면 이 파일을 수정해야 합니다.
bash
# 1. 내가 사용하는 PHP의 php.ini 파일 경로 찾기
php --ini | grep "Loaded Configuration File"
# 2. 파일 편집 (예시 경로이며 버전/환경에 따라 다름)
sudo nano /etc/php/8.3/fpm/php.ini
코드를 사용할 때는 주의가 필요합니다.
- Tip (자주 바꾸는 업로드 용량 설정 항목):
- upload_max_filesize = 256M (업로드 파일 최대 크기)
- post_max_size = 256M (POST 요청 최대 크기)
- memory_limit = 512M (PHP가 쓸 수 있는 최대 메모리)
- 수정 후에는 반드시 sudo systemctl restart php8.3-fpm을 해야 반영됩니다.
🔍 3. 장애 대처 및 모니터터링 제반 명령어
웹사이트가 뜨지 않거나 502 Bad Gateway 등의 에러가 날 때 원인을 찾는 명령어입니다.
bash
# 1. 실시간 DB 에러 로그 확인 (실시간 모니터링 탈출은 Ctrl + C)
sudo journalctl -u mariadb -f
# 2. 실시간 PHP 에러 로그 확인
sudo journalctl -u php8.3-fpm -f
# 3. 80번, 443번, 3306(DB)번 포트를 어떤 프로그램이 쓰는지 확인 (포트 충돌 해결용)
sudo ss -tlnp
# 4. 서버 전체 메모리 사용량 확인 (DB나 PHP가 메모리를 많이 먹어 뻗었는지 확인)
free -m
코드를 사용할 때는 주의가 필요합니다.
우분투 GUI(데스크톱) 환경에서는 터미널 명령어를 일일이 입력하지 않고도, 마우스 클릭만으로 데이터베이스와 PHP 설정을 직관적으로 관리할 수 있는 도구들이 잘 마련되어 있습니다.
DB 관리를 위한 DBeaver와 웹 기반 통합 관리를 위한 phpMyAdmin, 그리고 서버 프로세스 제어를 위한 Gnome Services 설치 및 사용법을 정리해 드립니다.
🗄️ 1. 데이터베이스 GUI 관리 도구: DBeaver (디비버)
윈도우의 패키지 프로그램처럼 우분투 바탕화면에서 실행하여 MariaDB/MySQL 내부의 테이블, 사용자 계정, 데이터베이스 생성 및 삭제를 마우스 클릭으로 해결할 수 있는 가장 강력한 오픈소스 프로그램입니다.
🛠️설치 방법
우분투 터미널을 열고 스냅(Snap) 상점을 통해 한 줄로 안전하게 설치할 수 있습니다.
bash
sudo snap install dbeaver-ce
코드를 사용할 때는 주의가 필요합니다.
설치가 완료되면 우분투 [프로그램 표시(Application Menu)]에서 DBeaver 아이콘을 클릭해 실행합니다.
📖사용 설명서 (MariaDB 연결 및 관리)
- 첫 연결 설정: 프로그램 좌측 상단의 [새 데이터베이스 연결 (플러그 모양 아이콘)]을 클릭한 뒤 MariaDB를 선택합니다.
- 접속 정보 입력:
# 1. Server Host: localhost
# 2. Database: wordpress (앞서 만든 디비명)
# 3. Username: wp_user
# 4. Password: 위에서 설정한 비밀번호 입력
# 5. 참고: root 계정은 우분투 보안상 GUI 로그인을 막아두는 경우가 많으므로, 워드프레스용 유저 계정으로 접속하는 것이 편리합니다.
- 사용법:
# 1. 데이터베이스 생성/삭제: 좌측 트리에서 Databases 마우스 우클릭 ➡️ Create New Database 선택 후 이름 입력. 삭제 시에는 해당 DB 선택 후 Delete 키 입력.
# 2. 데이터 수정: 테이블을 더블클릭하면 엑셀 화면처럼 데이터가 나타나며, 칸을 더블클릭해 직접 값을 고치고 하단의 Save를 누르면 즉시 반영됩니다.
🌐 2. 웹 기반 DB & PHP 관리 도구: phpMyAdmin
웹 브라우저(크롬 등)를 통해 서버에 접속하여 데이터베이스를 관리하는 세계 표준 도구입니다. 데이터베이스 생성/삭제는 물론, 백업(Export)과 복구(Import)를 마우스 클릭 몇 번으로 끝낼 수 있습니다.
🛠️설치 및 Nginx 연동 방법
bash
# 1. phpMyAdmin 패키지 설치 (설정 창이 뜨면 Apache/Lighttpd 선택이 나오는데, Nginx라면 그냥 Tab 눌러서 Ok로 넘어갑니다)
sudo apt install phpmyadmin -y
# 2. Nginx 웹 서버가 phpMyAdmin 폴더를 인식할 수 있도록 심볼릭 링크(바로가기) 연결
sudo ln -s /usr/share/phpmyadmin /var/www/wordpress/phpmyadmin
# 3. Nginx 웹 서버 권한 부여
sudo chown -R www-data:www-data /usr/share/phpmyadmin
코드를 사용할 때는 주의가 필요합니다.
(만약 Apache 환경이라면 설치 중 apache2를 선택하면 자동으로 연동되므로 2, 3번 과정을 건너뛰어도 됩니다.)
📖사용 설명서
- 접속: 브라우저 주소창에 http://본인서버IP/phpmyadmin을 입력합니다.
- 로그인: 생성했던 DB 사용자 아이디(wp_user)와 비밀번호를 입력해 접속합니다.
- 핵심 기능 사용법:
1. DB 생성: 상단 [데이터베이스] 탭 클릭 ➡️새 데이터베이스 이름 입력 후 [만들기] 클릭.
2. DB 삭제: 데이터베이스 목록에서 지우려는 DB 체크 ➡️하단의 [삭제] 클릭.
3. 백업 (Export): 상단 [내보내기] 탭 클릭 ➡️ [실행]을 누르면 컴퓨터로 .sql 백업 파일이 다운로드됩니다.
4. 복구 (Import): 상단 [가져오기] 탭 클릭 ➡️다운로드받았던 .sql 파일 선택 후 하단의 [실행]을 누르면 전체 복구됩니다.
⚙️ 3. PHP-FPM 및 DB 서비스 GUI 제어: Stacer (스테이서)
명령어로 입력하던 systemctl start/stop/restart 대신, 스마트폰 설정 창처럼 토글 스위치 클릭 한 번으로 MariaDB나 PHP 서비스를 켜고 끌 수 있는 시스템 최적화 GUI 프로그램입니다.
🛠️설치 방법
bash
sudo apt update
sudo apt install stacer -y
코드를 사용할 때는 주의가 필요합니다.
설치 후 프로그램 메뉴에서 Stacer를 찾아 실행합니다.
📖사용 설명서
- 프로그램을 켜면 대시보드 화면에 CPU, 메모리, 디스크 사용량이 스마트하게 표시됩니다. (서버 모니터링 명령어를 대신함)
- 좌측 메뉴에서 톱니바퀴 모양의 [Services] 탭을 클릭합니다.
- 서비스 목록에서 제어하고 싶은 이름을 찾습니다.
# 1. mariadb 또는 mysql (데이터베이스)
# 2. php8.3-fpm (PHP 서비스)
# 3. nginx 또는 apache2 (웹 서버)
- 사용법:
# 1. 서비스 이름 오른쪽에 있는 [재생/정지 아이콘]을 마우스로 클릭하면 서비스가 즉시 시작되거나 중지됩니다.
# 2. [자석 아이콘 (부팅 시 자동 시작)]을 활성화/비활성화하여 서버가 켜질 때 자동으로 같이 켜질지 여부를 제어할 수 있습니다.
※ 서버 원격 관리를 스마트폰 앱이나 외부 PC 웹 화면에서 한 번에 통제하고 싶으시다면, 아예 웹 패널 시스템인 aaPanel이나 Cockpit 같은 도구를 서버에 얹어서 사용하는 방법도 있습니다. 만약 이런 종합 웹 관리 패널 구축에 관심이 있으신가요? aaPanel과 Cockpit 모두 개인이 서버를 운영할 때 비용 부담 없이 쓸 수 있는 강력한 무료 도구입니다!
두 프로그램은 성격이 조금 다릅니다. aaPanel은 웹사이트 구축(Nginx, DB, PHP, 워드프레스 클릭 설치)에 최적화된 패널이며, Cockpit은 리눅스 시스템 자체(사용자 관리, 방화벽, 저장소, 터미널)를 브라우저로 제어하는 레드햇(RedHat) 공식 오픈소스 패널입니다.
워드프레스 웹사이트 운영 및 DB/PHP 관리가 목적이시라면 aaPanel을, 서버 시스템 전반의 상태를 원격 제어하고 싶으시다면 Cockpit을 추천합니다. 각각의 비용 특징과 우분투 설치·사용 매뉴얼을 정리해 드립니다.
🚀 1. 웹사이트 구축에 최적화된 'aaPanel'
- 비용: 기본 기능 완전 무료 (Nginx, Apache, MySQL, PHP, 워드프레스 설치, 방화벽 등 핵심 기능은 개수 제한 없이 평생 무료입니다. 특정 기업용 고급 백업 플러그인 등 일부만 유료입니다.)
- 추천 대상: 명령어를 아예 쓰지 않고 마우스 클릭만으로 웹 서버, DB, 워드프레스를 한 번에 깔고 싶은 초보자.
🛠️설치 방법 (우분투 터미널에서 최초 1회 실행)
aaPanel 공식 설치 스크립트를 복사하여 터미널에 붙여넣기만 하면 자동으로 모든 세팅이 진행됩니다.
bash
# aaPanel 우분투 전용 자동 설치 스크립트 실행
URL=https://aapanel.com && if [ -f /usr/bin/curl ];then curl -sSO $URL;else wget -O install_7.0_en.sh $URL;fi;bash install_7.0_en.sh aapanel
코드를 사용할 때는 주의가 필요합니다.
- 주의 사항: 설치 중간에 Do you want to install aaPanel to the /www directory now?(y/n):이라는 문구가 뜨면 키보드로 y를 입력하고 엔터를 누르세요.
- 설치 완료 후: 약 2~5분 뒤 설치가 끝나면 터미널 창에 접속 주소(인터넷 링크), ID, Password가 출력됩니다. 이 정보를 꼭 메모장이나 사진으로 저장해 두세요.
📖사용 설명서
- 웹 패널 접속: 크롬 브라우저를 열고 터미널에 나온 주소(예: http://내서버IP:8888/지정코드)를 입력하여 로그인합니다.
- 원클릭 환경 구축 (LNMP 선택):
# 1. 첫 로그인 시 팝업창이 뜹니다. 왼쪽의 LNMP(Nginx, MySQL, PHP-FPM) 패키지를 체크하고 [One-Click]을 누르면, 터미널 명령어를 쓰지 않아도 웹 서버와 DB가 마우스 클릭 한 번으로 자동 설치됩니다.
- 워드프레스 원클릭 설치:
# 1. 좌측 [Website] 메뉴 ➡️ [Add site] 클릭 ➡️상단 탭 중 [WordPress] 선택.
# 2. 도메인 주소를 입력하고 [Submit]을 누르면 워드프레스 다운로드, 데이터베이스 생성, 압축 해제까지 시스템이 알아서 끝내줍니다.
- DB 및 PHP 관리:
# 1. 좌측 [Database] 메뉴에서 DB 추가/삭제 및 백업(Export)을 할 수 있으며, [App Store]에서 설치된 PHP를 클릭하면 앞서 설명해 드린 php.ini 내부 설정(업로드 용량 제한 등)도 그래픽 화면에서 숫자로 고칠 수 있습니다.
⚙️ 2. 리눅스 시스템 관리에 최적화된 'Cockpit'
- 비용: 100% 완전 무료 오픈소스 (레드햇에서 개발하여 우분투 공식 저장소에 등록되어 있으므로 어떠한 유료 유도나 제한도 없습니다.)
- 추천 대상: 서버의 하드웨어 상태를 모니터링하고, 방화벽 포트를 제어하며, 브라우저 안에서 원격 터미널을 깨끗하게 쓰고 싶은 사용자.
🛠️설치 방법
우분투 공식 패키지에 포함되어 있어 설치가 매우 간단합니다.
bash
# 1. 패키지 업데이트 및 Cockpit 설치
sudo apt update
sudo apt install cockpit -y
# 2. 서비스 실행 및 부팅 시 자동 시작 등록
sudo systemctl start cockpit
sudo systemctl enable cockpit
# 3. 방화벽에서 Cockpit 기본 포트(9090) 열기
sudo ufw allow 9090
코드를 사용할 때는 주의가 필요합니다.
📖사용 설명서
- 웹 패널 접속: 브라우저 주소창에 https://내서버IP:9090을 입력합니다. (보안 경고 창이 뜨면 '고급' ➡️ '안전하지 않음으로 이동'을 클릭하세요.)
- 로그인: 우분투 리눅스 서버를 로그인할 때 쓰는 실제 관리자 계정 ID(예: ubuntu 또는 root)와 비밀번호를 입력합니다.
- 핵심 기능 사용법:
# 1. 시스템 모니터링: 대시보드에서 CPU, 메모리, 네트워크 트래픽, 디스크 IO 성능이 실시간 그래픽 그래프로 예쁘게 그려집니다.
# 2. 서비스 제어 (Turn On/Off): 좌측 [Services] 메뉴를 누르면 내 서버에서 돌고 있는 Nginx, MariaDB, PHP 목록이 나옵니다. 마우스 클릭으로 간편하게 중지(Stop)하거나 재시작(Restart)할 수 있습니다.
# 3. 방화벽 제어: 좌측 [Networking] ➡️ [Firewall] 메뉴에서 명령어를 치지 않고 [Add Port] 버튼을 눌러 원하는 웹 포트를 즉시 개방할 수 있습니다.
# 4. 웹 터미널: 좌측 최하단의 [Terminal] 메뉴를 누르면 Putty 같은 별도 프로그램 없이 브라우저 화면 안에서 온전한 우분투 검은색 터미널 창을 그대로 사용할 수 있습니다.
💡어떤 것을 먼저 설치해 볼까요?
- 현재 목적이 "편하게 워드프레스 블로그를 개설하고 쇼핑몰 웹사이트를 관리하는 것"이라면 터미널 창에 aaPanel 설치 명령어를 복사해서 실행해 보시는 것을 적극 추천해 드립니다.
aaPanel(8888)과 Cockpit(9090)을 정상적으로 사용하려면 방화벽에서 해당 포트를 반드시 허용해 주어야 합니다. 또한 두 프로그램을 설치하기 전에 반드시 알아두어야 할 중요한 제약 사항과 주의 사항이 있습니다.
잘못된 상태에서 설치하면 서버가 꼬이거나 접속이 안 될 수 있으므로, 아래 내용을 설치 전에 꼭 확인하세요.
🛡️ 1. 8888, 9090 포트 방화벽 허용 방법
우분투 기본 방화벽(UFW)을 사용하는 경우, 터미널에 아래 명령어를 입력하여 포트를 열어줍니다.
bash
# aaPanel 포트 허용
sudo ufw allow 8888/tcp
# Cockpit 포트 허용
sudo ufw allow 9090/tcp
# 방화벽 규칙 적용 및 상태 확인
sudo ufw reload
sudo ufw status
코드를 사용할 때는 주의가 필요합니다.
💡 AWS,
GCP, Oracle Cloud 등 클라우드 서버를 쓰시는 경우 추가 주의점
우분투 내부 방화벽을 열었더라도, 클라우드 서비스 홈페이에 있는 [보안 그룹(Security Group)] 또는 [방화벽 규칙] 메뉴로
이동하여 인바운드(Inbound) 규칙에 8888과 9090 포트를 추가로 개방해 주어야 외부에서 접속이 가능합니다.
⚠️ 2. 설치 시 가장 중요한 제약 사항 (중요!)
두 프로그램의 성격이 완전히 다르기 때문에 "어떤 상태에서 설치하느냐"가 매우 중요합니다.
① aaPanel 설치 시 제약 사항: 🚨 "아무것도 없는 순수한(Clean) OS 상태여야 합니다!"
- 절대 금지: 앞서 가이드에서 수동으로 설치했던 Apache, Nginx, MariaDB(MySQL), PHP가 이미 설치되어 있는 상태에서 aaPanel을 설치하면 안 됩니다.
- 이유: aaPanel은 자체적인 제어 메커니즘을 가지고 내부 원클릭 상점(App Store)을 통해 Nginx와 DB를 깔끔하게 통합 관리합니다. 이미 서버에 수동으로 설치된 아파치나 엔지엑스가 있다면 포트가 충돌하고, aaPanel 패널 화면에서 제어가 되지 않는 심각한 엉킴 현상이 발생합니다.
- 해결책: 만약 이전 단계에서 Apache나 Nginx 등을 수동으로 이미 설치하셨다면, 우분투 서버를 초기화(포맷)한 상태에서 aaPanel 설치 스크립트를 돌리는 것이 안전합니다. 만약 포맷이 어렵다면 앞서 알려드린 sudo apt purge 명령어로 기존 웹 서버들을 완전히 지우고 설치해야 합니다.
② Cockpit 설치 시 제약 사항: 🟢 "아무 때나 설치해도 상관없습니다!"
- 안전함: Cockpit은 aaPanel처럼 서버의 웹 환경을 강제로 뜯어고치는 프로그램이 아닙니다. 이미 내 서버에 존재하는 사용자, 방화벽, 하드웨어 상태를 '단순히 모니터링하고 원격 제어 버튼만 제공'하는 도구입니다.
- 결론: 서버에 Nginx, 워드프레스, DB가 돌고 있든 없든, 아무 때나 마음 편하게 설치해서 쓰셔도 기존 웹사이트에 아무런 영 영향을 주지 않습니다.
🔥 3. 요약 및 권장 진행 순서
- 내
서버가 이미 이것저것 설치되어 복잡한 상태다:
➡️ Cockpit만 설치해서 안전하게 시스템을 모니터링하고 웹 터미널을 쓰는 것을 추천합니다. - 나는
초보자라 명령어를 다 버리고 마우스 클릭으로 편하게 워드프레스를 운영하고 싶다:
➡️서버 인스턴스를 새로 파거나(초기화), 기존 웹서버들을 완전히 삭제(purge)한 뒤 aaPanel을 설치하세요. (aaPanel을 깔고 나면 Cockpit은 굳이 설치 안 하셔도 aaPanel 기능으로 대부분 커버됩니다.)
현재 서버 상태가 완전 처음 구매한 깨끗한 상태이신가요, 아니면 이미 아파치나 엔진엑스를 설치해 보신 상태이신가요?
기존에 수동으로 설치한 Apache, Nginx, MariaDB, PHP 등이 얽혀있는 상태에서 시스템을 깔끔하게 청소(삭제)하고, aaPanel을 안전하게 설치하여 접속하는 것까지의 전 과정 올인원 마이그레이션 매뉴얼입니다.
이 순서대로 진행하시면 포트 충돌이나 패널 오작동 없이 완벽하게 초기화된 상태에서 aaPanel을 구동하실 수 있습니다.
🧹 1단계: 기존 웹 서버 및 DB 흔적 완전히 지우기 (Purge)
단순 삭제(remove)가 아니라 설정 파일과 잔재까지 강제로 들어내는 완전 삭제(purge) 명령어를 사용합니다. 터미널에 한 줄씩 복사해서 실행하세요.
bash
# 1. 실행 중인 모든 웹 관련 서비스 중지
sudo systemctl stop apache2 nginx mysql mariadb php*-fpm 2>/dev/null
# 2. Apache 관련 패키지 완전 삭제
sudo apt purge apache2 apache2-utils apache2-bin apache2.2-common -y
# 3. Nginx 관련 패키지 완전 삭제
sudo apt purge nginx nginx-common nginx-full -y
# 4. 데이터베이스(MySQL / MariaDB) 완전 삭제
sudo apt purge mysql-server mysql-client mariadb-server mariadb-client -y
# 5. PHP 관련 모든 버전의 패키지 완전 삭제
sudo apt purge php* -y
# 6. 더 이상 쓸모 없어진 의존성 파일들 자동 정리
sudo apt autoremove --purge -y
# 7. 핵심 설정 디렉토리 및 잔재 강제 제거 (매우 중요)
sudo rm -rf /etc/apache2 /etc/nginx /etc/mysql /var/lib/mysql /etc/php /var/www/html
코드를 사용할 때는 주의가 필요합니다.
🛡️ 2단계: aaPanel 접속을 위한 방화벽(Port) 미리 열기
aaPanel은 기본적으로 8888 포트를 사용하며, 나중에 웹사이트와 SSL을 서비스하려면 80번과 443번 포트도 열려 있어야 합니다.
bash
# 1. aaPanel 기본 포트 및 웹 포트 허용
sudo ufw allow 8888/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 2. 방화벽 규칙 재부팅(새로고침) 및 상태 확인
sudo ufw reload
sudo ufw status
코드를 사용할 때는 주의가 필요합니다.
💡 [체크포인트] 클라우드(AWS, 오라클 등) 사용자
필수 작업
만약 개인 PC가 아니라 AWS EC2, 구글
클라우드(GCP), 오라클 클라우드 같은 가상 서버를 쓰고 계신다면,
해당 클라우드 관리 홈페이지(웹사이트)의 [보안 그룹] 또는 [인바운드 방화벽 규칙] 메뉴로
가셔서 8888, 80, 443 포트를 허용(Anywhere / 0.0.0.0/0) 처리해 주셔야
브라우저로 접속이 가능합니다.
🚀 3단계: aaPanel 자동 설치 스크립트 실행
서버가 깨끗해졌으니 이제 aaPanel을 설치합니다. 터미널에 아래 명령어를 통째로 복사해서 엔터를 누릅니다.
bash
URL=https://aapanel.com && if [ -f /usr/bin/curl ];then curl -sSO $URL;else wget -O install_7.0_en.sh $URL;fi;bash install_7.0_en.sh aapanel
코드를 사용할 때는 주의가 필요합니다.
텍스트 스크린샷 가이드 (설정 과정)
text
설치가 시작되면 잠시 후 터미널 창에 아래와 같은 확인 문구가 뜹니다.
Do you want to install aaPanel to the /www directory now?(y/n):
=> 이때 키보드로 'y'를 입력하고 엔터를 누르세요!
코드를 사용할 때는 주의가 필요합니다.
🔑 4단계: 설치 완료 및 최초 접속 (메모 필수)
설치는 서버 사양에 따라 약 2~3분 정도 소요됩니다. 설치가 끝나면 검은색 터미널 화면 제일 아랫부분에 초록색/노란색 글씨로 접속 정보가 나타납니다.
text
[터미널 출력 예시 화면 - 반드시 받아 적거나 사진을 찍으세요!]
==================================================================
aaPanel Internet Address: http://123.456.78
aaPanel Internal Address: http://192.168.1
username: aapanel_user
password: randompassword123
==================================================================
코드를 사용할 때는 주의가 필요합니다.
- Internet Address: 외부 PC에서 크롬을 켜고 접속할 실제 주소입니다. (맨 뒤의 영어/숫자 난수 형태의 보안 코드까지 완벽하게 주소창에 다 쳐야 열립니다.)
- username / password: 초기 로그인 계정 정보입니다.
💻 5단계: 웹 브라우저 로그인 및 초기 환경 세팅
- 내 컴퓨터에서 크롬(Chrome) 브라우저를 엽니다.
- 위에서 메모한 aaPanel Internet Address 주소를 주소창에 입력해 접속합니다.
- 메모한 username과 password를 입력해 로그인합니다.
- LNMP 원클릭 가동 (가장 중요):
# 1. 로그인하자마자 화면 중앙에 패키지 추천 팝업창이 뜹니다.
# 2. 왼쪽의 LNMP (Nginx + MySQL + PHP)를 선택합니다.
# 3. 버전은 대중적인 최신 버전(예: Nginx 1.24+, MySQL 8.0 또는 MariaDB, PHP 8.2+)으로 선택되어 있는 것을 확인하고, 하단의 [One-Click] 버튼을 누릅니다.
# 4. 백그라운드에서 컴파일 설치가 진행되며, 이 작업은 10~20분 정도 걸릴 수 있습니다. (진행 상황은 왼쪽 상단의 작업 카운트 아이콘을 누르면 볼 수 있습니다.)
설치 작업이 모두 끝나면 좌측 [Website] 메뉴를 통해 마우스 클릭 한 번으로 워드프레스를 생성하고, 생성 후 상단 메뉴의 레츠인크립트(Let's Encrypt) 버튼을 눌러 아까 처음에 보셨던 무료 SSL 자동 발급까지 클릭 한 번으로 처리하실 수 있게 됩니다.
LNMP 원클릭 설치가 정상적으로 진행 중이신가요, 아니면 혹시 4단계 주소창 접속 과정에서 페이지를 찾을 수 없다(타임아웃)는 메시지가 나오시나요? 접속이 되지 않으신다면 클라우드 방화벽 설정을 즉시 체크합니다.
- 이전글Node.js (노드), Spring Boot (스프링부트)등 우분투 설치 및 설정법, 그리고 Windows 환경에서의 주요프로그램 다운로드 방법 및 세부설치 및 설정법법 소개 26.08.19
- 다음글IIS ARR 리버스 프록시와 서버 변수 설정은 호스트 PC를 포맷하거나 설정을 잘못 건드리면 원상복구하기 매우 까다롭습니다. 따라서 현재의 완벽한 상태를 반드시 백업해 두셔야 합니다. 26.08.19
댓글목록

최고관리자님의 댓글
최고관리자 작성일
🟢 1. Node.js (노드)
• 개념: 자바스크립트(JavaScript)라는 언어를 브라우저 밖(서버 환경)에서 실행할 수 있게 해주는 구동 엔진입니다.
• 용도: 이 Node.js를 기반으로 Express, NestJS 같은 웹 프레임워크를 사용하여 백엔드(서버 프로그램)를 만듭니다.
• 특징: 주로 실시간 대화 앱, 가벼운 웹 API 서버, 프론트엔드(React, Vue, Next.js)를 서버 측에서 렌더링(SSR)할 때 아주 많이 씁니다. 기본 포트로 보통 3000번을 많이 사용합니다.
🍃 2. Spring Boot (스프링 부트)
• 개념: 전 세계와 우리나라 기업들이 가장 많이 쓰는 Java(자바) 언어 기반의 거대하고 강력한 백엔드 웹 프레임워크입니다.
• 용도: 은행 시스템, 대기업 쇼핑몰, 공공기관 시스템(전자정부프레임워크) 등 규모가 크고 데이터의 안정성·보안이 매우 중요한 대형 백엔드 서버를 만들 때 무조건 사용되는 표준 기술입니다.
• 핵심 차이점 (내장 톰캣): 앞서 설명해 드린 Tomcat(톰캣) 기억하시나요? 일반 Java 웹 앱은 톰캣을 따로 설치해서 소스를 얹어야 하지만, Spring Boot는 프로그램 내부에 톰캣(Tomcat)을 이미 품고(내장하고) 있습니다.
• 작동 방식: 따라서 코드를 빌드하여 app.jar라는 파일 하나만 실행하면, 내부에서 자동으로 톰캣이 구동되면서 8080번 포트로 서비스를 시작합니다.
________________________________________

