VPS에 워드프레스 설치하기 — Nginx, PHP, MySQL 셋업부터 로그인 오류 해결까지
VPS 서버를 구매하고 보안 설정까지 끝냈다면, 이제 워드프레스를 설치할 차례다.
이 글에서는 Ubuntu 서버에 Nginx + PHP + MySQL + WordPress를 설치하는 전체 과정을 정리한다. 직접 VPS에 워드프레스를 설치하면서 겪은 문제(로그인 오류)와 해결 방법도 함께 다룬다.
워드프레스 설치에 필요한 4가지
워드프레스를 서버에서 돌리려면 4가지 구성 요소가 필요하다.
| 구성 요소 | 역할 |
|---|---|
| Nginx | 웹서버 — 방문자의 요청을 받아서 처리하는 문 |
| PHP | 워드프레스가 돌아가는 엔진 |
| MySQL | 글, 댓글, 설정값을 저장하는 데이터베이스 |
| WordPress | 블로그 본체 |
4개가 전부 설치되어야 워드프레스가 정상 작동한다. 하나라도 빠지면 안 된다.
1단계: Nginx 설치 (웹서버)
Nginx는 방문자가 사이트에 접속할 수 있게 해주는 웹서버다.
sudo apt update
sudo apt install -y nginx
설치 후 브라우저에서 http://서버IP를 입력하면 Nginx 기본 페이지가 나온다. 이 화면이 보이면 웹서버가 정상 작동하는 것이다.
만약 페이지가 안 뜨면 방화벽(UFW)에서 80번 포트가 열려 있는지 확인하자.
sudo ufw allow 80
2단계: PHP 설치
워드프레스는 PHP로 만들어져 있다. PHP 본체와 함께 워드프레스에 필요한 확장 모듈을 같이 설치해야 한다.
sudo apt install -y 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-imagick
| 모듈 | 역할 |
|---|---|
| php8.3-fpm | PHP 실행 엔진 (Nginx와 연동) |
| php8.3-mysql | 데이터베이스 연결 |
| php8.3-gd, imagick | 이미지 처리 (썸네일 생성 등) |
| php8.3-mbstring | 한글 처리 |
| php8.3-curl | 외부 API 통신 |
명령어 한 줄이면 전부 설치된다. 하나씩 따로 설치할 필요 없다.
3단계: MySQL 설치 + 데이터베이스 생성
MySQL은 워드프레스의 모든 데이터를 저장하는 데이터베이스다.
sudo apt install -y mysql-server
설치 후 워드프레스 전용 데이터베이스와 사용자를 만들어야 한다.
sudo mysql -u root
MySQL에 접속한 뒤 아래 명령어를 실행한다.
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY '비밀번호입력';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
중요: 문자셋을 반드시 utf8mb4로 설정해야 한다. 한글과 이모지를 정상적으로 저장하려면 이 설정이 필수다.
4단계: 워드프레스 다운로드 + 설치
WP-CLI를 사용하면 워드프레스를 명령어 한 줄로 설치할 수 있다.
# WP-CLI 설치
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
# 워드프레스 다운로드
cd /var/www
sudo mkdir wordpress
sudo chown www-data:www-data wordpress
sudo -u www-data wp core download --path=/var/www/wordpress
다운로드 후 데이터베이스 연결 설정을 한다.
sudo -u www-data wp config create \
--dbname=wordpress \
--dbuser=wpuser \
--dbpass=비밀번호입력 \
--path=/var/www/wordpress
워드프레스 설치를 완료한다.
sudo -u www-data wp core install \
--url=http://서버IP \
--title="사이트 이름" \
--admin_user=admin \
--admin_password=관리자비밀번호 \
--admin_email=이메일주소 \
--path=/var/www/wordpress
5단계: Nginx ↔ 워드프레스 연동
Nginx가 워드프레스를 인식하도록 설정 파일을 만들어야 한다.
sudo nano /etc/nginx/sites-available/wordpress
아래 내용을 입력한다.
server {
listen 80;
server_name 서버IP;
root /var/www/wordpress;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-params.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
설정 파일을 활성화하고 Nginx를 재시작한다.
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl reload nginx
nginx -t에서 “test is successful”이 나오면 성공이다. 브라우저에서 서버 IP를 입력하면 워드프레스 화면이 나온다.
로그인이 안 될 때 — 비밀번호 오류 해결
설치는 잘 됐는데, 관리자 페이지에 로그인이 안 되는 경우가 있다. 비밀번호가 분명 맞는데 계속 오류가 나는 상황.
직접 겪어본 결과, 원인은 워드프레스의 비밀번호 암호화 방식이었다.
워드프레스는 비밀번호를 PHPass라는 특수한 방식으로 암호화한다. MySQL에서 직접 비밀번호를 바꿔도, 이 암호화 방식에 맞지 않으면 로그인이 안 된다.
해결 방법 — WP-CLI로 비밀번호 재설정:
sudo -u www-data wp user update admin --user_pass=새비밀번호 --path=/var/www/wordpress
이 명령어는 워드프레스 자체 함수를 사용해서 비밀번호를 변경하기 때문에 PHPass 암호화가 정상 적용된다. 실행 후 바로 로그인이 된다.
팁: MySQL에서 직접
UPDATE wp_users SET user_pass='...'로 바꾸면 안 된다. 반드시 WP-CLI나 워드프레스 함수를 통해 변경해야 한다.
설치 완료 확인
| 구성 요소 | 확인 방법 |
|---|---|
| Nginx | sudo systemctl status nginx — active 확인 |
| PHP | php -v — 버전 확인 |
| MySQL | sudo systemctl status mysql — active 확인 |
| WordPress | 브라우저에서 서버IP 접속 — 워드프레스 화면 확인 |
정리
VPS에 워드프레스를 설치하는 전체 순서:
- Nginx 설치 — 웹서버 세팅
- PHP + 확장 모듈 설치 — 워드프레스 엔진
- MySQL 설치 + DB 생성 — 데이터 저장소 (utf8mb4 필수)
- 워드프레스 다운로드 + 설정 — WP-CLI로 간편 설치
- Nginx ↔ 워드프레스 연동 — 설정 파일 생성 + 재시작
로그인 오류가 나면 MySQL에서 직접 수정하지 말고, wp user update 명령어로 비밀번호를 재설정하면 해결된다.
다음 단계는 도메인을 연결하는 것이다. 서버 IP 대신 내 도메인으로 접속할 수 있게 만들어 보자.