Vultr 가상서버에서 Ubuntu 22.04, Nginx, PHP-FPM, MySQL, WordPress를 설치하는 과정을 정리했다.
🛠️ 환경 구성 개요
SSD VPS Servers, Cloud Servers and Cloud Hosting
Vultr Global Cloud Hosting - Brilliantly Fast SSD VPS Cloud Servers. 100% KVM Virtualization
www.vultr.com
Vultr 계정 (추천 링크로 가입 시 일반 가입시 받는 크레딧 $250보다 $50 더 많은 $300 크레딧 제공)
※ 참고: 이 링크는 제휴 마케팅 링크이며, 이를 통해 가입 시 저에게 소정의 커미션이 발생할 수 있습니다.
스택: LEMP (Linux + Nginx + MySQL + PHP)
CMS: WordPress (설치형, Astra 테마 적용)
👉 서버를 아직 구매하지 않았다면, 이 링크를 통해 Vultr에 가입하세요 또는 이 링크를 사용해 크레딧 혜택과 함께 추천 프로그램에 참여하실 수 있습니다.
1. 시스템 업데이트
sudo apt update && sudo apt upgrade -y
2. PHP 8.4 설치
PHP 8.4와 워드프레스에 필요한 주요 확장 모듈을 설치한다.
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
sudo apt install php8.4 php8.4-fpm php8.4-mysql php8.4-cli php8.4-curl php8.4-gd php8.4-mbstring php8.4-xml php8.4-zip php8.4-soap php8.4-intl php8.4-imagick -y
3. MySQL 설치 및 설정
sudo apt install mysql-server -y
sudo mysql_secure_installation
MySQL 접속 후 워드프레스용 데이터베이스와 사용자 계정을 생성한다.
sudo mysql -u root -p
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'%' IDENTIFIED BY 'strongpassword';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'%';
FLUSH PRIVILEGES;
EXIT;
MySQL 외부 접속 허용
MySQL의 외부 접속을 허용하려면 설정 파일을 수정한다.
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address
항목을 0.0.0.0
으로 변경한다.
bind-address = 0.0.0.0
방화벽도 열어야 한다.
sudo ufw allow 3306/tcp
sudo systemctl restart mysql
4. Nginx 설치
sudo apt install nginx -y
sudo ufw allow 'Nginx Full'
5. 워드프레스 다운로드 및 배포
cd /var/www/
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzf latest.tar.gz
sudo mkdir -p /var/www/{your_project_folder}
sudo mv wordpress /var/www/{your_project_folder}/
디렉토리 권한 설정
sudo chown -R www-data:www-data /var/www/{your_project_folder}
sudo find /var/www/{your_project_folder} -type d -exec chmod 755 {} \;
sudo find /var/www/{your_project_folder} -type f -exec chmod 644 {} \;
6. Nginx 서버 블록 설정
sudo nano /etc/nginx/sites-available/{your_project_folder}
아래와 같이 설정하며, root 경로는 /var/www/{your_project_folder}/wordpress
로 설정해야 한다.
server {
listen 80;
server_name {your.domain www.your.domain};
root /var/www/{your_project_folder}/wordpress;
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.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
기존 default.conf 설정이 충돌을 일으킬 수 있으므로 비활성화한다.
sudo unlink /etc/nginx/sites-enabled/default
새 서버 블록을 활성화한다.
sudo ln -s /etc/nginx/sites-available/{your_project} /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
7. wp-config 설정
cd /var/www/{your_project_folder}/wordpress
cp wp-config-sample.php wp-config.php
nano wp-config.php
아래 항목을 수정한다.
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wpuser' );
define( 'DB_PASSWORD', 'strongpassword' );
define( 'DB_HOST', 'localhost' );
8. 워드프레스 설치 마무리
브라우저에서 http://{your_project_folder}
에 접속하여 워드프레스 설치 마법사를 완료한다.
보안 및 추가 설정
- Let's Encrypt SSL 적용:
sudo apt install certbot python3-certbot-nginx
- fail2ban 설치 및 SSH 보안 강화
- 워드프레스 캐시 플러그인 설치 (LiteSpeed Cache, WP Super Cache 등)
이 과정을 마치면 Vultr 서버에서 완전한 워드프레스 환경이 구축된다.
Let's Encrypt SSL 적용 관련글: Nginx 웹서버 보안 강화-SSL 인증서 발급
Nginx 웹서버 보안 강화-SSL 인증서 발급
앞서 PHP 설정 단계에서는 php.ini에서 disable_functions 등을 통해 PHP 수준에서 보안을 강화했었다.이번에는 웹 서버 레벨에서의 보안 설정을 해보자. 특히 HTTPS 적용과 UFW 방화벽 설정을 통해 외부 공
itsdev.tistory.com
'WordPress' 카테고리의 다른 글
워드프레스 블로그, 시작부터 수익화까지 한 번에 정리 (6) | 2025.06.15 |
---|---|
GPT API 연동 오류 해결! 워드프레스 자동화 문제 원인 분석 (1) | 2025.05.20 |
성능, 보안, 자동화까지! 워드프레스를 업그레이드하는 무료 플러그인 TOP 8 (6) | 2025.05.15 |
워드프레스 이미지 업로드 안됨? 6가지 원인과 대처법 정리 (1) | 2025.05.13 |
워드프레스 vs 티스토리, 수익형 블로그? (7) | 2025.05.07 |