WordPress 서비스 구축하기in NAVER Cloud Platform

이미지 출처 : wordpress.com

Wordpress 블로그 서비스를 네이버 클라우드 플랫폼에서 구축하세요.

가장 강력하고 쉬운 블로그 서비스를 제공하는 WordPress 서비스를 네이버 클라우드 플랫폼을 활용하여 구축하는 방법에 대해서 알아보려고 합니다.
네이버 클라우드 플랫폼에서 제공하는 Server 및 MySQL 설치형 상품
활용하여 단계 별로 쉽게 구축할 수 있도록 설명 드리겠습니다.

Wordpress (https://ko.wordpress.com/#benefits-domains)

오늘 구축해 볼 WordPress 서비스는 Private Cloud 서비스 설치형으로도
인기가 높아서, 아래와 같이 Docker Hub 서비스에서도 많은 STARs를 받고
있는 서비스 중 하나입니다.

Docker Hub — Wordpress#1 (https://hub.docker.com/explore/?page=2)
Docker Hub — Wordpress#2 (https://hub.docker.com/explore/?page=2)

이번 포스팅에서는 Docker Container Image를 사용하는 것은 제외하고,
네이버 클라우드 플랫폼의 인프라 및 서비스를 활용하여 WordPress
서비스를 구축
하는 방법을 알려 드리겠습니다.

Wordpress 설치를 위한 준비 작업은 어떤 것들이 있나요?

Wordpress 서비스 설치에 앞서 먼저 몇 가지 S/W 설치 및 설정 작업이
필요합니다. 기본적으로 Wordpress의 경우 웹 서버와 데이터베이스를
내장하고 있지 않기 때문에, 별도의 서비스 구성은 사용자가 직접 진행해야 합니다.

(1) 웹 서버 설치 및 설정 (Nginx Web Server)

  • Nginx 설치 및 설정에 대해서는 해당 글에서는 생략합니다.
    ( 나만의 LINE 챗봇 서비스 구축하기 포스팅을 참고하시면 됩니다.
  • 아래와 같이 Nginx 상태 확인 및 서비스 시작/중지를 할 수 있습니다.
$ systemctl status nginx
Nginx Service Status 확인
$ systemctl stop nginx
$ systemctl start nginx

(2) PHP7 설치 및 설정

  • WordPress 서비스에서 동적인 HTML 구성을 위해 스크립트 언어 중 가장 간단하게 설치 및 설정이 가능한 PHP를 선택하였으며, 버전은 성능이
    크게 개선된 PHP7 을선택하였습니다.
$ yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
PHP7 Installation
  • 아래와 같이 yum instasll php70 명령을 통해 설치를 진행합니다.
    설치가 완료되면, Completed! 메시지가 출력 되고, 설치 프로세스는
    종료됩니다.
$ yum install php70
PHP7 Installation 완료
  • yum install yum-utils 명령어를 통해 유틸리티 패키지를 설치합니다.
$ yum install yum-utils
PHP Utilization Module Installation
  • 설치가 완료되면, Completed! 메시지가 출력되고, 설치 프로세스는
    종료됩니다.
PHP Utilization Module Installation 완료
  • 추후 PHP 7.1/7.2 사용을 원한다면, 아래와 같이 설정을 Enable 합니다.
$ yum-config-manager --enable remi-php71
$ yum-config-manager --enable remi-php72
PHP Other Version 설정 Enable
  • 아래와 같이 PHP 필수 모듈 설치를 진행합니다.
PHP 필수 Module Installation 완료
  • MySQL, XML, JSON 처리 및 기타 주요 라이브러리를 추가로 설치합니다.
$ yum install php-xml.x86_64
$ yum install php-xml
PHP XML Module Installation
$ yum install php-soap.x86_64
$ yum install php-soap
PHP SOAP Module Installation
$ yum install php-xmlrpc.x86_64
$ yum install php-xmlrpc
PHP XMLRPC Module Installation
$ yum install php-mbstring.x86_64
$ yum install php-mbstring
PHP MBSTRING Module Installation
  • 설치된 PHP 버전 확인을 위해 php -v 명령어를 실행하여 확인할 수
    있습니다.
$ php -v
PHP 버전 확인
  • yum list php.x86_64 를 실행하여 설치된 정보를 확인할 수 있습니다.
$ yum list php.x86_64
PHP 설치 리스트 및 정보 확인
  • PHP 설정이 완료되면, Nginx의 ~{NGINX_CONF}/default.conf 파일에
    아래와 같이 PHP의 fastcgi 관련 설정을 추가합니다.
Nginx 연동을 위한 설정파일 변경

(3) 네이버 클라우드 플랫폼 MySQL 설치형 서비스 사용방법

  • 네이버 클라우드 플랫폼 콘솔에서 [Server]에서 MySQL 서버 생성을 위해 [서버 생성]을 클릭합니다.
MySQL Database 서버 이미지 생성
  • 검색 필터를 사용하여, [DBMS > MySQL] 이미지 리스트만 나타나도록
    합니다.
MySQL Database 서버 이미지 검색

- mysql(5.6)-centos-7.2-64 이미지를 선택하고 다음을 클릭합니다.

MySQL Database 서버 이미지 선택
  • Server Type, Hostname 등의 필요정보를 입력 후 [다음]을 클릭합니다.
MySQL Database 서버 정보 입력
  • 새로운 인증키를 생성 후 저장합니다.
MySQL Database 서버 인증키 생성
  • 기존 방화벽에서 선택 또는 새로운 방화벽 설정을 합니다.
MySQL Database 서버 방화벽 설정
  • 단계별로 설정한 서버 정보를 최종 확인 후 서버를 생성합니다.
MySQL Database 서버 확인 및 생성
  • 아래와 같이 [생성중] > [부팅중] > [설정중] > [운영중]으로 최종 생성된 것을 확인할 수 있습니다.
MySQL Database 서버 생성 확인
  • 외부의 접속을 위해 [Public IP]를 설정합니다.
  • 외부에서 접속을 위한 포트 포워딩 설정을 클릭합니다.
MySQL Database 서버 포트포워딩 설정
  • 서버 접속을 위해 관리자 비밀번호 확인 메뉴를 실행합니다.
MySQL Database 서버 관리자 비밀번호 설정/확인
  • 설정한 접속정보`를 통해 정상적으로 접근이 되는지 확인을 합니다.
MySQL Database 서버 터미널 접속 확인

(4) 네이버 클라우드 플랫폼 MySQL Database 설정 방법

  • 보안 위험 회피를 위해 MySQL DB Daemon Shutdown을 실행합니다.
MySQL Database Shutdown
  • 아래와 같이 정상적으로 Stop/Start 실행이 되었는지 확인을 합니다.
$ service mysqld stop
$ service mysqld start
MySQL Database Start | Stop
  • 초기 패스워드 설정을 위해 MySQL DB에 접속합니다.
$ mysql -uroot
MySQL Database 접속 확인
  • 아래와 같이 초기 패스워드 실행 명령을 통해 패스워드를 설정합니다.
mysql> set password=password('Your_Password_String');
MySQL Database 비밀번호 설정
  • 외부 접속을 위해서 아래와 같이 권한을 할당합니다.
mysql> grant all previleges on *.* 'your_account'@'%' identified by 'your_password'
MySQL Database 외부 접속 설정
  • 보안 강화를 위해 아래와 같이 네이버 클라우드 플랫폼에서 제공하는 SQL Tool 을 사용하도록 권고하고 있습니다.
MySQL Database SQLSTATUS 실행
MySQL Database SQLSTATUS 항목 설명

(5) PHP-FPM 설치 및 설정 방법

  • yum install php-fpm.x86_64 명령어를 통해 설치를 진행합니다.
$ yum install php-fpm.x86_64
PHP-FPM 설치

최초 설치시에는 Apache에서 동작하게 되어 있어서, 이 부분을 Nginx로
변경합니다.

$ vi /etc/php-fpm.d/www.conf
PHP-FPM 설정 변경
  • 아래와 같이 시스템의 서비스로 등록하고, 실행 후 상태를 확인합니다.
$ systemctl enable php-fpm.service
PHP-FPM 서비스 등록 및 실행
  • PHP 파일 업로드 제한을 아래와 같이 수정할 수 있습니다.
$ vi /etc/php.ini
php.ini 파일에서 Upload 관련 설정 수정
php.ini 파일에서 post_max_size 설정 수정
  • Nginx 설정에서도 파일 업로드 제한을 수정할 수 있습니다.
$ vi /etc/nginx/conf.d/default.conf
Nginx Configuration 파일 설정 수정
  • 설정 파일 수정 완료 후 Nginx, PHP 서버를 재시작 합니다.
$ systemctl restart nginx
$ systemctl restart php-fpm
Nginx 서비스 재시작

(6) Nginx + PHP 설치 및 연동 확인

  • PHP와 Nginx가 정상적으로 설치되었는 지 확인할 수 있습니다.
$ php -v
Nginx, PHP 설치 확인
  • test.php 파일을 아래와 같이 생성 후 저장해 보았습니다.
$ cat > test.php
“test.php” 파일 생성 후 실행
  • 아래와 같이 실행 결과를 확인할 수 있습니다.
http://my_public_ip/test.php
Nginx 서버에서 “test.php” 실행 결과

(7) Wordpress 연동을 위한 MySQL Database 설정

  • MySQL DB 접속 후 wordpress 사용자를 생성합니다.
$ mysql -u root -p
mysql> create user wordpress@localhost identified by "{YOUR_PASSWORD}"
MySQL Database에 Wordpress 사용자 생성
  • wordpress database 를 생성합니다.
mysql > create database wordpress;
  • 전체 권한을 wordpress 사용자에게 할당합니다.
mysql > grant all on wordpress.* to wordpress;
  • 설정한 권한 정보를 MySQL DB에 적용합니다.
mysql > flush privileges;

Wordpress 서버 설치는 어떻게 하나요?

위와 같이 웹 서버와 데이터베이스 서버 설치 및 설정 작업이 완료되면,
마지막으로 Wordpress 서버 설치 및 설정 작업을 완료하면 나만의 블로그
서비스를 시작할 수 있습니다.

그럼 이제부터 Wordpress 서버 설치 및 서비스 방법에 대해 알아보겠습니다.

  • wget http://wordpress.org/latest.tar.gz 명령어로 wordpress 최신 버전을 다운로드 받습니다.
$ wget http://wordpress.org/latest.tar.gz
Wordpress 다운로드
  • 다운로드 한 파일의 압축을 해제합니다.
$ tar zxvf latest.tar.gz wordpress
Wordpress 파일 압축 해제
  • 압축이 해제된 파일을 /var/www/wordpress 로 옮깁니다.
$ mv wordpress /var/www/wordpress
  • 플러그인, 테마, 미디어가 저장되는 디렉터리를 생성합니다.
$ mkdir /var/www/wordpress/wp-config/uploads
$ mkdir /var/www/wordpress/wp-config/upgrade
  • 워드프레스 디렉터리에 Nginx 사용자가 접근할 수 있도록 권한을
    추가합니다.
$ chown -R nginx:nginx /var/www/wordpress
  • Nginx 서버에 WordPress 파일을 Document Root의 하위 디렉터리로
    이동합니다.
$ ln -s /var/www/wordpress /usr/share/nginx/html/wordpress
  • wp-config.php 파일을 편집하여, DB 및 보안 설정을 합니다.
  • DB 관련 정보를 입력합니다.
$ vi wp-config.php
Wordpress Database 정보 입력
Wordpress Authorization Key 생성
  • 최초 정보를 주석처리 후 위에서 발급 받은 키 정보를 입력합니다.
Wordpress Authorization Key 정보 입력

Wordpress 서비스 접속 및 최초 설정 방법은

어떻게 되나요?

- 아래와 같이 wordpress 도메인을 호출하면 최초 시작 페이지로 접근을 할 수 있습니다. [한국어]를 선택 후 [계속]을 클릭합니다.

My Wordpress Site 접속
  • 필요한 정보를 입력 후 [워드프레스 설치하기]를 클릭합니다.
My Wordpress Site 접속 후 설정하기
  • 위에서 입력한 계정 정보를 통해 로그인을 하면 아래와 같이 WordPress
    대시보드를 확인할 수 있습니다.
My Wordpress 로그인 및 대쉬보드 확인
  • 위의 단계까지 마무리되면, 아래와 같이 MySQL DB의 wordpress User
    테이블 정보가 정상적으로 생성된 것을 확인할 수 있습니다.
mysql > use wordpress;
mysql > show tables;
My Wordpress & MySQL Database 연동 성공

네이버 클라우드 플랫폼 상품 및 서비스는 어떻게 사용할 수 있나요?

네이버 클라우드 플랫폼의 MySQL Database 설치형 상품 및 서비스 플랫폼을 사용하기 위해서는 아래와 같이 네이버 클라우드 플랫폼 포털 사이트 및
사용자 설명서를 참고하시면 쉽게 사용하실 수 있습니다.

글을 마무리 하며

네이버 클라우드 플랫폼의 MySQL Database 설치형 상품 및 서비스를
활용하여, Wordpress 서비스를 구축하는 방법에 대해서 알아보았습니다.
나만의 블로그 서비스를 구축하기 위해서는 여러 솔루션들이 있지만,
강력한 Plug-in과 Theme를 제공하는 Wordpress 서비스가 가장 좋은 대안이라고 생각합니다. 네이버 클라우드 플랫폼의 인프라 서비스와 플랫폼을
활용하여 쉽고 빠르게 블로그 서비스를 생성 및 제공할 수 있지 않을까
기대해 봅니다.

끝까지 읽어 주셔서 감사합니다.

--

--