최근에 wordpress 테마를 변경하면서, 내부적으로 플러그인도 다수 설치/삭제 하였습니다.
덤으로 nginx 설정들도 수정하였죠.
그런데 이후 워드프레스가 정상적으로 작동하지 않더군요.
업데이트도 비정상이고,
플러그인도 비정상이었습니다.
재설치 하고 이 글을 작성하고 있는 시점에는 원인을 알아내긴 했지만, 그 당시에는 몰랐었죠.
어쩌면 새로 설치하기 이전의 wordpress에도 지금 알고 있는 해결방법을 적용하면 문제가 해결되었을 수도 있습니다.
하지만 그 때는 제가 몰라서 해결할 수 없었고,
캐시 적용한 그 당시 제 블로그보다 캐시 적용 안한 지금의 제 홈페이지가 더 빠른것 같아서 애써 만족하고 있습니다.
좀 더 일찍 알았으면 덜 귀찬았을 텐데, 싶으면서도 어쨋든 한번은 했어야 하는 일이라고 생각하면서 위로중입니다.
아무튼! 마이그레이션 할 때는 어떤 파일들, 어떤 데이터베이스를 마이그레이션 해야 하는지 알아보고
그 과정에서 제가 겪은 문제의 증상과 해결방법을 공유하려고 합니다.
새 WordPress 올리기
Nginx Docker 위에 wordpress 올릴때 겪은 문제
저는 Linuxserver.io의 nginx 위에 wordpress를 올렸습니다.
Docker 만들고, wordpress 올리는 것은 이 글에서는 공유하지 않겠습니다.
먼저 Nginx 독커를 구동시키면 nginx 폴더가 생성될텐데, 그 안의 www 폴더에 wordpress를 넣으면 됩니다.그러면 앞에 올린 이미지처럼 Site Kit 에러가 발생합니다.
증상
위 스크린샷 처럼 플러그인에서 문제가 발생하고
wordpress의 고유 주소 설정이 다음과 같을 때 게시물이 흰 화면만 나오는 문제가 있었습니다.
에러 로그나 웹 브라우저 콘솔을 보면 wp-json 에러가 발생한다고 합니다.
그래서 wp-json, wordpress REST API 같은 곳에서 404 에러가 나면 어떻게 해야하는지 찾아도 안나와요.
저는 이 블로그 파일을 그대로 litespeed에 올려서도 썼고, 아파치에도 올려썼으며
현재는 nginx에 올려서 사용하고 있습니다.
그래서 .htaccess가 litespeed와 apache httpd에서만 되는 것인줄도 모른채..
그것을 열심히 수정했죠.
Nginx에서는 .htaccess가 안됩니다.
콜라
해결방법
아주 간단합니다.
Linuxserver.io의 nginx로 설치했다면
/config/nginx/site-confs/default.conf는 이렇게 되어있습니다.
## 원본 전략
location / {
# enable for basic auth
#auth_basic "Restricted";
#auth_basic_user_file /config/nginx/.htpasswd;
try_files $uri $uri/ /index.html /index.php$is_args$args =404;
}
## 원본 후략
이 부분을 다음과 같게 바꿔줘야 합니다.
## 변경본 전략
location / {
# enable for basic auth
#auth_basic "Restricted";
#auth_basic_user_file /config/nginx/.htpasswd;
try_files $uri $uri/ /index.php$is_args$args;
}
## 변경본 후략
wordpress 파일 옮기기
wp-content/theme, wp-content/upload, wp-content/fonts만 옮겼습니다.
plugin은 설치된 플러그인 목록을 스크린샷 찍고, 새로 설치해줬어요.
Database 옮기기
먼저 phpMyAdmin이 준비되어있다고 가정하고 설명을 드리겠습니다.
phpMyAdmin으로 백업
먼저 혹시 모르니 모두 백업을 진행합니다.
게시물, 태그, 카테고리, 테마 설정 백업
posts, postmeta, terms, term_relationships, term_taxonomy
5가지 테이블만 선택해서 한번 더 백업 합니다.
새로운 데이터베이스에서 복원
이제 복원이 완료.. 되지 않았습니다.
문제점
하위 카테고리 안보이는 문제
카테고리가 이렇게 많이 있습니다.
새 카테고리 추가에서는 하위 카테고리들이 보이지만,
우측의 카테고리에는 보이지 않는 문제가 있습니다.
해결 방법은 간단합니다.
새 카테고리 추가에는 보이니까 하위 카테고리에 하위 카테고리를 하나 만들어주면 됩니다.
정리
nginx는 .htaccess가 작동하지 않는다. -> permalink를 위해서 nginx.conf에서 설정해줘야 한다. -> 플러그인 비정상 작동 문제를 해결할 수 있다.
DB 백업은 posts, postmeta, terms, term_relationships, term_taxonomy 5가지 테이블을 하면 된다.
하위 카테고리는 하위 카테고리에 하위 카테고리를 만들어주면 된다.
답글 남기기