카페24나 일반 웹호스팅 대신 iwinv VPS 호스팅을 선택하면, 성능과 자유도는 높아지지만 직접 서버를 설치·운영해야 한다는 부담도 따라옵니다. 이 글에서는 iwinv VPS를 기준으로 워드프레스 설치부터 필수 보안 설정까지를 한 번에 정리해 보겠습니다. 리눅스 초보라도 순서대로만 따라가면 기본 자사몰·블로그용 워드프레스 서버를 구축할 수 있도록 구성했습니다.
1. 준비 단계 – iwinv VPS 생성 및 서버 접속
1-1. VPS 인스턴스 생성
- iwinv 콘솔에서 VPS 상품 선택 후 인스턴스를 생성합니다.
- OS는 Ubuntu 20.04 / 22.04 LTS를 추천합니다. 정보가 많고 안정적입니다.
- 워드프레스 + 소규모 쇼핑몰 기준으로는 vCPU 2코어 / RAM 2GB 이상이면 무난합니다.
1-2. 서버 IP 확인 & SSH 접속
- iwinv 관리 콘솔에서 공인 IP 주소를 확인합니다.
- 로컬 PC(Windows라면 PuTTY, Mac/Linux라면 터미널)에서 SSH 접속:
ssh root@서버_IP주소
# 또는 키를 발급받았다면
ssh -i ~/.ssh/id_rsa root@서버_IP주소
처음 접속 후에는 아래처럼 패키지 업데이트부터 해 줍니다.
apt update && apt upgrade -y
2. 웹 서버 & PHP & DB 설치 (LEMP 예시)
워드프레스는 PHP + DB + 웹서버가 필요합니다. 여기선 Nginx + MariaDB + PHP-FPM(LEMP) 조합을 기준으로 설명합니다. (Apache를 선호한다면 LAMP로 설치해도 무방합니다.)
2-1. Nginx, PHP, MariaDB 설치
apt install nginx mariadb-server php-fpm php-mysql \
php-xml php-mbstring php-gd php-curl php-zip php-cli unzip -y
설치 후 서비스가 잘 올라왔는지 확인합니다.
systemctl status nginx
systemctl status php8.1-fpm # 버전은 환경에 따라 다를 수 있음
systemctl status mariadb
2-2. DB 보안 기본 설정 & 워드프레스 DB 생성
MariaDB의 기본 보안 설정을 먼저 합니다.
mysql_secure_installation
질문에 따라 root 비밀번호 설정, 익명 사용자 삭제, 테스트 DB 삭제 등을 모두 Yes 쪽으로 답변하면 됩니다.
이제 워드프레스에서 사용할 DB와 계정을 만듭니다.
mysql -u root -p
# MySQL 프롬프트에서
CREATE DATABASE wpdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY '강력한비밀번호!';
GRANT ALL PRIVILEGES ON wpdb.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
3. 워드프레스 다운로드 및 Nginx 설정
3-1. 워드프레스 다운로드 & 권한 설정
cd /var/www
wget https://wordpress.org/latest.zip
unzip latest.zip
mv wordpress mysite # 원하는 디렉터리 이름으로 변경
cd mysite
cp wp-config-sample.php wp-config.php
wp-config.php 파일을 열어 DB 설정을 맞춰 줍니다.
nano wp-config.php
아래 부분을 방금 만든 DB 정보로 수정합니다.
define( 'DB_NAME', 'wpdb' );
define( 'DB_USER', 'wpuser' );
define( 'DB_PASSWORD', '강력한비밀번호!' );
define( 'DB_HOST', 'localhost' );
보안을 위해 테이블 접두사도 기본 wp_ 대신 다른 값으로 바꿔 주세요.
$table_prefix = 'customwp_';
웹서버가 파일을 읽을 수 있도록 권한을 설정합니다.
chown -R www-data:www-data /var/www/mysite
find /var/www/mysite -type d -exec chmod 755 {} \;
find /var/www/mysite -type f -exec chmod 644 {} \;
3-2. Nginx 서버 블록 설정
nano /etc/nginx/sites-available/mysite
server {
listen 80;
server_name example.com www.example.com; # iwinv에서 연결한 도메인으로 변경
root /var/www/mysite;
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.1-fpm.sock; # PHP 버전에 맞게 수정
}
location ~* \.(jpg|jpeg|png|gif|css|js|ico|svg)$ {
expires 30d;
access_log off;
}
location = /xmlrpc.php {
deny all;
}
}
사이트 설정을 활성화하고 Nginx 구문 검사를 한 뒤 재시작합니다.
ln -s /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
4. 워드프레스 설치 마법사 진행
브라우저에서 http://도메인또는서버IP로 접속하면 워드프레스 설치 화면이 나타납니다.
- 언어: 한국어 선택
- 사이트 제목, 관리자 아이디/비밀번호/이메일 설정
- 관리자 아이디는
admin대신 별도의 아이디를 사용하고, 비밀번호는 충분히 강하게 설정
설치가 완료되면 /wp-admin으로 접속해 관리자 대시보드에 로그인할 수 있습니다.
5. HTTPS(SSL) 설정 – Let’s Encrypt로 무료 인증서 적용
로그인 정보와 고객 정보가 오가는 쇼핑몰/회원제 사이트라면 HTTPS는 필수입니다. iwinv VPS에서도 Let’s Encrypt를 이용해 무료 SSL 인증서를 적용할 수 있습니다.
5-1. Certbot 설치
apt install certbot python3-certbot-nginx -y
5-2. 인증서 발급 & Nginx 자동 설정
certbot --nginx -d example.com -d www.example.com
- 이메일 입력 후 약관 동의
- HTTP를 HTTPS로 자동 리다이렉트할지 묻는 질문에는 리다이렉트(권장) 선택
인증서는 기본적으로 자동 갱신이 설정되며, 아래 명령으로 점검할 수 있습니다.
systemctl status certbot.timer
6. 서버 보안 기본 설정 (iwinv VPS 공통)
6-1. SSH 보안 강화
- /etc/ssh/sshd_config 편집:
nano /etc/ssh/sshd_config
Port 22→ 다른 포트(예: 2222)로 변경 (관리 편의를 위해 기록 필수)PermitRootLogin no설정으로 root SSH 로그인 금지- 가능하면
PasswordAuthentication no로 바꾸고 SSH 키 기반 로그인만 허용
systemctl reload sshd
SSH 포트 변경 후에는 새 포트로 접속 테스트를 꼭 먼저 해보고 기존 세션을 끊는 것이 안전합니다.
6-2. UFW 방화벽 설정
apt install ufw -y
ufw allow 2222/tcp # 변경한 SSH 포트
ufw allow 'Nginx Full' # 80, 443
ufw enable
ufw status
추가로, iwinv 콘솔에서 제공하는 보안 그룹/방화벽 설정이 있다면, 외부에서 들어오는 포트를 SSH, HTTP, HTTPS 정도로만 제한해 두면 더 안전합니다.
6-3. 서버 자동 업데이트 & 보안 패치
OS와 패키지 업데이트는 보안의 기본입니다.
apt install unattended-upgrades -y
dpkg-reconfigure unattended-upgrades
이후에는 정기적으로 SSH 접속 후
apt update && apt upgrade
를 실행해 Nginx, PHP, MariaDB, 커널 등을 최신 상태로 유지하는 습관을 들이세요.
7. 워드프레스 내부 보안 설정
7-1. 필수 보안 플러그인 & 기본 설정
- 대표적인 보안 플러그인 예:
- Wordfence Security
- Solid Security(iThemes Security)
- 로그인 시도 제한(브루트포스 차단) 설정 활성화
- 관리자 로그인 URL 변경 기능이 있다면
/wp-login.php대신 다른 경로로 변경 고려
7-2. 관리자 계정 & 파일 수정 제한
- admin 아이디는 사용하지 않거나, 다른 아이디로 교체
- 관리자 비밀번호는 주기적으로 변경하고, 2단계 인증 기능이 있다면 사용
wp-config.php에 아래 한 줄을 추가하면 관리자 화면에서 테마/플러그인 파일을 직접 수정할 수 없게 되어, 해킹 시 피해를 조금 줄일 수 있습니다.
define( 'DISALLOW_FILE_EDIT', true );
7-3. 정기 백업
- 플러그인(예: UpdraftPlus 등)을 사용해 파일 + DB를 주기적으로 다른 스토리지(예: 외부 스토리지, 다른 서버, 구글 드라이브)에 백업
- iwinv가 제공하는 스냅샷/이미지 백업 기능도 함께 활용하면 장애 복구에 유리
정리
요약하면, iwinv VPS에서 워드프레스를 운영할 때는
- 1) OS & LEMP 설치 → Nginx + PHP + MariaDB
- 2) 워드프레스 설치 & Nginx 가상 호스트 설정
- 3) Let’s Encrypt로 HTTPS 적용
- 4) SSH·방화벽·자동 업데이트 등 서버 보안 강화
- 5) 워드프레스 내부 보안 플러그인 + 계정/권한 관리 + 백업
이 5가지만 제대로 해도, 일반적인 웹호스팅보다 훨씬 유연하면서도 안전한 워드프레스 자사몰/블로그 환경을 iwinv VPS 위에 구축할 수 있습니다.
댓글