aws 서버 구축 방법 아마존 웹서버 워드프레스 설치 2부

1부에서 AWS 서버 구축을 스냅샷을 이용하여 빠르게 만들어보았습니다.

아마 초보분들은 AMI 이미지가 없기때문에 시작조차 할수 없는 글일수도 있습니다.

 

이번에 서버를 새로 만들면서 설정값이 더 추가되는 부분이 생겨 스냅샷을 다시 찍었습니다.

파이썬 자동 재실행 스크립트와 crontab 수정 그리고 새로운 모듈도 설치하였습니다.

다음번에 서버 만들때에는 지금보다 더 빠른 시간으로 워드프레스 홈페이지를 만들수 있다는 이야기입니다.

서버 만드는 과정에 대한 내용은 이미 제가 리눅스맨 워드프레스 블로그에 올려놓았기때문에 하나하나 찾아서 설치를 할 수 있습니다.

 

1부과정에서는 스냅샷을 이용한 아마존 서버 만들기

2부과정에서는 워드프레스를 설치하여 외부에서 접속

 

 

1부과정에서 준비물 중 워드프레스와 phpMyAdmin 툴이 있었습니다.

이번과정에서는 이 두개를 우선 다운받아 설치부터 하겠습니다.

제 경우에는 이미 스냅샷에서 httpd 설치와 php설치가 완료된 상태입니다.

CentOS 7 centos8 php 7.x install 센트os7에서 php 버전 7.4 업데이트

심지어 phpmyadmin 까지 설치가 되어져있지만 2021년 1월달 버전이기때문에 최신버전으로 교체하겠습니다.

워드프레스는 직접 마지막 버전을 다운받도록 하겠습니다.

 

또한 번외이기는 하지만 웹서버가 도중에 다운되지 않도록 파이썬3를 이용하여 프로그래밍해놓을겁니다.

이를 해두어야지만 갑작스러운 트래픽증가에도 잘 버틸수 있습니다. (어찌보면 제일 중요할수도있겠네요)

 

 

아마존 웹서버(AWS) 워드프레스 설치 방법

1. 워드프레스를 다운받습니다.

wordpress.org 사이트에 가면 워드프레스를 다운받을 수있습니다.

하지만 우리는 서버에 이 파일을 올려야하므로 서버에사 바로 다운받도록 합니다.

wget https://wordpress.org/latest.zip

 

다운을 받았다면 아래 명령어를 이용하여 압축을 해제해야합니다.

zip 파일이므로 unzip 명령어를 이용합니다.

unzip lastest.zip

압축이 자동으로 해제되면서 wordpress 폴더가 만들어졌습니다.

나중에 chown 명령어로 root 대신 apache 계정으로 변경하겠지만 그 부분은 생략하겠습니다.

리눅스맨 다른 문서에 이미 관련하여 내용을 올려놓았습니다.

vHost를 위해서 폴더명도 따로 변경되니 그점도 확인해야합니다.

 

 

2. phpMyAdmin을 다운받습니다.

아래 명령어를 이용하여 바로 서버에서 다운받으세요

wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip

역시 zip 파일로 되어져있어서 위와 동일한 방법으로 압축을 풀면됩니다.

압축을 풀면 폴더가 하나 만들어지는데 나중에 이 또한 phpMyAdmin 이런형식으로 자신만의 이름으로 vHost에 등록하면됩니다. (생략)

phpmyadmin 설치 centos 8 php 7.4 yum install

 

3. vHost 등록합니다.

구입한 도메인을 서버에 포워딩 걸도록 합니다.

이부분은 각 도메인 업체에 웹 DNS 같은 부가서비스 항목으로 제공하기때문에 도메인 업체마다 참고하셔서 등록해야합니다.

아래 내용을 자신의 홈페이지 도메인에 맞게끔 넣어야합니다.

 

vi /etc/httpd/conf/httpd.conf

<VirtualHost *:80>
ServerAdmin 이메일주소@이메일.com
DocumentRoot /홈페이지폴더주소
ServerName 도메인명
ServerAlias 서브도메인명

ErrorLog logs/error_log
CustomLog logs/access_log common

<Directory /홈페이지폴더주소>
Options FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>

</VirtualHost>

 

1부에서도 말씀드렸다싶이 큰 틀 위주로 설명을 빠르게 진행합니다.

 

그 이유는 제가 이 글을 작성하면서 실제로 서버구축과 워드프레스를 설치하고 있기때문입니다.

지금 카페에서 서버 구축하면서 글도 함께 작성하는 중입니다. 도중에 스냅샷 만들기 위해서 또 삭제하고 반복중입니다.

그렇기 때문에 저도 빨리 만들어야해서 중간중간 설명까지 다 할수 없어 큰 틀에 대해서 알려드리고 있는것입니다.

vhost 등록도 예전에 글로 다 작성해놓았기에 군데군데 필요한 부분들을 리눅스맨 블로그에서 검색하면 다 나옵니다.

아래 데이터베이스 생성과 워드프레스 설치도 마찬가지입니다.

도메인도 오늘 홈페이지를 만들기 위해서 오늘 글 작성(2021년 10월 12일) 하기 직전에 구입하였습니다.

지난번에 워드프레스 만들때에는 애드센스 얼마를 벌수 있을까? 하고 막연했는데..

오늘 만드는 워드프레스 홈페이지는 글로벌하게 꽤 많은 사람들이 사용할 서비스라서 엄청난 수익으로 늘어날듯합니다.

 

아! 그리고 저는 제가 만들 프로그램 중에서 vHost를 자동으로 생성해주는 프로그램이 있습니다.

덕분에 vHost에 대해서 크게 생각하지않고 도메인명만 입력하면 자동으로 미리 짜여진 스크립트대로 결과물이 만들어집니다.

암튼 위에 제가 vhost 간단하게 올려놓았으니 그부분이라도 보시고 복사 붙여넣기 하시면됩니다.

 

 

3. 데이터베이스를 생성합니다.

vhost가 등록되었고 도메인에 아이피가 포워딩 되었다면 이제 도메인명으로 데이터베이스에 접속합니다.

그리고 user와 database를 생성하고 나오면 됩니다.

그리 어려운 작업은 아닙니다.

유저명을 영어로 만들고 아래쪽 동명의 데이터베이스를 생성하고 모든 권한을 부여. 체크한 다음 생성하면 자동으로 데이터베이스까지 만들어집니다.

호스트명에는 꼭 % 대신 localhost 로 지정해야합니다.

그렇지 않으면 해킹 걱정을해야합니다. 로컬로 바꾸셔도 관리 소홀하면 해킹은 마찬가지긴하지만 그대로 조금 더 안심이 됩니다.

 

 

4. 워드프레스를 설치합니다.

워드프레스 설치는 그냥 프로그램 설치보다 더 쉽습니다.

도메인으로 접속하면 모든부분이 정상적으로 만들어졌다면 아래처럼 설치 언어를 묻고 진행합니다.

만약 위의 언어선택이 나오지 않고 아래처럼 나온다면 권한문제입니다.

 

Let’s go!

Database Name 과 Username 그리고 Password를 입력합니다.

Submit

아랫부분은 wp-config.php 파일을 아래 내용그대로 복사해서 서버에 입력하라는 이야기입니다.

Run the installation

저는 에디트플러스를 이용하여 위의 내용을 복사해서 붙여넣고 다시 실행하였습니다.

보통 이 부분이 진행되는데 왜 이렇게 뜨냐하면… 권한 지정을 안해주어서 그렇습니다.

저도 이거 하면서 생각난 부분입니다.

꼭 워드프레스 복사 하고나서 chown apache.apache -R 워드프레스설치된폴더명 해주시고 또 chmod 이용해서 701 권한도 주어야합니다.

644 권한인데 그부분도 제 리눅스 워드프레스 블로그에서 644검색하면 자세히 나온 글이 있습니다.

[해결] 몇 개의 파일을 복사할 수 없기 때문에 업데이트는 설치할 수 없습니다. 이것은 보통 파일의 퍼미션이 서로 다르기 때문입니다.: wp-admin/includes/update-core.php

 

업로드한 파일의 퍼미션(권한)을 설정합니다.

파일을 644모드로 변경합니다.

 find . -type f -exec chmod 644 {} \; 

폴더를 755모드로 변경합니다. 

find . -type d -exec chmod 755 {} \; 

755로 안될경우 모두 777로 바꾸셔서 업데이트 하시고 다시 기존대로 돌리면됩니다. 

아파치권한으로 모든폴더와 파일을 수정합니다.

chown apache.apache -R /wordpress


 

 

파일명을 수작업으로 변경해주고 다시 Run the installation 눌러주면 다시 언어 선택화면이 나오게됩니다.

한글로 지정하셔도 되지만 저는 글로벌한 워드프레스를 만들기 위해서 그냥 English 버전으로 했습니다.

다시 데이터베이스 정보를 입력하는 분들도 계실테고요 그냥 저처럼 넘어가는 경우도 있습니다.

 

이 부분에는 워드프레스 홈페이지 이름과 로그인 아이디를 그리고 암호와 이메일 주소를 입력하면됩니다.

이때 Search engine visiblity 라는 항목에 체크를 절대 하면 안됩니다.

여러분들의 사이트는 이순간부터 구글이나 네이버에 검색이 안되게됩니다.

암튼 잘 판단하셔서 Install WordPress 클릭하시면됩니다.

고생하였습니다.

 

아래 내용도 보시면 중복되기는 하지만 도움이 되실겁니다.

aws 워드프레스 설치 방법 초보도 따라해보세요

많은 분들이 이렇게 생각하실수도 있습니다.

‘에이~ 이미 웹 전문가니깐 잘하는거잖아요!!’ 그럴수 있습니다.

어쩌면 맞는말일수도 있고요. 저는 이미 다 알고 하는거라서 쉽고 빠를수 있습니다.

하지만 잊지마세요!

저는 지금 이 기록을 여러분들을 위해서 기록 남기는 부분도 있지만 미래에 제가 더 빠른 구축을 하기 위해서 남겨놓는 기록물이라는 사실을요!!

저도 여러분들처럼 몰라서 웹사이트 검색해가면서 구글 네이버를 뒤져가며 밤을 샌적이 수도없이 많습니다.

지금 여러분들은 밤을 새가며 힘들게 배우셔야 하는 단계일수도있으니 큰 틀내용으로 마스터 하려하지마시고 내가 이정도 진행과정에 있구나 라고 생각하면됩니다.

 

여러분들은 그저 제가 이곳저곳 펴저있는 정보를 이렇게 글 하나로 뭉쳐놓아 한눈에 편하게 보실수 있고 따라하실수 있음에도 불구하고

이미 제가 전문가라서 쉽고 빠르게 한다고 생각하실수 있으니… 받아드리는건 각자의 선택의 몫이라 제가 어찌할수는 없어보입니다.

하지만 누군가는 분명 도움이 되시는분들은 분명 계실겁니다.  (그게 접니다!! ㅎㅎ)

 

5. Python3 자동 부하 자동 재실행 스크립트 설치

이 부분은 제가 개발한 부분인데 아래 주소를 보시고 따라 하시면됩니다.

아마존 EC2 메모리 부족 아파치 자동 재실행 파이썬 스크립트

저는 이 모니터링을 만들고 이후로 자동으로 서버가 재실행되면서 손이 많이 가지 않게되었습니다.

대부분 트래픽이 갑자기 늘어날 경우 서버가 다운되는경우가 많은데…

이때 잠시 신경 못쓰게되면 장시간동안 서버다운이 이어지게됩니다.

실전에는 메모리가 85% 를 사용하게되면 아파치서버(httpd)를 재실행하도록 해놓았습니다.

잠시 테스트를 위해서 15%로 지정하고 돌려보았는데 역시 잘 실행되고 log까지 남겨놓았더군요.

데몬(crontab)에 1분마다 실행하기 때문에 제가 테스트 하려고 하는 그 짧은 시간에 2번 실행된듯합니다.

파이썬은 프로그래밍으로 되어져있어서 제가 원하는대로 만들수 있는 장점이 있어 좋더군요.

 

6. crontab -e 항목에는 아래 그대로 복사 붙여넣기합니다.

 

crontab -e

00 03 * * * /root/autoLogsDelete.sh
*/30 * * * * rdate -s time.bora.net
00 00 * * * ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
*/1 * * * * python3 /root/_PYTHON3/memcheck_httpd_restart.py

아마도 autoLogsDelete.sh 파일과 memcheck_httpd_restart.py 파일은 여러분들이 없을겁니다.

이 파일은 제가 직접 만들서 사용하고 있는 파일이며 이항목은 빼고 등록해도 됩니다.

아래 내용을 그대로 따라 입력하면됩니다.

 

vi /root/autoLogsDelete.sh

service httpd stop
find /etc/httpd/logs/ -size +100M -exec rm -rf {} \;
service httpd start

파일이 만들어지고 나면 실행을 해야하므로 꼭 chmod 명령어로 701 권한을 주어야합니다.

chmod 701 /root/autoLogsDelete.sh