월루를 꿈꾸는 대학생

9주차 Wordpress & WooCommerce 본문

Cloud/AWS

9주차 Wordpress & WooCommerce

하즈시 2021. 4. 14. 20:56
728x90

워드프레스 

- 누구나 쉽게 블로그, 웹사이트, 쇼핑몰을 구축하는 사이트 도구 

- 무료이며 오픈소스

- 블로깅 툴 & CMS & E-COMMERCE

- PHP & MySQL

 

워드프레스 구성환경 

- 1대에 모든 서비스 구성 web+php+db

 

- 2대로 구성 -> WEB/PHP 인스턴스 + MariaDB 인스턴스 구성 

 

- 1대 EC2 와 AWS RDS로 구성 -> WEB + PHP =EFS + RDS 구성 

 

WooCommerce 플러그

- 워드프레스 상에서 쇼핑의 결제를 도와줌


실습 : 1대의 ec2에 설치 

 

cloudformation 으로 시작 

 

 

 

 

AllInOne ec2로 접근 

 

웹서버 설치 

# 관리자 전환
sudo su -

# 설치
yum install httpd -y

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

# 웹서버 버전 확인
httpd -v

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

 

바로 아파치 설치된 거 확인 

 

 

php extensions 설치 

 

# 설치
amazon-linux-extras install php7.2 -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

# PHP Extensions 정보 확인
php --ini

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

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

 

 

 

php의 메모리 제한을 256으로 조정 ! 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

 

 

 

DB설치 

 

# 설치
yum install mariadb-server -y

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

# DB root 계정 암호 설정(qwe123) 및 권장 설정
# A|B -> 먼저 B실행후 다음에 나오는 Yes 혹은 글자치는 부븐을 A가함
# \n -> 엔터 
# 명령어 칠때 \n+문자열 

echo -e "\n\nqwe123\nqwe123\ny\nn\ny\ny\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 -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

 

 

DB 생성확인 

 

워드프레스 설치 

 

# 다운로드
wget https://ko.wordpress.org/wordpress-latest-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 접속을 위한 정보 입력
# database_name_here 부분을 wordpressdb로 바꿈 어느 파일이냐면 뒷부분 

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

 

워드프레스 설치 완료 

 

관리자 사이트 

 

블로그 글 발행 및 인터넷 접속 가능 

 

 

하나의 ec2에서 db 및 웹 설치 

 

 


 

웹서버와 db서버 구성 

- 웹서버와 db를 각각 ec2에 설치해서 연동 

- WooCommerce설치 

 

- 로컬 db가 아니라 원격으로 접속된 db를 가지고 워드프레스 구축 

 

우커머스 설치

 

우커머스 플러그인 설치 

 

 

 

간편하게 쇼핑몰 구축 완료 

[

 

 


1대의 ec2 ( efs ) 와 aws rds (db)로 구성 

 

efs- 여기 안에 기본적인 데이터가 들어있고 db로 갈 것은 rds로 감 

 

DB 생성 

 

 

 

db 접속 가능하도록 보안그룹

 

 

 

 

 

 

EFS 

 

 

 

 

WEB SERVER2

 

# 관리자 전환
sudo su -

# EFS 확인
df |grep efs
df -hT |grep efs

# RDS 엔드포인트를 변수에 지정
RDS=wpdb.cb79jlim4dyq.ap-northeast-2.rds.amazonaws.com

# wp-config.php 파일에 DB 주소를 RDS 엔드포인트로 설정
# 원래는 localhost로 되어있음 
sed -i "s/localhost/$RDS/g" /var/www/wordpress/wp-config.php

# DB 접속 테스트
mysql -h $RDS -uroot -pqwe12345 -e 'show databases;'
mysql -h $RDS -uroot -pqwe12345

 

RDS로 접속 가능 

 

 

 

webser2 인스턴스도 rds와 연결이 잘 되었기에  wordpress 접속 가능 

 

 


 

자원삭제 

 

rds 삭제 

 

 

CloudFormation 삭제 

 

 

728x90

'Cloud > AWS' 카테고리의 다른 글

[AWS] 관리자 권한 IAM생성  (0) 2023.03.06
8주차 - EC2 Auto Scaling  (0) 2021.04.07
7주차 로드밸런서 ELB  (2) 2021.04.04
6주차 - 데이터베이스 서비스  (2) 2021.03.24
3주차 네트워킹 서비스  (0) 2021.03.03