9주차-2 Wordpress & WooCommerce 단일서버 구성 실습

아이수베어·2022년 1월 21일
0

AFOS[2기]

목록 보기
21/29
post-thumbnail

[1안] 단일 서버 구성

1대의 인스턴스에 Web + PHP +DB 구성

AllnOne: 10.1.1.100

Wordpress v5.8 설치 전 준비 사항(권고)

  • 웹서버: Apache HTTPD 2.4.x 혹은 nginx 1.20/1.19
  • PHP v7.3 이상 -> Extensions 설치
  • MySQL v5.7 이상 혹은 MariaDB v10.2 이상

CloudFormation 스택 생성

https://console.aws.amazon.com/cloudformation/home?region=ap-northeast-2#/stacks/new?stackName=WPLab&templateURL=https:%2F%2Fs3.ap-northeast-2.amazonaws.com%2Fcloudformation.cloudneta.net%2FWordpress%2Faws-wordpress-db2.yaml

다음 클릭

t2.micro 는 WooCommerce 플러그인 설치 시 메모리 부족 등으로 설치 시 메모리 부족 등으로 설치 자체가 제대로 진행이 되지 않는다

그러므로 설치가 가능한 최소의 성능인 t3.medium로 배포가 된다
1시간당 60원 정도의 비용이 부가된다

Keyname 선택 후 다음 클릭

다음 클릭

스택 생성 클릭

웹서버 설치

# 관리자 전환
sudo su -

# 설치
yum install httpd -y

# 서비스 실행
systemctl start httpd && systemctl enable httpd

# 웹서버 버전 확인
httpd -v

# 웹 접속하여 확인
http://EC2_PublicIP/

Test page가 생성된 걸 볼 수 있다

PHP설치 -> PHP Extensions 설치

# 설치
amazon-linux-extras install php7.4 -y

# PHP 버전 확인
php -v

# PHP Extensions 설치
yum install gcc php-xml php-mbstring php-sodium php-devel php-pear ImageMagick-devel ghostscript -y

# PHP Extensions 정보 확인
php --ini

# PHP Extensions - imagick 설치
## imagick 관련 ini 파일 생성
cat <<EOT> /etc/php.d/40-imagick.ini
; Enable imagick extension module
extension = imagick.so
EOT

## pecl 로 imagick 설치
printf "\n" | pecl install imagick

# php-fpm 재시작으로 imagick 적용
systemctl restart php-fpm
systemctl restart httpd

# PHP Extensions 정보 확인
php --ini

# php info 페이지 생성
echo "<?php phpinfo(); ?>" > /var/www/html/info.php

# phpinfo.php 웹 접속하여 확인
http://EC2_PublicIP/info.php

info.php 페이지가 만들어졌다

memory_limit는 128M이다

옵션) 2M 이상 크기 파일 업로드 관련 설정 및 메모리 상향 설정 -> Woocommerce 설치 시 필요

# php.ini 파일 수정
sed -i 's/^upload_max_filesize = 2M/upload_max_filesize = 64M/g' /etc/php.ini
sed -i 's/^post_max_size = 8M/post_max_size = 64M/g' /etc/php.ini
sed -i 's/^max_execution_time = 30/max_execution_time = 300/g' /etc/php.ini
sed -i 's/^memory_limit = 128M/memory_limit = 256/g' /etc/php.ini

# php-fpm 재시작으로 적용
systemctl restart php-fpm

memory_limit가 128M에서 256M로 늘어났다

옵션) phpMyAdmin 설치 (실패했으니 제 게시물 말고, 직접 사이트 들어가서 맨 처음부터 실습하시는 걸 추천합니다.)

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-lamp-amazon-linux-2.html#install-phpmyadmin-lamp-server

phpMyAdmin은 EC2 인스턴스의 MySQL 데이터베이스를 보고 편집하는 데 사용할 수 있는 웹 기반 데이터베이스 관리 도구이다.

# 필요한 종속 항목 설치
sudo yum install php-mbstring php-xml -y

# Apache를 다시 시작
sudo systemctl restart httpd

#php-fpm 를 다시 시작
sudo systemctl restart php-fpm

## Apache 문서 루트로 이동
cd /var/www/html

# phpMyAdmin 최신 릴리스의 소스 패키지 설치
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz

# phpMyAdmin 폴더를 생성하고 다음 명령을 사용하여 해당 폴더로 패키지의 압축을 푼다
mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1

# 압축 파일 삭제
rm phpMyAdmin-latest-all-languages.tar.gz

# 사이트 접속
http://my.public.dns.amazonaws.com/phpMyAdmin

음.. 접속이 안 된다

파일은 있는데 ...

디렉터리 안에 페이지는 들어가지는데 보이진 않는다.

내 개인적인 생각으로 지금 인스턴스에 Mysql이 설치가 안 되어 있는 것도 관련있는 것 같다. 다음 기회에 !

MariaDB 설치

# 설치
amazon-linux-extras install mariadb10.5 -y

# 서비스 시작
systemctl start mariadb && systemctl enable mariadb

# DB root 계정 설정 및 권장 설정
echo -e "\n Y\n n\n Y\n Y\n Y\n Y\n" | /usr/bin/mysql_secure_installation


# DB 에 한글 입력을 위한 설정
sed -i'' -r -e "/\[mysqld\]/a\character-set-server=utf8" /etc/my.cnf.d/mariadb-server.cnf
sed -i'' -r -e "/\[mysqld\]/a\collation-server=utf8_general_ci" /etc/my.cnf.d/mariadb-server.cnf
sed -i'' -r -e "/\[mysqld\]/a\init_connect=\"SET NAMES utf8\"" /etc/my.cnf.d/mariadb-server.cnf
sed -i'' -r -e "/\[mysqld\]/a\init_connect=\"SET collation_connection = utf8_general_ci\"" /etc/my.cnf.d/mariadb-server.cnf
sed -i'' -r -e "/\[client\]/a\default-character-set=utf8" /etc/my.cnf.d/client.cnf
sed -i'' -r -e "/\[mysql\]/a\default-character-set=utf8" /etc/my.cnf.d/mysql-clients.cnf
sed -i'' -r -e "/\[mysqldump\]/a\default-character-set=utf8" /etc/my.cnf.d/mysql-clients.cnf

# root 계정을 외부에서도 접속 가능하게 설정
mysql -e "set password = password('qwe123');"
mysql -uroot -pqwe123 -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'qwe123';"

# wordpressdb 데이터베이스 생성 및 확인
mysql -uroot -pqwe123 -e "CREATE DATABASE wordpressdb"
mysql -uroot -pqwe123 -e "show databases;"

# 서비스 재시작
systemctl restart mariadb

# 버전 확인
mysql --version

Wordpress v5.8 설치

# 다운로드 (둘 중 아무거나)
wget https://ko.wordpress.org/wordpress-latest-ko_KR.zip
wget https://ko.wordpress.org/wordpress-5.8-ko_KR.zip

# 압축 풀기
unzip wordpress-latest-ko_KR.zip

# wp-config.php 파일 복사
cp wordpress/wp-config-sample.php wordpress/wp-config.php

# wp-config.php 파일에 db 접속을 위한 정보 입력
sed -i "s/database_name_here/wordpressdb/g" wordpress/wp-config.php
sed -i "s/username_here/root/g" wordpress/wp-config.php
sed -i "s/password_here/qwe123/g" wordpress/wp-config.php

# wp-config.php 파일에 메모리 상향 설정
cat <<EOT>> wordpress/wp-config.php
define('WP_MEMORY_LIMIT', '256M');
EOT

# 압축 푼 wordpress 파일을 웹 디렉터리에 복사
cp -r wordpress/* /var/www/html/

# 사용자와 권한 설정
chown -R apache /var/www
chgrp -R apache /var/www
chmod 2775 /var/www
find /var/www -type d -exec chmod 2775 {} \;
find /var/www -type f -exec chmod 0664 {} \;

# 서비스 재시작
systemctl restart httpd

Wordpress 웹 접속

http://EC2_PublicIP/

Wordpress 사이트가 만들어졌다 ㅎㅎ

관리자 정보를 입력해준다 -> 워드프레스 설치 클릭

로그인을 해준다

짜쟌

첫 글을 써보자

쨔쟌

일딴 게시물을 아무거나 작성하자 (웃긴 사진 넣을려다가 저작권 때문에 포오기이 ...)

다 작성 후 -> 공개 클릭

공개 클릭

글 보기 클릭

오 글이 작성되었다

외모 변환

외모 -> 테마 클릭

새로 추가 클릭

sydney 검색

설치 클릭

활성화 클릭

쨘 테마가 바뀌었다

옵션) 외모 변환 2

Starter Sites 클릭

Import 클릭

Import 클릭

View Site 클릭

쨘 더 예뻐졌다


참고 자료: AFOS[2기] 노션 내용

profile
Junior Cloud Engineer

0개의 댓글