내부 IP로 WordPress를 설치하면 home, siteurl 값이 그 IP로 저장되어 외부에서 접속할 수 없습니다. MySQL에서 wp_options와 게시글·메타 데이터의 주소를 새 도메인으로 바꿔 해결했습니다.
1. 증상과 원인
WordPress는 초기 설치할 때 접속한 주소를 사이트 주소(home, siteurl)로 저장합니다. 예를 들어 192.168.0.10 같은 내부 IP로 접속해 설치하면 그 IP가 사이트 주소가 되므로, 외부에서 접속하면 연결되지 않거나 에러가 발생합니다.
주의: 데이터베이스를 직접 수정하므로 작업 전에 반드시 백업해 두세요.
2. 해결
2.1 MySQL 접속
WordPress가 사용하는 계정으로 MySQL에 접속합니다.
mysql -u wordpress -p wordpress
2.2 현재 값 확인
SELECT option_id, option_name, option_value FROM wp_options WHERE option_name IN ('home', 'siteurl');
2.3 주소 변경
사이트 주소와 함께 게시글 GUID, 본문, 메타 데이터에 남은 이전 주소도 바꿉니다. old.example.com에는 이전 주소, new.example.com에는 새 도메인을 넣습니다.
UPDATE wp_options SET option_value = 'http://new.example.com' WHERE option_name IN ('home', 'siteurl');
UPDATE wp_posts SET guid = replace(guid, 'http://old.example.com', 'http://new.example.com');
UPDATE wp_posts SET post_content = replace(post_content, 'http://old.example.com', 'http://new.example.com');
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://old.example.com', 'http://new.example.com');
3. 결과
2.2의 SELECT를 다시 실행하면 home과 siteurl이 새 주소로 바뀌어 있고, 외부에서도 접속됩니다.
4. 정리
- WordPress는 설치 시 접속한 주소를 home, siteurl로 저장합니다.
- 주소를 바꿀 때는 wp_options뿐 아니라 wp_posts, wp_postmeta의 이전 주소도 함께 바꿉니다.
- DB를 직접 수정하므로 작업 전에 백업합니다.
사용한 명령어는 아래 파일에 정리해 두었습니다.
728x90
'Web > WordPress' 카테고리의 다른 글
| [WordPress] 리버스 프록시 뒤에서 HTTPS 적용하기 (0) | 2021.11.01 |
|---|
서울
--:--:--
-전체 글
-카테고리
오늘 방문