Ubuntu 24.04 WordPress 설치|Nginx·PHP·MariaDB 구성 순서

이 글은 Ubuntu 24.04 VPS에 Nginx, PHP-FPM, MariaDB를 설치하고 WordPress를 직접 운영하는 순서입니다. 단순 명령어 모음이 아니라 InsideJojo 실서버에서 확인한 버전, 실제 Nginx 연결 방식과 설치 후 점검 명령을 함께 정리했습니다.

검증 환경: Ubuntu 24.04 LTS · Nginx 1.24 · PHP 8.3 · MariaDB 10.11 · WordPress 7.0 계열. 2026년 8월 15일 운영 서버에서 다시 확인했습니다.

설치 전에 준비할 것

  • Ubuntu 24.04 VPS와 sudo 계정
  • 서버 IP를 가리키는 도메인 A 레코드
  • SSH 접속 정보와 백업 위치
  • DB 이름·사용자·강한 비밀번호
  • 80·443 포트 사용 가능 여부

서버가 없다면 Vultr Ubuntu 서버 구축, DNS가 안 됐다면 도메인과 VPS 연결을 먼저 진행하세요.

1단계: 서버 업데이트

sudo apt update
sudo apt upgrade -y
lsb_release -ds
uname -m

운영 중인 서버라면 업데이트가 서비스 재시작에 미치는 영향을 확인하고 백업 후 진행하세요.

2단계: Nginx·MariaDB·PHP-FPM 설치

sudo apt install -y nginx mariadb-server \
  php-fpm php-mysql php-curl php-gd php-intl \
  php-mbstring php-xml php-zip unzip curl

nginx -v
php -v
mariadb --version
systemctl is-active nginx mariadb php8.3-fpm

PHP 버전이 다르면 소켓 이름도 달라집니다. ls -l /run/php/로 실제 소켓을 확인하세요.

3단계: MariaDB 데이터베이스 만들기

sudo mariadb
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY '충분히-긴-비밀번호';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

예시 비밀번호를 그대로 사용하지 말고 WordPress DB에만 권한을 줍니다. root 계정 정보는 wp-config.php에 넣지 않습니다.

4단계: WordPress 파일 배치

cd /tmp
curl -O https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
sudo mkdir -p /var/www/example.com
sudo cp -a wordpress/. /var/www/example.com/
sudo chown -R www-data:www-data /var/www/example.com
sudo find /var/www/example.com -type d -exec chmod 755 {} \;
sudo find /var/www/example.com -type f -exec chmod 644 {} \;

example.com은 실제 도메인으로 바꾸세요. 데이터베이스를 먼저 만들고 사이트 루트에 파일을 둔 뒤 설치 화면을 실행합니다.

5단계: Nginx 서버 블록

InsideJojo 운영 서버처럼 요청 파일이 없으면 index.php로 넘기고 PHP 8.3-FPM 유닉스 소켓에 연결하는 최소 설정입니다.

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com;
    index index.php index.html;
    location / { try_files $uri $uri/ /index.php?$args; }
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }
    location ~* /(?:wp-config\.php|readme\.html|license\.txt|\.ht) { deny all; }
}
sudo nano /etc/nginx/sites-available/example.com
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
sudo nginx -t
sudo systemctl reload nginx

reload 전에 nginx -t가 successful인지 확인하세요. PHP가 다운로드되거나 502가 나오면 fastcgi_pass 소켓과 php-fpm 실행 상태를 먼저 비교합니다.

6단계: 브라우저 설치

  • http://example.com/wp-admin/install.php 접속
  • DB 이름 wordpress, 사용자 wp_user 입력
  • DB 호스트 localhost 확인
  • 관리자 계정은 DB 계정과 다르게 생성
  • 설치 후 관리자 화면과 글 페이지 확인

7단계: HTTPS 적용

WordPress 권장 요구사항에는 HTTPS가 포함됩니다. DNS와 HTTP 접속이 정상인 다음 Nginx WordPress HTTPS 적용 가이드로 인증서와 자동 갱신을 설정하세요.

실제 운영에서 자주 막힌 지점

PHP-FPM 소켓 불일치

Nginx는 php8.2-fpm.sock인데 서버에는 php8.3-fpm.sock만 있으면 502가 납니다. ls -l /run/php/와 systemctl status php8.3-fpm을 비교합니다.

업데이트 후 점검 문구가 계속 표시됨

업데이트가 비정상 종료되면 루트의 .maintenance가 남을 수 있습니다. 프로세스가 끝났는지 확인하고 파일을 백업 이름으로 옮긴 뒤 다시 확인합니다.

cd /var/www/example.com
ls -la .maintenance
sudo mv .maintenance .maintenance.stale-backup

파일 소유자가 뒤섞임

root로 파일을 복사한 뒤 WordPress가 수정하지 못할 수 있습니다. 777 권한을 주지 말고 PHP-FPM 사용자와 소유자를 확인해 필요한 범위만 조정합니다.

설치 완료 검증

sudo nginx -t
systemctl is-active nginx php8.3-fpm mariadb
curl -I http://example.com
curl -I https://example.com
sudo tail -n 50 /var/log/nginx/error.log
php -m | grep -E 'curl|gd|intl|mbstring|mysqli|xml|zip'
검사정상 기준
Nginxsyntax is ok / test is successful
서비스3개 서비스 모두 active
HTTPHTTPS 리디렉션 또는 정상 응답
HTTPS200과 유효한 인증서
고유주소샘플 글 404 없음
업로드미디어와 썸네일 생성 성공
업데이트maintenance 잔류 없음

설치 후 운영 순서

Rank Math 설정, 속도·캐시 최적화, 보안과 자동 백업, 발행 전후 SEO 체크리스트 순서로 이어가세요.

wp-config.php에서 확인할 항목

브라우저 설치 화면이 파일을 만들지 못하면 wp-config-sample.php를 복사해 직접 설정할 수 있습니다. DB 이름·사용자·비밀번호·호스트를 입력하고 인증키는 WordPress 공식 Salt API에서 새 값으로 교체합니다. 파일 자체가 웹에서 내려받아지지 않도록 Nginx 차단 규칙과 권한도 확인하세요.

cd /var/www/example.com
sudo cp wp-config-sample.php wp-config.php
sudo chown www-data:www-data wp-config.php
sudo chmod 640 wp-config.php

설치 전후 백업 기준

  • Nginx 설정을 바꾸기 전에 sites-available 파일 복사
  • 플러그인·테마 대규모 변경 전에 DB와 wp-content 백업
  • nginx -t 실패 시 reload하지 않고 원래 설정으로 복구
  • 백업 파일은 웹 루트 밖에 저장하고 실제 복원 가능 여부 확인

설치 성공만 확인하고 끝내지 말고 자동 백업과 복구 절차를 한 번 시험해야 합니다. 백업 플러그인 화면에서 성공으로 보여도 원격 저장소에 파일이 실제 존재하는지 확인하세요.

공식 자료와 확인일

정보 확인일: 2026년 8월 15일. WordPress 공식 설치 문서, WordPress 요구사항, Ubuntu Nginx 문서, Nginx 공식 문서와 운영 서버를 대조했습니다.

댓글 남기기