(*)필수항목 생략
작업 실패
상태에서는 삭제할 수 없습니다
삭제 확인
삭제 후 복구할 수 없습니다
삭제
계속하기
취소
복사할 수 없는 상태입니다
상태를 붙여넣을 수 없습니다.
데이터가 없습니다
작업 완료
현재 .env로 .env-sites/{theme}/.env를 덮어쓰시겠습니까?
.env를 테마 폴더에 복사했습니다.
유효한 테마명을 입력해주세요.
현재 .env 파일이 없습니다.
대상 .env-sites 테마 폴더가 없습니다.
.env 파일을 복사하거나 확인하지 못했습니다.
API 요청이 실패했습니다. 확인해주세요
오브젝트 스토리지 연결에 실패했습니다. 버킷 이름과 접근 권한을 확인해주세요.
.env 설정을 저장하지 못했습니다. 입력값과 파일 쓰기 권한을 확인해주세요.
.env 설정을 저장했습니다.
미확인
연결 확인 중
연결 성공
연결 실패
자체 DB 또는 로깅 안 함은 Cloud 연결 테스트가 필요하지 않습니다.
D1 요청에 실패했습니다. 로그용 설정과 테이블 준비 여부를 확인해주세요.
D1 테스트 로그 테이블을 준비했습니다.
테스트 로그를 D1에 저장했습니다.
D1에서 최근 로그를 조회했습니다.
저장된 테스트 로그가 없습니다.
파일 업로드 중 오류가 발생했습니다.
KeywordHostSites는 10개까지 입력 가능합니다.
web-tracking 설정을 찾을 수 없습니다.
토큰이 존재하지 않습니다.
마지막 항목 라인에서 편집을 완료합니다.
상태에서는 위아래로 움직일 수 없습니다
작업을 수행하려면 해당 라인의 확인란을 클릭하세요.
마지막 항목 라인이 제거되었습니다.
숫자를 입력하세요
AgentToken이 만료되었거나 비어 있습니다.
친구키등록목록에 친구목록 정보를 등록해주세요
SeqNo가 중복되었습니다. 작업 실패
복사할 항목을 선택하세요.
REPORT_SERVER_URL이 구성되지 않아 PDF를 생성할 수 없습니다.
이메일 주소를 입력해주세요.
문자 수신번호를 입력해주세요.
문자 제목과 본문을 입력해주세요.
문자 제목을 입력해주세요.
문자 본문을 입력해주세요.
이 이메일을 사용할 수 있습니다.
이 이메일은 이미 사용 중입니다.
닉네임을 입력해주세요.
사용 가능한 닉네임입니다.
이미 사용 중인 닉네임입니다.
유니멤버와 패밀리사이트에서 모두 사용 가능한 닉네임입니다.
유니멤버에서 이미 사용 중인 닉네임입니다.
패밀리사이트에서 이미 사용 중인 닉네임입니다.
유니멤버와 패밀리사이트에서 모두 사용 중인 닉네임입니다.
닉네임 중복확인에 실패했습니다.
닉네임 중복확인을 완료해주세요.
휴대전화 인증을 완료해주세요.
회원필수 정보가 변경되었습니다.
패밀리사이트의 닉네임으로도 복사하고 변경하시겠습니까?
유니멤버와 패밀리사이트의 회원필수 정보가 변경되었습니다.
유니멤버 정보는 변경되었으나 패밀리사이트 정보 변경에 실패했습니다.
회원필수 정보 변경에 실패했습니다.
비밀번호가 변경되었습니다.
비밀번호 변경에 실패했습니다.
다보리에서 전송된 이메일의 인증번호를 확인하세요.
인증 메일 전송에 실패했습니다.
이메일 인증이 완료되었습니다.
이메일 인증을 완료해주세요.
이메일과 인증번호를 입력해주세요.
이메일 인증번호를 다시 발송해주세요.
이메일 인증번호를 다시 확인해주세요.
확인
성함을 입력해주세요.
휴대전화 번호를 입력해주세요.
휴대전화 인증번호를 전송했습니다.
휴대전화 인증번호 전송에 실패했습니다.
휴대전화 번호와 인증번호를 입력해주세요.
인증번호를 다시 발송해주세요.
휴대전화 인증번호를 다시 확인해주세요.
휴대전화 인증이 완료되었습니다.
비밀번호를 입력해주세요.
비밀번호 확인을 입력해주세요.
비밀번호와 비밀번호 확인이 일치하지 않습니다.
자리 이상으로 입력해주세요.
특수 문자를 포함해주세요.
대문자를 포함해주세요.
해당 지점에는 재고가 없습니다.
쿠폰 지원 예정(홈페이지 보류)
상품 상세페이지 URL을 입력해주세요.
쿠폰을 받으실 이메일 주소를 입력해주세요.
쿠폰 적용 약관에 동의하셔야 합니다.
CAPTCHA에서 로봇이 아닙니다를 확인해주세요.
라우터 생성 및 블로그/상품 구분 연결 확인
현재 테마 라우터를 생성한 뒤 메인메뉴의 블로그/상품 구분 연결을 확인하시겠습니까?
표시할 메뉴가 없습니다.
메뉴 트리를 불러오지 못했습니다.
폴더 경로를 입력해주세요.
폴리싱을 실행하시겠습니까? 원본 파일은 -polishing-ori로 보관됩니다.
복구를 실행하시겠습니까? -polishing-ori 파일이 원래 파일명으로 복구됩니다.
작업 중입니다. 완료될 때까지 기다려주세요.
이미지 폴리싱 작업이 완료되었습니다.
이미지 폴리싱 작업이 완료되었지만 일부 오류가 있습니다. 로그를 확인해주세요.
다운로드할 로그가 없습니다.
이미지 폴리싱 요청이 실패했습니다.
폴더 목록을 불러오지 못했습니다.
하위 폴더가 없습니다.
오늘 청구 대상 구독을 결제 큐에 생성하시겠습니까?
오늘 구독결제 큐 생성 쿼리가 실행되었습니다.
구독결제 큐 생성에 실패했습니다. list-type1-insert API, subscription/subs-queue 쿼리와 GateToken 권한을 확인해주세요.
선택한 티켓플로우를 찾지 못했습니다.
메타코어가 비어있습니다.
메타플로우 전개 확인
메타플로우 전개를 하시겠습니까?
선택한 프로젝트를 찾지 못했습니다.
이미 등록된 담당자입니다.
토스 결제수단 인증창을 열지 못했습니다. 잠시 후 다시 시도해주세요.
토스 테스트 키 형식을 확인했습니다.
ClientKey와 SecretKey에 토스 테스트 키를 입력해주세요.
반복 과금조건 저장에 실패했습니다. item-recur-act API 등록과 권한을 확인해주세요.
반복 과금조건 저장 응답에서 ID를 확인할 수 없습니다.
반복 과금조건 저장 후 재조회에 실패했습니다. item-recur-page API를 확인해주세요.
강의 정보 저장에 실패했습니다. item-class-act API 등록과 권한을 확인해주세요.
강의 정보 저장 응답에서 ID를 확인할 수 없습니다.
강의 정보 저장 후 재조회에 실패했습니다. item-class-page API를 확인해주세요.
PNG 이미지 파일만 업로드할 수 있습니다.
택소 이미지 업로드에 실패했습니다.
먼저 게시글을 저장해주세요.
저장할 관련기사가 없습니다.
검색 중입니다.
업로드 폴더와 R2 목록을 확인 중입니다.
파일 변경 여부를 비교 중입니다.
새 파일과 변경된 파일을 R2에 업로드 중입니다.
변경된 파일이 없어 업로드를 생략했습니다.
R2 폴더 업로드가 완료되었습니다.
R2 폴더 업로드에 실패했습니다.
업로드 {uploaded}개 · 동일 파일 {skipped}개 · 전체 {total}개
MediaDisk를 R2로 선택하고 공개 MediaUrl과 버킷·키를 입력해주세요.
워드프레스 웹호스팅
- Home
- 워드프레스 웹호스팅
[워드프레스-웹호스팅] 워드프레스 홈페이지 서버 이전 작업 가이드: 플러그인, 테마 및 DB 완벽 이관법
[워드프레스-웹호스팅] 워드프레스 홈페이지 서버 이전 작업 가이드: 플러그인, 테마 및 DB 완벽 이관법
안녕하세요. 웹 시스템 아키텍트이자 데이터베이스 엔지니어 관점에서 워드프레스 서버 이관(Migration)을 안정적이고 효율적으로 수행하는 핵심 가이드를 공유합니다.
보통 워드프레스 이관 시 DB는 내보내기/가져오기(Export/Import)를 통해 비교적 쉽게 옮기지만, "플러그인과 테마는 어떻게 안전하게 옮겨야 하는가?"에 대한 의문과 "이전 후 절대경로 깨짐 현상"으로 고생하는 경우가 많습니다. 본 포스팅에서 그 명확한 해법을 단계별로 정리해 드립니다.
1. 플러그인과 테마는 어떻게 옮기나요?
결론부터 말씀드리면, 플러그인과 테마는 DB 임포트 방식이 아닌 파일 시스템 직접 백업 및 업로드(FTP/SSH) 방식을 사용하는 것이 가장 안전합니다.
워드프레스의 디렉터리 구조상 핵심 소스 코드는 다음과 같이 격리되어 있습니다.
테마 경로: /wp-content/themes/
플러그인 경로: /wp-content/plugins/
업로드 미디어 경로: /wp-content/uploads/
실무 추천 이관 프로세스
기존 서버 백업: 기존 웹 서버의 /wp-content/ 디렉터리 전체를 타르볼(tar.gz)이나 zip 파일로 압축하여 다운로드합니다. (디렉터리 통째로 FTP 다운로드를 하면 수많은 잔여 파일로 인해 속도가 느리고 파일이 누락될 수 있으므로 서버단 압축을 권장합니다.)
신규 서버 호스팅 업로드: 새 서버의 동일한 경로(wp-content)에 압축 파일을 업로드한 후 압축을 해제합니다.
권한 설정 (Linux 환경): 이관 후 플러그인 업데이트나 미디어 업로드가 원활하도록, 웹 서버 사용자 계정(예: nginx 또는 apache)에 맞게 소유권과 권한을 재설정합니다.
Bash
chown -R nginx:nginx /var/www/html/wp-content
find /var/www/html/wp-content -type d -exec chmod 755 {} \;
find /var/www/html/wp-content -type f -exec chmod 644 {} \;
2. 데이터베이스(DB) 이관 및 URL 환경변수 변경
DB를 신규 데이터베이스에 임포트한 직후에는 반드시 워드프레스가 새로운 서버 환경을 인식하도록 기본 도메인 설정을 변경해야 합니다.
[Step 1] wp_options 테이블 수정
새 서버의 DB 관리 도구(phpMyAdmin 또는 CLI)에 접속하여 wp_options 테이블의 두 가지 핵심 옵션 값을 신규 도메인(또는 신규 IP 주소)으로 변경합니다.
공식 문서 참고: 워드프레스의 도메인 변경 및 사이트 주소 제어에 대한 보다 상세한 메커니즘은 워드프레스 공식 문서인 Codex: Changing The Site URL에서 확인할 수 있습니다.
3. 절대경로 URL 깨짐 현상 방지 및 재설정
많은 작업자들이 가장 곤란을 겪는 단계입니다. 워드프레스는 내부적으로 포스팅 콘텐츠(wp_posts)나 테마/플러그인 설정 데이터 내에 상대경로가 아닌 절대경로(예: http://old-domain.com/image.png)를 그대로 저장하는 경향이 있습니다.
도메인이 변경되면 이 절대경로들로 인해 이미지 엑박(Link Broken)이나 스타일시트 로드 에러가 발생합니다. 게다가 일부 플러그인은 데이터를 직렬화(Serialized Data)하여 저장하므로, 단순 DB 텍스트 치환(REPLACE SQL문)을 쓰면 데이터 구조가 깨질 수 있습니다.
전문가의 해결 팁: WP-CLI 또는 전용 플러그인 활용
안전한 직렬화 데이터 치환을 위해 Better Search Replace 플러그인을 임시로 설치하거나, 서버 터미널에서 WP-CLI 명령어를 사용하는 것을 강력히 권장합니다.
Bash
# WP-CLI를 이용한 안전한 도메인 일괄 변경 예시
wp search-replace 'http://구도메인.com' 'https://신도메인.com' --skip-columns=guid
이 과정을 거치면 wp_posts 내 본문 텍스트는 물론, 테마 옵션에 절대경로로 박혀있던 레코드들까지 완벽하게 신규 도메인으로 컨버팅됩니다.
4. 실제 사이트 구동 확인 및 디버깅
이관의 마지막 단계는 철저한 검증입니다.
브라우저 개발자 도구(Inspector) 활용: 새 도메인으로 접속한 후 F12를 눌러 Console 탭과 Network 탭을 확인합니다. 여전히 이전 서버의 URL을 호출하려다 발생하는 404 Not Found 에러나 Mixed Content(HTTP/HTTPS 혼재) 에러가 있는지 하나씩 전수 조사하여 수정합니다.
고유주소(Permalink) 재저장: 이관 직후 글 상세 페이지가 404 에러를 뿜는다면, 워드프레스 관리자 페이지 -> 설정 -> 고유주소(Permalink) 메뉴로 이동하여 아무것도 변경하지 않고 [변경사항 저장] 버튼을 한번 눌러줍니다. 이 과정을 통해 .htaccess 또는 Nginx의 라우팅 규칙 파일이 새 서버 환경에 맞게 재정역됩니다.
▶ 개인정보의 수집 및 이용목적
- 서비스 이용에 따른 본인식별, 실명확인, 가입의사 확인, 서비스이용
- 신규 서비스 등 최신정보 안내 및 개인맞춤서비스 제공을 위한 자료
- 기타 원활한 양질의 마케팅 서비스 제공 등
▶ 수집하는 개인정보의 항목
- 이름, 이메일, 핸드폰번호, 그 외 선택항목
▶ 개인정보의 보유 및 이용기간
- 원칙적으로 개인정보의 수집 또는 제공받은 목적 달성 시 지체 없이 파기합니다.
- 다만, 원활한 서비스의 상담을 위해 상담 완료 후 내용을 1년간 보유할 수 있으며 소비자보호에 관한 법률 등 타법률에 의해 보존할 필요가 있는 경우에는 일정기간 보존합니다.
댓글쓰기