월루를 꿈꾸는 대학생
9주차 Wordpress & WooCommerce 본문
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
워드프레스 설치
# 다운로드
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 생성
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
자원삭제
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 |