Apache2 워드프레스 설치 및 최적화 가이드
Apache2 워드프레스 - 최첨단 서버실에서 다중 랙이 배치된 모습, Apache2 설정이 홀로그램 화면에 표시됨.

Apache2 워드프레스 설정 가이드 (Ubuntu 22.04)

워드프레스(WordPress)는 전 세계에서 가장 많이 사용되는 오픈 소스 CMS(콘텐츠 관리 시스템)로,
블로그부터 기업용 웹사이트까지 다양한 용도로 활용됩니다.

본 가이드는 Ubuntu 22.04에서 Apache2 웹 서버를 활용하여
워드프레스를 설치하고 최적화하는 방법을 다룹니다. 초보자도 쉽게 따라 할 수 있도록
데이터베이스 설정, Apache2 가상 호스트 구성, SSL 인증서 적용, 보안 및 성능 최적화까지
단계별로 상세히 설명합니다.

목차

  1. 워드프레스용 데이터베이스 생성
  2. 워드프레스 다운로드 및 설치
  3. Apache2 설정 및 가상 호스트 구성
  4. SSL 인증서 적용 (HTTPS 설정)
  5. 워드프레스 보안 설정
  6. 워드프레스 성능 최적화

1. 워드프레스용 데이터베이스 생성

워드프레스는 MySQL 또는 MariaDB를 기반으로 데이터를 저장합니다.
따라서 워드프레스를 설치하기 전에 데이터베이스와 사용자를 먼저 생성해야 합니다.

1.1 MySQL/MariaDB 접속

먼저 MySQL/MariaDB에 root 사용자로 로그인합니다.

sudo mysql -u root -p

위 명령어를 입력하면 MySQL/MariaDB root 비밀번호를 묻는 프롬프트가 나타납니다. 비밀번호를 입력 후 Enter를 누르세요.

1.2 데이터베이스 생성

다음 명령어를 실행하여 워드프레스용 데이터베이스를 만듭니다.

CREATE DATABASE wordpress_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

1.3 워드프레스 전용 사용자 생성 및 권한 부여

보안을 위해 root 계정이 아닌 별도의 워드프레스 전용 사용자 계정을 생성하는 것이 좋습니다.

CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'your_secure_password';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

your_secure_password를 원하는 강력한 비밀번호로 변경하세요.

1.4 데이터베이스 생성 확인

MySQL/MariaDB에 다시 접속하여 데이터베이스가 정상적으로 생성되었는지 확인합니다.

SHOW DATABASES;

출력된 목록에 `wordpress_db`가 포함되어 있으면 성공적으로 생성된 것입니다.

2. 워드프레스 다운로드 및 설치

워드프레스를 실행하려면 웹 서버 디렉터리에 워드프레스 파일을 다운로드하고 적절한 권한을 설정해야 합니다.
이 과정에서 Apache2의 기본 루트 디렉터리를 사용하여 파일을 배치하고 설정을 진행하겠습니다.

2.1 워드프레스 최신 버전 다운로드

다음 명령어를 실행하여 워드프레스 최신 버전을 다운로드합니다.

cd /var/www/html
sudo wget https://wordpress.org/latest.tar.gz

2.2 압축 해제 및 디렉터리 이동

다운로드한 파일을 압축 해제하고 워드프레스 파일을 적절한 위치로 이동합니다.

sudo tar -xvzf latest.tar.gz
sudo mv wordpress/* /var/www/html/

2.3 필요 없는 파일 정리

기존의 압축 파일과 불필요한 디렉터리를 삭제합니다.

sudo rm -rf latest.tar.gz wordpress

2.4 파일 권한 설정

Apache2가 워드프레스 파일을 제대로 실행할 수 있도록 올바른 권한을 설정합니다.

sudo chown -R www-data:www-data /var/www/html/
sudo chmod -R 755 /var/www/html/

2.5 워드프레스 설정 파일 생성

기본 설정 파일을 복사하여 사용합니다.

sudo cp /var/www/html/wp-config-sample.php /var/www/html/wp-config.php

2.6 데이터베이스 정보 입력

워드프레스가 MySQL/MariaDB와 연결될 수 있도록 설정 파일을 수정합니다.

sudo nano /var/www/html/wp-config.php

파일을 열고 아래 항목을 수정합니다.

define('DB_NAME', 'wordpress_db');
define('DB_USER', 'wp_user');
define('DB_PASSWORD', 'your_secure_password');
define('DB_HOST', 'localhost');

수정 후 `Ctrl + X` → `Y` → `Enter`를 눌러 저장합니다.

2.7 보안 키 설정

워드프레스는 보안을 위해 보안 키(SALT)를 설정해야 합니다.

다음 명령어를 실행하여 자동으로 생성된 보안 키를 복사합니다.

curl -s https://api.wordpress.org/secret-key/1.1/salt/

출력된 내용을 복사하여 `wp-config.php` 파일의 보안 키 섹션에 붙여넣습니다.

2.8 Apache2 재시작

변경 사항을 적용하기 위해 Apache2를 다시 시작합니다.

sudo systemctl restart apache2

2.9 웹 브라우저에서 워드프레스 설치 진행

이제 브라우저에서 다음 주소로 접속하면 워드프레스 설치 화면이 나타납니다.

http://your-domain.com/

화면에 나타난 안내에 따라 사이트 정보를 입력하고 워드프레스 설치를 완료하세요.

3. Apache2 설정 및 가상 호스트 구성

워드프레스 사이트가 제대로 작동하려면 Apache2의 가상 호스트(Virtual Host) 설정이 필요합니다.
가상 호스트를 설정하면 여러 개의 웹사이트를 하나의 서버에서 운영할 수 있으며,
올바른 도메인을 사용하여 사이트에 접근할 수 있습니다.

3.1 Apache2 모듈 활성화

워드프레스가 올바르게 작동하도록 Apache2의 필수 모듈을 활성화합니다.

sudo a2enmod rewrite
sudo systemctl restart apache2

3.2 가상 호스트 설정 파일 생성

아래 명령어를 사용하여 새로운 가상 호스트 설정 파일을 만듭니다.

sudo nano /etc/apache2/sites-available/your-domain.com.conf

3.3 가상 호스트 설정 추가

파일이 열리면 다음 내용을 입력합니다. `your-domain.com`을 실제 도메인으로 변경하세요.

    ServerAdmin [email protected]
    DocumentRoot /var/www/html
    ServerName your-domain.com
    ServerAlias www.your-domain.com

    
        AllowOverride All
        Require all granted
    

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

3.4 가상 호스트 활성화 및 Apache2 재시작

설정한 가상 호스트를 활성화하고 웹 서버를 다시 시작합니다.

sudo a2ensite your-domain.com.conf
sudo systemctl reload apache2

3.5 도메인 설정 확인

서버의 `/etc/hosts` 파일을 수정하여 도메인이 올바르게 연결되었는지 확인합니다. (테스트용)

sudo nano /etc/hosts

다음 내용을 추가합니다.

127.0.0.1   your-domain.com
127.0.0.1   www.your-domain.com

3.6 방화벽 설정 (80포트 허용)

방화벽이 활성화되어 있다면 80번 포트를 열어야 합니다.

sudo ufw allow 80/tcp
sudo ufw reload

3.7 설정 테스트

브라우저에서 다음 주소를 입력하여 워드프레스가 정상적으로 실행되는지 확인합니다.

http://your-domain.com/

4. SSL 인증서 적용 (HTTPS 설정)

SSL 인증서를 적용하면 웹사이트와 방문자 간의 통신을 암호화하여 보안을 강화할 수 있습니다.
무료 SSL 인증서인 Let’s Encrypt를 사용하여 손쉽게 HTTPS를 적용하는 방법을 설명합니다.

4.1 Let’s Encrypt SSL 설치

Certbot을 이용하여 무료 SSL 인증서를 설치합니다.

sudo apt install -y certbot python3-certbot-apache

4.2 SSL 인증서 발급

도메인에 SSL을 적용하려면 다음 명령어를 실행합니다. `your-domain.com`을 실제 도메인으로 변경하세요.

sudo certbot --apache -d your-domain.com -d www.your-domain.com

명령어 실행 후 몇 가지 설정을 선택해야 합니다.

  • 이메일 주소 입력
  • 서비스 약관 동의 (Y 입력)
  • HTTPS 강제 리디렉션 설정 (2번 선택 – 모든 트래픽을 HTTPS로 이동)

4.3 SSL 인증서 자동 갱신 설정

Let’s Encrypt SSL 인증서는 90일마다 갱신해야 합니다. 그래서 우리는 자동 갱신을 설정합니다.

sudo certbot renew --dry-run

위 명령어를 실행하면 자동 갱신이 올바르게 작동하는지 확인할 수 있습니다.

4.4 방화벽에서 HTTPS 허용

방화벽이 활성화된 경우 443번 포트를 허용해야 합니다.

sudo ufw allow 443/tcp
sudo ufw reload

4.5 HTTPS 설정 확인

브라우저에서 다음 주소를 입력하여 SSL이 정상적으로 적용되었는지 확인하세요.

https://your-domain.com

자물쇠 아이콘이 표시되면 SSL 적용이 완료된 것입니다.

5. 워드프레스 보안 설정

워드프레스는 가장 많이 사용되는 CMS 중 하나이기 때문에 보안이 중요합니다.
기본적인 보안 강화를 위해 관리자 계정 변경, 로그인 보안, 디렉터리 접근 제한 등을 설정하겠습니다.

5.1 관리자 계정 보안 강화

워드프레스 설치 후 기본 사용자 이름이 admin으로 설정되어 있으면 공격 대상이 될 수 있습니다.
관리자 계정을 보안성이 높은 사용자 이름으로 변경하세요.

5.2 로그인 시도 제한

무차별 대입 공격(Brute Force Attack)을 방지하기 위해 로그인 시도를 제한하는 플러그인을 설치합니다.

1) 워드프레스 관리자 페이지 접속 (`https://your-domain.com/wp-admin`)
2) 플러그인 추가 → "Limit Login Attempts Reloaded" 검색
3) 플러그인 설치 및 활성화
4) 로그인 시도 횟수를 5회 이하로 설정

5.3 XML-RPC 비활성화

XML-RPC 기능은 원격 연결을 허용하지만, 보안 취약점이 될 수 있습니다. 비활성화하려면 아래 명령을 실행합니다.

sudo nano /var/www/html/.htaccess

파일 맨 아래에 다음 내용을 추가합니다.

    Order Allow,Deny
    Deny from all

저장 후 변경 사항을 적용합니다.

sudo systemctl restart apache2

5.4 디렉터리 접근 제한

워드프레스의 주요 디렉터리 접근을 제한하여 보안을 강화할 수 있습니다.

sudo nano /var/www/html/.htaccess

다음 내용을 추가합니다.

# wp-config.php 접근 차단

    Order Allow,Deny
    Deny from all


# 디렉터리 리스팅 비활성화
Options -Indexes

5.5 wp-config.php 보안 강화

데이터베이스 설정 파일인 `wp-config.php`를 보호하려면 권한을 변경해야 합니다.

sudo chmod 600 /var/www/html/wp-config.php

5.6 자동 업데이트 활성화

보안 업데이트가 자동으로 적용되도록 설정합니다.

sudo nano /var/www/html/wp-config.php

파일 맨 아래에 다음 내용을 추가합니다.

define('WP_AUTO_UPDATE_CORE', true);

6. 워드프레스 성능 최적화

워드프레스의 성능을 최적화하면 사이트 속도가 빨라지고, 검색 엔진 최적화(SEO)에도 긍정적인 영향을 줍니다.
여기에서는 캐시 설정, PHP 성능 개선, 이미지 최적화, 데이터베이스 최적화 등을 다룹니다.

6.1 캐시 플러그인 설치

캐시를 적용하면 페이지 로딩 속도가 대폭 개선됩니다. 대표적인 무료 캐시 플러그인은 다음과 같습니다.

1) 워드프레스 관리자 페이지 접속 (`https://your-domain.com/wp-admin`)
2) 플러그인 추가 → "WP Super Cache" 또는 "W3 Total Cache" 검색
3) 플러그인 설치 및 활성화
4) 캐싱 설정 활성화

6.2 PHP OPcache 활성화

OPcache를 활성화하면 PHP 코드 실행 속도를 개선할 수 있습니다.

sudo nano /etc/php/8.2/apache2/php.ini

아래 설정을 찾아 값을 변경하거나 추가합니다.

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.validate_timestamps=1

변경 후 Apache2를 다시 시작합니다.

sudo systemctl restart apache2

6.3 이미지 최적화

이미지 크기를 줄이면 페이지 로딩 속도가 빨라집니다. “Smush” 또는 “EWWW Image Optimizer” 플러그인을 설치하여 자동 최적화합니다.

1) 플러그인 추가 → "Smush" 또는 "EWWW Image Optimizer" 검색
2) 플러그인 설치 및 활성화
3) 이미지 자동 압축 설정 활성화

6.4 MySQL 데이터베이스 최적화

불필요한 데이터 삭제 및 최적화를 수행하면 성능이 향상됩니다.

sudo mysql -u root -p

로그인 후 아래 명령어를 실행하세요.

OPTIMIZE TABLE wp_posts;
OPTIMIZE TABLE wp_comments;
OPTIMIZE TABLE wp_options;
OPTIMIZE TABLE wp_postmeta;
EXIT;

6.5 CDN(Content Delivery Network) 적용

Cloudflare와 같은 CDN을 적용하면 정적 파일(이미지, CSS, JS)의 로딩 속도가 향상됩니다.

1) Cloudflare 웹사이트(https://www.cloudflare.com) 가입
2) 도메인 추가 및 네임서버 변경
3) "자동 캐싱" 및 "이미지 최적화" 활성화

6.6 워드프레스 Heartbeat API 비활성화

Heartbeat API는 서버 리소스를 많이 사용하므로 비활성화하면 성능이 개선됩니다.

1) 플러그인 추가 → "Heartbeat Control" 검색
2) 플러그인 설치 및 활성화
3) Heartbeat API를 "비활성화"로 설정

7. 최종 마무리 및 요약 정리

이제 Ubuntu 22.04에서 Apache2를 이용하여 워드프레스를 성공적으로 설치하고,
최적화 및 보안 설정까지 완료하였습니다. 이 과정에서 데이터베이스 생성, Apache2 가상 호스트 설정, SSL 적용, 보안 강화, 성능 최적화 등의 중요한 단계를 수행하였습니다.

최종 점검 사항

  • Apache2, PHP, MariaDB가 정상적으로 실행되는지 확인
  • 워드프레스가 정상적으로 설치 및 작동하는지 확인
  • 도메인 및 HTTPS(SSL 인증서) 설정이 올바르게 적용되었는지 점검
  • 보안 설정(관리자 계정 변경, XML-RPC 차단, 로그인 시도 제한 등) 적용 여부 확인
  • 성능 최적화(캐시 플러그인, OPcache 활성화, 이미지 최적화 등) 점검

추가적인 추천 설정

워드프레스 사이트를 더욱 안전하고 빠르게 운영하기 위해 추가로 적용하면 좋은 설정들입니다.

  • Cloudflare 또는 다른 CDN 적용하여 웹사이트 속도 개선
  • Fail2Ban을 이용한 SSH 및 로그인 보안 강화
  • 자동 백업 스크립트 설정(MySQL 데이터베이스 및 웹사이트 데이터 정기 백업)
  • 서버 모니터링 도구(Glances, Netdata)를 이용한 실시간 리소스 관리

다음 단계

워드프레스 기본 설치가 완료되었으므로 이제는 원하는 테마와 플러그인을 설치하여 웹사이트를 꾸밀 차례입니다. 아래 단계를 따라 추가 설정을 진행할 수 있습니다.

1) 워드프레스 관리자 페이지 접속 (`https://your-domain.com/wp-admin`)
2) 원하는 테마 설치 (`테마 > 새로 추가`)
3) 필수 플러그인 설치 (보안 플러그인, SEO 플러그인, 캐시 플러그인 등)
4) 기본 페이지 및 메뉴 설정 (`페이지 > 새 페이지 추가`)
5) 퍼머링크 구조 설정 (`설정 > 고유주소`)

Leave a Comment