ⓘ
스크립트 개요
이 스크립트는 WordPress 서버의 도메인을 변경할 때 필요한 작업을 한 번에 자동으로 처리합니다.
DB 업데이트, Nginx 설정 수정, wp-config.php 동기화까지 모두 자동화됩니다.
⚠
실행 전 반드시 확인하세요
- 실행 전 WordPress DB와 wp-config.php를 반드시 백업하세요.
sudo 권한이 필요합니다. 일반 사용자로 실행 시 오류가 발생합니다.
- WP-CLI가 서버에 설치되어 있어야 합니다.
- 도메인 DNS가 이미 서버 IP를 가리키고 있는 상태여야 정상 동작합니다.
STEP 1스크립트 다운로드 및 서버 업로드
아래 버튼으로 스크립트를 다운로드한 후, 서버의 /tmp 디렉토리에 업로드합니다.
scp change_domain.sh user@your-server-ip:/tmp/
wget https://keytechcore.com/downloads/change_domain.sh -O /tmp/change_domain.sh
STEP 2실행 권한 부여
chmod +x /tmp/change_domain.sh
STEP 3스크립트 실행
변경할 새 도메인을 인수로 넘겨 실행합니다. (www 없이 도메인만 입력)
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
→
ⓘ
각 단계 상세 설명
- DB 업데이트 : WP-CLI로
siteurl, home 옵션을 새 도메인으로 변경합니다.
- wp-config.php : WP_HOME / WP_SITEURL 상수가 없을 경우에만 자동 추가합니다. (중복 방지)
- Nginx 설정 :
/etc/nginx/conf.d/default.conf의 server_name을 새 도메인으로 교체하고 Nginx를 reload합니다.
- /tmp/wpadmin : 해당 파일이 존재하는 경우에만 URL을 업데이트합니다. (선택적 처리)
정상 실행 시 출력 예시
[INFO] 새로운 도메인: newdomain.com
[INFO] WordPress 도메인 변경 중 (DB 업데이트)...
[INFO] Nginx 설정 수정...
[SUCCESS] 도메인 변경 완료!
접속 URL: http://newdomain.com
관리자 페이지: http://newdomain.com/wp-admin/
전체 스크립트 코드
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
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가 설치되지 않은 경우 아래 명령어로 먼저 설치하세요.
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