워드프레스 서버 이전하기: WordPress Migration 작업

워드프레스 사이트를 직접 AWS LightSail에서 관리하기 위해 워드프레스 서버 이전 작업을 진행하게 되었습니다.

서버 이전을 진행하게 된 이유는

  • 워드프레스 서버 이전 이유
  • 리눅스 서버에서 원하는 캐시 사용, 한국 위치 기반 웹사이트 속도 향상
  • 한국 서버 이용으로 속도와 위치 기반 SEO 향상
  • 서버 직접 관리를 통한 비용 절감
  • 원하는 대로 서버 커스터마이징

위와 같은 이유 외 다양한 이유로 서버 이전을 결정하게 되었습니다.

1. 워드프레스 서버 이전을 위한 기존 서버 SSH 접속

먼저 이용하는 호스팅 업체의 SSH 접속을 통해 DB 계정과 비밀번호 및 데이터 백업을 진행합니다.

사용하는 호스팅 업체의 관리자 페이지에서 데이터 및 DB 백업 파일을 만들 수 있지만 본인이 이용하는 호스팅 업체에서 백업 파일 생성 및 다운로드는 누구나 쉽게 할 수 있기 때문에 주로 SSH 접속 후 작업하는 방향으로 작성된 내용임을 참고하여 주시기 바랍니다.

1.1 데이터 백업

워드프레스 데이터가 들어 있는 루트 폴더(보통 www 또는 html)의 .tgz 확장자로 백업을 진행합니다.

~]$ tar cfzp 파일명.tgz  www/
~]$ ll 파일명.tgz
-rw-rw-r--  1 suxxxx suxxxx 125 Jul 24 11:01 파일명.tgz

1.2 wp-config.php 파일 관리자 정보 확인 및 DB 백업

관리자 페이지에서 DB 계정과 비밀번호를 확인할 수 있겠지만 직접 확인하는 방향으로 진행합니다. 루트 폴더의 wp-config.php 파일을 열어보면 DB 정보를 확인할 수 있습니다.

▼ DB 계정 및 비밀번호 xxxx 표시 필요.

~]$ vi www/wp-config.php

// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'su1ktvw_fiun' );

/** Database username */
define( 'DB_USER', 'su1ktvw_fiun' );

/** Database password */
define( 'DB_PASSWORD', '@]pU4u9QS3' );

/** Database hostname */
define( 'DB_HOST', 'localhost' );

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8mb4' );

/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );
:q!

~]$ mariadbdump -u(DB아이디) -p (DB네임) > 저장 할 파일명.sql

정보를 확인했으니 mysqldump 명령어로 파일을 저장합니다. db 아이디와 db 네임은 보통 동일하게 설정하며 다를 경우 이용 중인 호스팅 업체에 확인합니다. 보통 DB 권한을 다 부여 받지 못해 본인이 직접 루트 권한으로 접속 가능한 서버에서 사용하면 되겠습니다. sql 확장자의 파일을 관리자 페이지에서 다운로드 받습니다.

2. 이전할 서버: root 권한을 가진 서버 접속(Ex: AWS LightSail)

호스팅 계정 생성 및 DB 계정을 생성해 줍니다.

2.1 호스팅 계정 생성 및 백업 파일 복원

useradd 명령어를 사용합니다. 아파치 그룹 설정을 nobody로 설정해서 그룹을 nobody로 설정 후 진행했습니다.

~]# useradd 호스트계정 -g nobody
~]# passwd  호스트계정 # 비밀번호 설정
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
~]# cd /home/호스팅계정/
~]# chmod 701 ./ # 퍼미션 700을 701로 설정
~]# tar xzfp 파일명.tgz # 압축 풀기
~]# chown -R 호스팅계정.nobody www/ # 유저 및 그룹 권한을 다시 재설정

2.2 DB 계정 생성

## DB 관리자 접속 ## 
]# mariadb -u root -p 
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2860
Server version: 11.3.2-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use mysql;
MariaDB [mysql]>  GRANT ALL PRIVILEGES ON 데이터베이스명.테이블명 TO 사용자@'호스트' IDENTIFIED by '생성할 DB 패스워드';
MariaDB [mysql]>  FLUSH PRIVILEGES;

2.2.1 DB 백업 파일 복원

]# mariadb  -utozisin -p tozisin < softsql.sql
mariadb -u(DB아이디) -p (DB네임) < 저장  파일명.sql

2.3 DB 이름 및 패스워드 변경하기

DB 이름 및 DB 유저 그리고 패스워드가 기존 서버와 다른 경우 변경을 해 줍니다. ①wp-config.php 파일에서 정보 수정, ②phpMyAdmin 또는 HeidSQL 등의 프로그램을 이용해서 DB에 접속 해 줍니다.

3. 에러 메시지 확인: There has been a critical error on this website.

[Learn more about troubleshooting WordPress.] 라는 에러 메시지가 확인되어 .htaccess 파일을 기본 Default로 변경했지만 발생된 에러가 해결되지 않아

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

wp-config.php에서 ‘WP_DEBUG’ 파일 false 값을 true로 변경 후 상태를 확인 해 봤습니다.

사용하는 해외 호스팅 업체의 플러그인이 문제인 것으로 파악되어,

워드프레스 서버 이전 작업 중 에러

원본에 없던 ‘object-cache.php’ 파일 삭제를 진행했습니다.

/home/tozisin/www/wp-content/object-cache.php

이후 메시지는 해당 경로의 ‘cdn-cache-admin.php’ 파일 삭제를 진행했습니다.

There has been a critical error on this website 이후 cdn 캐시 파일

동일한 오류가 발생하여 괸련 된 파일들을 추가로 삭제 했습니다.

~]# rm -f cdn-cache-management.php
~]# rm -rf cdn-cache-management/

4. 사진 엑박 문제

글에 올라온 사진이 엑박 문제가 확인되어..(웹사이트에서는 문제 없지만 관리자 페이지의 글 수정을 눌렀을 때) ssl을 설치해서 해결 되었습니다.

✅ WordPress Migration 작업 완료

정상적으로 워드프레스 서버 이전 작업(WordPress Migration)이 완료되어 사이트가 정상적으로 뜨는 것을 확인했습니다. 관리자 페이지에 들어가서 제 서버에서는 사용하지 않는 ‘Redis Object Cache‘ 플러그인은 삭제를 진행했습니다.

Similar Posts

  • WP CLI: 설치 및 설정 | 워드프레스에서 WP CLI를 사용하는 이유

    워드프레스 사이트를 관리할 때, 리눅스 서버에 직접 SSH로 접속할 수 있고 root 권한까지 보유하고 있다면, WP CLI의 필요성을 크게 체감하지 못 할 수 있습니다. 리눅스의 기본 Command Line Interface는 이미 모든 기능을 제공할 정도로 편리하지만, 워드프레스 사이트를 운영하면서 가끔 씩 WP CLI가 언급됩니다. 자주 언급되는 이유는 단순한 명령어의 대체가 아닌 워드프레스에 특화된 자동화와…

  • [WP] 워드프레스 크론을 리눅스 크론으로 교체하기

    워드프레스 크론을 말하기 전에 먼저 크론(cron)에 대해 확인해 보겠습니다. 크론은 자동화 된 예약 시스템입니다. 정해진 시간에 작업을 수행하게끔 지정된 프로그램입니다. 리눅스에서 항상 실행중인 프로그램을 뜻 하는 데몬(daemon)은 백그라운드에서 여러가지 작업을 합니다. 데몬 중에 크론이 있다고 보면 됩니다. 목차1. 워드프레스 서버 이전을 위한 기존 서버 SSH 접속1.1 데이터 백업1.2 wp-config.php 파일 관리자 정보 확인…

  • 워드프레스 “There has been a critical error on your website” 오류 원인과 해결 과정

    워드프레스 관리자 페이지에서 작업 중 다른 페이지는 문제가 없었으나 [업데이트] 페이지를 접속하면 “there has been a critical error on your website. please check your site admin email inbox for instructions.” 오류 메시지가 확인 되었습니다. 워드프레스 “웹사이트에 치명적인 오류가 있습니다.”와 같은 문제 발생 시 빠른 해결 방법은 바로 원인 파악을 하는겁니다. 목차1. 워드프레스 서버…

  • 워드프레스 RSS 피드 개수 설정 및 피드 주소 확인

    워드프레스에서 RSS 피드 설정과 주소 확인 방법에 대해 알아 보겠습니다. 워드프레스의 기본 RSS 피드 개수는 10개로 설정되어 있으며 늘리거나 줄일 수 있습니다. 먼저 워드프레스 RSS 피드 개수 설정 방법입니다. 목차1. 워드프레스 서버 이전을 위한 기존 서버 SSH 접속1.1 데이터 백업1.2 wp-config.php 파일 관리자 정보 확인 및 DB 백업2. 이전할 서버: root 권한을 가진…

  • W3 Total Cache 속도 테스트

    워드프레스 캐시 플러그인 중 W3 Total Cache는 10년 넘게 꾸준한 인지도를 가지고 있는 플러그인입니다. 다만, 최근 몇 년간은 업데이트가 좀 뜸해지고, UI도 복잡해서 초보자들이 사용하기 어렵다는 평가도 많습니다. 높은 인지도를 가진 W3 Total Cache 속도 테스트를 통해, 이 플러그인이 어떻게 페이지 캐시, 데이터베이스 캐시, 오브젝트 캐시, 브라우저 캐시 등 여러 캐시 유형을 활용했을…

  • [WP] CMS란? 콘텐츠 관리 시스템 정의와 요구 사항 9가지

    인터넷 비즈니스를 한다면 알아야 할 여러가지 용어가 많이 있습니다. SEO, CDN, Hosting Server, Rich Snippets 등 온라인을 이용한 전자상거래 사이트, 블로그 등의 웹 사이트를 운영한다면 어느 정도의 지식이 있을 경우 같은 업종의 경쟁자보다 우위에 설 수 있기 때문입니다. 인터넷 비즈니스를 한다면 한번 쯤 CMS에 대한 용어를 인터넷 비즈니스를 하면서 들어 봤을 가능성이 큽니다….

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 5   +   2   =