다운로드

제목도메인 변경 자동 스크립트2026-03-10 00:05
작성자 Level 10
첨부파일change_domain.zip (0.8KB)
스크립트 개요

이 스크립트는 WordPress 서버의 도메인을 변경할 때 필요한 작업을 한 번에 자동으로 처리합니다.
DB 업데이트, Nginx 설정 수정, wp-config.php 동기화까지 모두 자동화됩니다.

실행 전 반드시 확인하세요
  • 실행 전 WordPress DB와 wp-config.php를 반드시 백업하세요.
  • sudo 권한이 필요합니다. 일반 사용자로 실행 시 오류가 발생합니다.
  • WP-CLI가 서버에 설치되어 있어야 합니다.
  • 도메인 DNS가 이미 서버 IP를 가리키고 있는 상태여야 정상 동작합니다.
STEP 1스크립트 다운로드 및 서버 업로드

아래 버튼으로 스크립트를 다운로드한 후, 서버의 /tmp 디렉토리에 업로드합니다.

bash — 서버에 파일 업로드
# 로컬에서 서버로 SCP 전송 (예시)
scp change_domain.sh user@your-server-ip:/tmp/

# 또는 서버에서 직접 다운로드
wget https://keytechcore.com/downloads/change_domain.sh -O /tmp/change_domain.sh
STEP 2실행 권한 부여
bash
chmod +x /tmp/change_domain.sh
STEP 3스크립트 실행

변경할 새 도메인을 인수로 넘겨 실행합니다. (www 없이 도메인만 입력)

bash — 실행 명령어
sudo bash /tmp/change_domain.sh newdomain.com
파라미터설명예시
$1 (필수)변경할 새 도메인 (www 제외)newdomain.com
스크립트 동작 순서
WordPress DB
siteurl / home 변경
wp-config.php
WP_HOME / WP_SITEURL 추가
Nginx conf
server_name 수정 후 reload
/tmp/wpadmin
URL 업데이트
각 단계 상세 설명
  • DB 업데이트 : WP-CLI로 siteurl, home 옵션을 새 도메인으로 변경합니다.
  • wp-config.php : WP_HOME / WP_SITEURL 상수가 없을 경우에만 자동 추가합니다. (중복 방지)
  • Nginx 설정 : /etc/nginx/conf.d/default.confserver_name을 새 도메인으로 교체하고 Nginx를 reload합니다.
  • /tmp/wpadmin : 해당 파일이 존재하는 경우에만 URL을 업데이트합니다. (선택적 처리)
정상 실행 시 출력 예시
[INFO] 새로운 도메인: newdomain.com
[INFO] WordPress 도메인 변경 중 (DB 업데이트)...
[INFO] Nginx 설정 수정...
[SUCCESS] 도메인 변경 완료!
접속 URL: http://newdomain.com
관리자 페이지: http://newdomain.com/wp-admin/
전체 스크립트 코드
bash — change_domain.sh
#!/usr/bin/env bash

# ============================================
# WordPress 도메인 변경 스크립트
# 사용법: sudo bash change_domain.sh mydomain.com
# ============================================
set -e

if [[ $# -ne 1 ]]; then
    echo "Usage: sudo bash $0 <new-domain>"
    exit 1
fi

NEW_DOMAIN=$1
WEB_ROOT="/home/www"
NGINX_CONF="/etc/nginx/conf.d/default.conf"

echo "[INFO] 새로운 도메인: $NEW_DOMAIN"

# 1. WordPress DB에서 siteurl, home 변경
echo "[INFO] WordPress 도메인 변경 중 (DB 업데이트)..."
sudo -u www-data wp option update siteurl "http://${NEW_DOMAIN}" --path=$WEB_ROOT
sudo -u www-data wp option update home "http://${NEW_DOMAIN}" --path=$WEB_ROOT

# 2. wp-config.php에 도메인 강제 적용 (중복 방지)
if ! grep -q "WP_HOME" $WEB_ROOT/wp-config.php; then
    echo "[INFO] wp-config.php에 WP_HOME / WP_SITEURL 추가..."
    cat <<EOL >> $WEB_ROOT/wp-config.php

// Added by change_domain.sh
define('WP_HOME', 'http://${NEW_DOMAIN}');
define('WP_SITEURL', 'http://${NEW_DOMAIN}');
EOL
fi

# 3. Nginx 설정 수정
if [[ -f $NGINX_CONF ]]; then
    echo "[INFO] Nginx 설정 수정..."
    sed -i "s|server_name .*;|server_name ${NEW_DOMAIN};|" $NGINX_CONF
    systemctl reload nginx
fi

# 4. /tmp/wpadmin 파일 업데이트 (존재하는 경우)
if [[ -f /tmp/wpadmin ]]; then
    echo "[INFO] /tmp/wpadmin 업데이트..."
    sed -i "s|http://.*|http://${NEW_DOMAIN}|g" /tmp/wpadmin
fi

echo "[SUCCESS] 도메인 변경 완료!"
echo "접속 URL: http://${NEW_DOMAIN}"
echo "관리자 페이지: http://${NEW_DOMAIN}/wp-admin/"
자주 묻는 질문
?
WP-CLI가 없다고 오류가 나요

WP-CLI가 설치되지 않은 경우 아래 명령어로 먼저 설치하세요.

bash — WP-CLI 설치
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
sudo chmod +x /usr/local/bin/wp
?
Nginx conf 경로가 다른 경우

스크립트 내 NGINX_CONF 변수 값을 실제 conf 경로로 수정한 후 실행하세요.

?
https로 변경하고 싶어요

SSL 인증서 설치 후, 스크립트 내 http://를 모두 https://로 변경하거나 Certbot으로 리디렉션을 설정하세요.

도메인 변경 후 확인 체크리스트
  • 브라우저에서 새 도메인으로 정상 접속되는지 확인
  • WordPress 관리자 > 설정 > 일반에서 URL이 올바른지 확인
  • 이미지, 미디어 파일 경로 정상 여부 확인
  • Nginx 오류 로그 확인: sudo tail -f /var/log/nginx/error.log
댓글
자동등록방지
(자동등록방지 숫자를 입력해 주세요)