Skip to content

WordPress migration - CentOS 6 to CentOS 7

기존에 VMWare workstation 위의 CentOS 6.7 기반에서 운영중이던 블로그 서버를 WMWare ESXi - CentOS 7.2 기반으로 마이그레이션을 하였다.

OS를 CentOS 7.2로 새로 설치 후 기존의 워드프레스 엔진, 파일, DB 데이터를 그대로 복사해서 올렸다.

 

0. 환경 비교

1) AS-IS :
Hyper Visor : VMWare Workstation 12 Pro
VM CPU : 2 Core
VM MEM : 3G
Guest OS : CentOS 6.7 x86_64
Apache : httpd-2.2.15-54.el6.centos.x86_64
DB : MariaDB-server-5.5.42-1.el6.x86_64
PHP : php-5.3.3-40.el6_6.x86_64
Samba : samba-3.6.23-20.el6.x86_64

 

2) TO-BE :
Hyper Visor : VMWare ESXi 5.5
VM CPU : 2 Core
VM MEM : 2G
Guest OS : CentOS 7.2 x86_64
Apache : httpd-2.4.6-40.el7.centos.4.x86_64
DB : mariadb-server-5.5.50-1.el7_2.x86_64
PHP : php-5.4.16-36.3.el7_2.x86_64
Samba : samba-4.2.10-7.el7_2.x86_64

 

1. OS 설치

CentOS 7.2를 minimal ISO로 설치 한다.

설치 과정은 간단하기 때문에 생략하고 아래 사항만 고려해서 설치한다.

 

1.1. Disk 할당

VMWare ESXi 5.5에서 Disk를 두개를 할당 했다. 

12G - OS 및 DB 데이터 영역 (SSD에 위치)

100G - 데이터 영역 (HDD에 위치)

 

1.2. CentOS 7.2 설치

1) 파티셔닝

파티셔닝을 수동으로 진행하며, 아래처럼 4개의 영역으로 구성한다.

/boot - 384M ( xfs _ /dev/sda1)

/ - 11G (LVM, xfs _ /dev/vg01/root)

swap - 512M (swap 파일시스템)

/tmp - 122M (LVM, xfs _ /dev/vg01/tmp)

2) 기타 설정

- 언어 : 한국어

- 보안 policy는 미적용

- kdump : disable

- root 암호 설정

 

1.3. Selinux 설정, 패키지 설치

OS를 설치하고 재부팅 후 아래와 같이 진행.

1) selinux disable

2) 패키지 설치

3) 패키지 최신으로 업데이트

4) 재부팅

 

2. 파일시스템 생성, 설정

2.1. home 볼륨 생성

2.2. tmp 볼륨 마운트 옵션 조정

tmp 파티션에 대해 noexec, nosuid 적용 후 remount

 

3. 어플리케이션 설정

3.1. 서비스 자동시작 활성화 및 구동

3.2. 마리아DB 설정

1) root 비번 설정

[root@mws ~]# mysqladmin -u root -p password '**********'
Enter password: 엔터입력

2) DB 생성

3.3. 원본 설정 파일 보전

어플리케이션 패키지의 기본 파일 백업본 생성

3.4. mariadb 구동 문제

* 운영 중 OOM이 발생하여 서버를 재부팅 하였는데 mariadb가 구동이 안되는 현상이 발생하였다.  (2016.11.22 발생)
아래와 같은 메시지 발생하여 journamctl 로 자세한 로그를 확인해 보니 mariadb-prepare-db-dir 파일을 실행하는데 있어서 Permission denied 이 발생을 하였다.

따라서 /usr/libexec 에 대해서 아래와 같이 퍼미션 설정을 하였으나 역시 마찬가지여서

아래처럼 /usr 하위 디렉토리에 대해 755 권한을 설정 하였다.

원인은 대략 찾았지만 왜 갑자기 권한 문제로 구동이 안되었는지는 좀 더 찾아보고 기록을 해야될 듯 하다.

 

3.4. httpd 설정

1) httpd.conf 설정

2) vhost.conf 설정

3) userdir.conf 설정

apache 버전이 2.4로 올라가면서 httpd.conf 에 선언하지 않고 여기에 선언을 해줘야 웹페이지 접근이 가능하다.

UserDir disabled 를 주석처리 해줘야 한다.

3.5. php 환경변수

기존 환경파일 그대로 사용

3.6. samba 설정

3.7. rsyncd 설정

* CentOS 7 에서는 rsync가 기본적으로 stand alone 방식이다. 포트변경을 위해서는 rsyncd.conf의 global 설정 부분에 설정을 한다.

 

4. 기타 설정

4.1. rc.local

* RHEL 7 부터는 rc.local 파일의 실행 권한이 없음. 따로 실행 권한을 줘야 부팅시 실행이 된다.

 

4.2. sshd 설정

4.3. 백업스크립트 설정

4.4. crontab 스케쥴링

4.5. nameserver

4.6. vim 설정

4.7. bash 권한 조정

 

5. 데이터 이관

5.1. 파일들 복사

블로그 엔진 및 블로그에 담긴 데이터 파일들 복사

5.2. DB 이관

 

6. 서비스 이관

6.1. AS-IS와 TO-BE 바꾸기

1) AS-IS 서버의 db, web, samba 서비스를 내리고 ip를 변경

2) TO-BE 서버의 IP 변경 및 resolv.conf nameserver 설정

6.2. 어플리케이션 재기동

TO-BE 서버에서 어플리케이션 서비스 재기동

6.3. 서버 재부팅

TO-BE 서버를 재부팅하여 서비스 이상유무 점검

 

* 서비스 이관전 TO-BE 서버에서 웹서비스가 정상 기동되는지 확인하기 위해서는 확인하는 PC의 hosts 파일을 임시로 수정하여 진행한다.
아래 위치의 파일을 수정한다. (TO-BE 서버의 임시 IP가 192.168.0.11 로 가정을 하고 설정)
windows pc의 hosts 파일 수정 - C:\Windows\System32\drivers\etc\hosts

 

* 기타 보안 설정 적용에 대한 것은 이 문서에서 생략한다.

 

이상이다.

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.


*