티스토리 뷰
업무용으로 운용 중인 워드프레스 서버가 있었는데 제대로 작동하지 않는 난감한 상황입니다.
희한하게 접속 페이지가 /wp-admin/install.php 로 잡혀있네요?
딱히 아파치 설정을 건드린 것도 없고 이상도 없는 것 같은데
불행중 다행인지 사이트 접속만 안되고
실제 사이트 유저 정보와 게시글 정보 담긴 데이터베이스는 문제가 없는 것 같습니다.
이참에 운용중인 사이트의 마이그레이션(이전) 작업에 도전해봅시다.
0. 기존 서버에서 mysql 백업하기
- 제 경우에는 기존 서버에서 phpMyAdmin 을 이용하고 있었습니다.
[기존 url]/phpMyAdmin/index.php 로 접속합니다.
- 기존 서버의 phpMyAdmin 계정 정보 확인
: WordPress 설치 디렉터리 내에 있는 wp-config.php 파일을 열고 아래 내용을 확인
/** WordPress 데이터베이스의 이름 */
define('DB_NAME', 'your_database_name');
/** MySQL 데이터베이스 사용자 이름 */
define('DB_USER', 'your_database_user');
/** MySQL 데이터베이스 암호 */
define('DB_PASSWORD', 'your_database_password');
/** MySQL 호스트 이름 */
define('DB_HOST', 'your_database_host');
- wordpress 테이블을 sql 문으로 추출후 저장
1. 기존 서버의 사이트 정보 파일 다운로드
wp-content 폴더를 압축 저장 후 이전, 주로 /var/www/wordpress/wp-content 에 위치
tar.gz 로 압축 후 로컬에 백업 또는 s3 bucket 에 업로드
2. 이제 이전할 새 서버에 AMP(Apache, MariaDB, PHP)를 설치해야 합니다.
aws 자습서 또는 관련 문서를 참고합시다.
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-lamp-amazon-linux-2023.html
2. 기존에 php-myadmin 을 통해서 백업스크립트를 추출했기 때문에
이번에도 php-myadmin 을 설치해서 복구스크립트를 동작시킬 겁니다.
따라서 php-myadmin 까지 설치해줍니다.
3. 이전할 서버에 wordpress 를 설치하고 초기상태를 마련해놓습니다.
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/hosting-wordpress-aml-2023.html
4. 백업 받아둔 wordpress- content 파일과 sql 스크립트를 새 서버로 이전
[ec2-user@ip-172-31-35-1 html]$ wget https://smc-secu-potal-backup.s3.ap-northeast-2.amazonaws.com/wp-content.tar.gz
--2023-11-25 07:28:55-- https://smc-secu-potal-backup.s3.ap-northeast-2.amazonaws.com/wp-content.tar.gz
Resolving smc-secu-potal-backup.s3.ap-northeast-2.amazonaws.com (smc-secu-potal-backup.s3.ap-northeast-2.amazonaws.com)... 3.5.141.169, 3.5.142.147, 3.5.144.10, ...
Connecting to smc-secu-potal-backup.s3.ap-northeast-2.amazonaws.com (smc-secu-potal-backup.s3.ap-northeast-2.amazonaws.com)|3.5.141.169|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4181121519 (3.9G) [application/x-gzip]
Saving to: ‘wp-content.tar.gz’
wp-content.tar.gz 100%[==========================================================>] 3.89G 61.1MB/s in 64s
2023-11-25 07:29:59 (62.7 MB/s) - ‘wp-content.tar.gz’ saved [4181121519/4181121519]
[ec2-user@ip-172-31-35-1 html]$
[ec2-user@ip-172-31-35-1 html]$ wget https://smc-secu-potal-backup.s3.ap-northeast-2.amazonaws.com/wordpress+(1).sql
--2023-11-25 07:31:12-- https://smc-secu-potal-backup.s3.ap-northeast-2.amazonaws.com/wordpress+(1).sql
Resolving smc-secu-potal-backup.s3.ap-northeast-2.amazonaws.com (smc-secu-potal-backup.s3.ap-northeast-2.amazonaws.com)... 52.219.146.58, 52.219.204.6, 52.219.204.30, ...
Connecting to smc-secu-potal-backup.s3.ap-northeast-2.amazonaws.com (smc-secu-potal-backup.s3.ap-northeast-2.amazonaws.com)|52.219.146.58|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 21913283 (21M) [binary/octet-stream]
Saving to: ‘wordpress+(1).sql’
wordpress+(1).sql 100%[==========================================================>] 20.90M 121MB/s in 0.2s
2023-11-25 07:31:12 (121 MB/s) - ‘wordpress+(1).sql’ saved [21913283/21913283]
[ec2-user@ip-172-31-35-1 html]$
5. wp-content 폴더 교체
[ec2-user@ip-172-31-35-1 wordpress]$ mv wp-content wp-content-bakcup
[ec2-user@ip-172-31-35-1 wordpress]$ tar -zxvf wp-content.tar.gz
[ec2-user@ip-172-31-35-1 wordpress]$ ll
total 4083372
-rw-r--r--. 1 ec2-user apache 405 Feb 6 2020 index.php
-rw-r--r--. 1 ec2-user apache 19915 Jan 1 2023 license.txt
-rw-r--r--. 1 ec2-user apache 7399 Jul 5 17:41 readme.html
-rw-r--r--. 1 ec2-user apache 7211 May 12 2023 wp-activate.php
drwxr-sr-x. 9 ec2-user apache 16384 Nov 9 00:45 wp-admin
-rw-r--r--. 1 ec2-user apache 351 Feb 6 2020 wp-blog-header.php
-rw-r--r--. 1 ec2-user apache 2323 Jun 14 14:11 wp-comments-post.php
-rw-r--r--. 1 ec2-user apache 3013 Feb 23 2023 wp-config-sample.php
-rw-r--r--. 1 ec2-user apache 3286 Nov 25 07:50 wp-config.php
drwxr-sr-x. 7 ec2-user apache 110 Oct 5 06:08 wp-content
drwxr-sr-x. 4 ec2-user apache 52 Nov 9 00:45 wp-content-bakcup
-rw-r--r--. 1 ec2-user apache 4181121519 Nov 25 06:34 wp-content.tar.gz
-rw-r--r--. 1 ec2-user apache 5638 May 30 18:48 wp-cron.php
drwxr-sr-x. 27 ec2-user apache 16384 Nov 9 00:45 wp-includes
-rw-r--r--. 1 ec2-user apache 2502 Nov 26 2022 wp-links-opml.php
-rw-r--r--. 1 ec2-user apache 3927 Jul 16 12:16 wp-load.php
-rw-r--r--. 1 ec2-user apache 50924 Sep 29 22:01 wp-login.php
-rw-r--r--. 1 ec2-user apache 8525 Sep 16 06:50 wp-mail.php
-rw-r--r--. 1 ec2-user apache 26409 Oct 10 14:05 wp-settings.php
-rw-r--r--. 1 ec2-user apache 34385 Jun 19 18:27 wp-signup.php
-rw-r--r--. 1 ec2-user apache 4885 Jun 22 14:36 wp-trackback.php
-rw-r--r--. 1 ec2-user apache 3154 Sep 30 07:39 xmlrpc.php
[ec2-user@ip-172-31-35-1 wordpress]$ rm wp-content.tar.gz
6. mysql 복원 스크립트 실행
근데 업로드 파일 크기 제한에 걸림..
/etc/php.ini 에서 아래 설정값을 수정해주자.
upload_max_filesize = 200M
근데 안먹힌다. phpMyAdmin 의 설정값도 수정해줘야 하나보다.
차라리 mysql 에서 직접 스크립트를 실행해주자
[ec2-user@ip-172-31-35-1 html]$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 168
Server version: 10.5.20-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 wordpress-db
Database changed
MariaDB [wordpress-db]>
MariaDB [wordpress-db]> source /var/www/html/wordpress_restore.sql;
Query OK, 0 rows affected (0.000 sec)
Query OK, 0 rows affected (0.000 sec)
Query OK, 0 rows affected (0.000 sec)
...
7. 대충 아무테마나 입혀주면 기존의 콘텐츠가 되살아난 게 보인다.
※ 사실 기존 wordpess 폴더를 통째로 백업해놓았으면 플러그인이나 게시판 깨지는 것 없이
그냥 풀 백업, 풀 리스토어가 될 일인데 거기까지는 못 챙기는 바람에 부분 복구만 되었다.
마이그레이션 테스트를 미뤄놓고 있는 동안 그냥 웹서버 장애에서
서버 본체 장애로 까지 확대된 덕분에 콘텐츠 백업 본외
기존 워드프레스 구성 파일들을 받는건 불가능 해졌음.
이참에 동아리 애들한테 사이트 관리 맡기면서 디자인도 재편하고
발행글과 서브메뉴도 하나하나씩 재편해야 할듯
기말 이후 때까지 기다릴 수가 없어서 결국 내가 다했다..
하다보니 자잘한 에러가 많아서 어차피 내가 안했으면 안됬음.
그래도 인스턴스 이미지 떠서 공유시켜서 동아리 애들한테 장애복구의 뜨거운 맛을 보여줄 수는 있겠다.
덕분에 그나마 워드프레스 버전은 최신판으로 올렸다.
인스턴스 재부팅 후 도메인 변경으로 접속이 원할치 않다.
꼭 워드프레스 dns 재설정 해주자.
'수업 노트 > aws 활용' 카테고리의 다른 글
키페어를 사용하지 않고 아이디, 패스워드로 aws ec2 ssh 이용하기 (0) | 2023.11.25 |
---|---|
aws 에서 도메인, ssl 인증서 발급 및 적용하기 (1) | 2023.11.25 |
aws 에 워드프레스 구축하기 (2) | 2023.11.04 |
- Total
- Today
- Yesterday
- tar
- OpenSSL
- 웹보안공부
- 풀이
- Strings
- SSL
- gz
- grep
- X32
- bz2
- Linux
- 리눅스
- Natas
- OverTheWire
- HTTPS
- java
- natas7
- Encode
- 32bit
- 리터럴
- 웹보안
- Bandit
- solution
- ssh
- tr
- over the wire
- 압축파일
- nc
- find
- BASE64
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |