Study/Linux

우분투 24.04에서 WordPress 완벽 설치 가이드: Nginx + PHP 8.3 + MariaDB

AC 2025. 6. 29. 21:59

들어가며

워드프레스는 전 세계 웹사이트의 43%가 사용하는 가장 인기 있는 CMS(Content Management System)입니다. 오늘은 최신 우분투 24.04 LTS 서버에 워드프레스를 설치하는 완벽한 가이드를 소개하겠습니다.

이 튜토리얼에서는 고성능 웹 서버인 Nginx, 최신 PHP 8.3, 그리고 안정적인 MariaDB를 사용하여 워드프레스 환경을 구축합니다. 초보자도 쉽게 따라할 수 있도록 모든 단계를 상세히 설명하겠습니다.

사전 준비사항

이 가이드를 시작하기 전에 다음 사항들이 준비되어 있어야 합니다:

  • 우분투 24.04 LTS가 설치된 서버
  • root 권한 또는 sudo 권한을 가진 사용자
  • 도메인 이름 (선택사항, IP 주소로도 접속 가능)
  • SSH 접속 환경
  • 최소 1GB RAM, 20GB 디스크 공간

1. 시스템 업데이트

먼저 시스템 패키지를 최신 상태로 업데이트합니다. 이는 보안과 안정성을 위해 매우 중요한 단계입니다.

Copy# 패키지 목록 업데이트
sudo apt update

# 설치된 패키지 업그레이드
sudo apt upgrade -y

# 필수 유틸리티 설치
sudo apt install software-properties-common ca-certificates lsb-release apt-transport-https -y

💡 : -y 옵션은 모든 질문에 자동으로 'yes'로 답하게 합니다.

2. Nginx 웹 서버 설치

Nginx는 가볍고 빠른 웹 서버로, 워드프레스와 완벽하게 호환됩니다.

Nginx 설치

Copy# Nginx 설치
sudo apt install nginx -y

# Nginx 서비스 시작
sudo systemctl start nginx

# 부팅 시 자동 시작 설정
sudo systemctl enable nginx

# 상태 확인
sudo systemctl status nginx

설치 확인

브라우저에서 서버의 IP 주소를 입력하면 Nginx 기본 페이지가 표시됩니다:

http://your_server_ip

3. PHP 8.3 설치 및 설정

PHP 8.3은 향상된 성능과 새로운 기능을 제공합니다. WordPress에 필요한 모든 PHP 확장 모듈을 함께 설치합니다.

PHP 저장소 추가

Copy# Ondřej Surý의 PHP 저장소 추가
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update

PHP 8.3 및 필수 모듈 설치

Copy# PHP-FPM 및 필수 확장 모듈 설치
sudo apt install php8.3-fpm php8.3-mysql php8.3-curl \
php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip \
php8.3-intl php8.3-bcmath php8.3-imagick -y

PHP-FPM 서비스 활성화

Copy# PHP-FPM 시작
sudo systemctl start php8.3-fpm

# 자동 시작 설정
sudo systemctl enable php8.3-fpm

# 상태 확인
sudo systemctl status php8.3-fpm

PHP 설정 최적화

Copy# PHP 설정 파일 편집
sudo nano /etc/php/8.3/fpm/php.ini

다음 값들을 찾아 수정합니다:

Copyupload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
memory_limit = 256M

4. MariaDB 데이터베이스 설치

MariaDB는 MySQL의 포크로, 더 나은 성능과 기능을 제공합니다.

MariaDB 설치

Copy# MariaDB 서버 및 클라이언트 설치
sudo apt install mariadb-server mariadb-client -y

# MariaDB 서비스 시작
sudo systemctl start mariadb

# 자동 시작 설정
sudo systemctl enable mariadb

보안 설정

Copy# MariaDB 보안 스크립트 실행
sudo mysql_secure_installation

다음 질문들에 답합니다:

  • Enter current password for root: Enter 키 (초기 비밀번호 없음)
  • Set root password?: Y
  • New password: 강력한 비밀번호 입력
  • Remove anonymous users?: Y
  • Disallow root login remotely?: Y
  • Remove test database?: Y
  • Reload privilege tables?: Y

5. WordPress 데이터베이스 생성

WordPress를 위한 전용 데이터베이스와 사용자를 생성합니다.

MariaDB 접속

Copysudo mysql -u root -p

데이터베이스 및 사용자 생성

Copy-- UTF-8 지원 데이터베이스 생성
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

-- 전용 사용자 생성 (비밀번호는 변경하세요!)
CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';

-- 권한 부여
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost';

-- 권한 적용
FLUSH PRIVILEGES;

-- 종료
EXIT;

⚠️ 보안 주의: 'StrongPassword123!'를 반드시 강력한 비밀번호로 변경하세요!

6. WordPress 다운로드 및 설치

최신 WordPress를 다운로드하고 적절한 위치에 설치합니다.

WordPress 다운로드

Copy# 임시 디렉토리로 이동
cd /tmp

# 최신 WordPress 다운로드
wget https://wordpress.org/latest.tar.gz

# 압축 해제
tar -xzvf latest.tar.gz

# 웹 디렉토리로 이동
sudo mv wordpress /var/www/wordpress

권한 설정

Copy# 소유권 변경
sudo chown -R www-data:www-data /var/www/wordpress

# 디렉토리 권한 설정
sudo find /var/www/wordpress/ -type d -exec chmod 755 {} \;

# 파일 권한 설정
sudo find /var/www/wordpress/ -type f -exec chmod 644 {} \;

WordPress 설정 파일 생성

Copy# 설정 파일 복사
cd /var/www/wordpress
sudo cp wp-config-sample.php wp-config.php

# 설정 파일 편집
sudo nano wp-config.php

다음 부분을 찾아 수정합니다:

Copy/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );

/** Database username */
define( 'DB_USER', 'wordpressuser' );

/** Database password */
define( 'DB_PASSWORD', 'StrongPassword123!' );

/** Database hostname */
define( 'DB_HOST', 'localhost' );

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8mb4' );

보안 키 생성

WordPress 보안 키 생성기에서 고유한 보안 키를 생성하여 wp-config.php의 해당 부분에 붙여넣습니다.

7. Nginx 서버 블록 설정

WordPress를 위한 Nginx 설정을 생성합니다.

서버 블록 파일 생성

Copysudo nano /etc/nginx/sites-available/wordpress

다음 내용을 입력합니다:

Copyserver {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/wordpress;
    index index.php index.html index.htm;

    # 로그 파일
    access_log /var/log/nginx/wordpress_access.log;
    error_log /var/log/nginx/wordpress_error.log;

    # 파일 업로드 크기 제한
    client_max_body_size 64M;

    # WordPress 고정 링크 지원
    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    # PHP 처리
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
    }

    # 정적 파일 캐싱
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires 30d;
        add_header Cache-Control "public, immutable";
    }

    # 숨김 파일 접근 차단
    location ~ /\. {
        deny all;
    }

    # xmlrpc.php 보안 (필요시 IP 제한)
    location = /xmlrpc.php {
        deny all;
    }
}

설정 활성화

Copy# 심볼릭 링크 생성
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/

# 기본 사이트 비활성화 (선택사항)
sudo rm /etc/nginx/sites-enabled/default

# 설정 문법 검사
sudo nginx -t

# Nginx 재시작
sudo systemctl restart nginx

8. WordPress 초기 설정

웹 브라우저에서 WordPress 설치를 완료합니다.

웹 설치 마법사

  1. 브라우저에서 http://your_domain.com 접속
  2. 언어 선택: 한국어
  3. 사이트 정보 입력:
    • 사이트 제목: 원하는 사이트 이름
    • 사용자명: 관리자 ID (admin 사용 금지)
    • 비밀번호: 강력한 비밀번호
    • 이메일: 관리자 이메일
  4. 검색 엔진 가시성: 개발 중이라면 체크
  5. WordPress 설치 클릭

9. 보안 강화 및 최적화

SSL 인증서 설치 (Let's Encrypt)

Copy# Certbot 설치
sudo apt install certbot python3-certbot-nginx -y

# SSL 인증서 발급 및 자동 설정
sudo certbot --nginx -d example.com -d www.example.com

방화벽 설정

Copy# UFW 설치 (설치되어 있지 않은 경우)
sudo apt install ufw -y

# 필요한 포트 허용
sudo ufw allow 'Nginx Full'
sudo ufw allow OpenSSH

# 방화벽 활성화
sudo ufw enable

추가 보안 설정

wp-config.php에 다음 설정을 추가합니다:

Copy// 파일 편집 비활성화
define('DISALLOW_FILE_EDIT', true);

// 디버그 모드 비활성화 (운영 환경)
define('WP_DEBUG', false);

// 자동 업데이트 설정
define('WP_AUTO_UPDATE_CORE', 'minor');

권장 플러그인

  • Wordfence Security: 종합 보안 솔루션
  • UpdraftPlus: 백업 솔루션
  • WP Super Cache: 캐싱 플러그인
  • Yoast SEO: SEO 최적화

10. 문제 해결 가이드

일반적인 문제와 해결방법

1. 502 Bad Gateway 오류

Copy# PHP-FPM 상태 확인
sudo systemctl status php8.3-fpm

# PHP-FPM 재시작
sudo systemctl restart php8.3-fpm

2. 파일 업로드 오류

Copy# 업로드 디렉토리 권한 확인
sudo chown -R www-data:www-data /var/www/wordpress/wp-content/uploads

3. 데이터베이스 연결 오류

Copy# MariaDB 상태 확인
sudo systemctl status mariadb

# 데이터베이스 접속 테스트
mysql -u wordpressuser -p wordpress

로그 파일 위치

  • Nginx 에러 로그: /var/log/nginx/error.log
  • PHP 에러 로그: /var/log/php8.3-fpm.log
  • WordPress 디버그: wp-content/debug.log (디버그 모드 활성화 시)

유용한 명령어

Copy# 실시간 로그 모니터링
sudo tail -f /var/log/nginx/error.log

# 디스크 사용량 확인
df -h

# 메모리 사용량 확인
free -m

# 프로세스 확인
ps aux | grep -E 'nginx|php|mysql'

마무리

축하합니다! 🎉 우분투 24.04 서버에 WordPress를 성공적으로 설치했습니다. 이제 다음 단계를 진행할 수 있습니다:

  1. 테마 선택 및 커스터마이징
  2. 필수 플러그인 설치
  3. 콘텐츠 작성 시작
  4. 정기적인 백업 설정
  5. 성능 모니터링 도구 설치

 

자동 설치 스크립트 첨부

wordpress_setup3.sh
0.03MB

 

도움이 필요하신가요?

설치 과정에서 문제가 발생하거나 궁금한 점이 있다면 댓글로 남겨주세요. 함께 해결책을 찾아보겠습니다!


이 가이드가 도움이 되셨다면 공유해주세요! WordPress로 멋진 웹사이트를 만드시길 바랍니다. ✨

LIST