yum을 이용하여 간단히 업데이트를 진행할 수 있다.
# 아마존 리눅스 버전 확인
cat /etc/system-release
# 소프트웨어 패키지 최신 상태로 업데이트 확인
# 퀵 소프트웨어 업데이트 실행 명령
# 최신 보안 업데이트와 버그 수정을 위해 수행할 필요 있음
sudo yum update -y
# Apache: https://httpd.apache.org/
# PHP: https://www.php.net/
# MySQL: https://www.mysql.com/
# Amazon Linux Extras Repository 설치 & LAMP MariaDB 및 PHP 패키지 최신 버전 가져옴
sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
# 인스턴스 최신상태이므로 Apache & MariaDB, PHP Software Package 설치
sudo yum install -y httpd mariadb-server
# 패키지 현재 버전 볼 수 있음
yum info package_name
-----
[ec2-user@aws_lamp ~]$ yum info mariadb
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Installed Packages
Name : mariadb
Arch : x86_64
Epoch : 3
Version : 10.2.38
Release : 1.amzn2.0.1
Size : 37 M
Repo : installed
From repo : amzn2extra-lamp-mariadb10.2-php7.2
Summary : A community developed branch of MySQL
URL : http://mariadb.org
License : GPLv2 with exceptions and LGPLv2 and BSD
Description : MariaDB is a community developed branch of MySQL.
: MariaDB is a multi-user, multi-threaded SQL database server.
: It is a client/server implementation consisting of a server daemon (mysqld)
: and many different client programs and libraries. The base package
: contains the standard MariaDB/MySQL client programs and generic MySQL files.
[ec2-user@aws_lamp ~]$ yum info httpd
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Installed Packages
Name : httpd
Arch : x86_64
Version : 2.4.48
Release : 2.amzn2
Size : 4.0 M
Repo : installed
From repo : amzn2-core
Summary : Apache HTTP Server
URL : https://httpd.apache.org/
License : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
: web server.
-----
# Apache 웹 서버 시작
sudo systemctl start httpd
# 매번 부팅할 때 Apache 웹서버 시작
sudo systemctl enable httpd
# httpd(Apache 웹서버) 실행되고 있는지 확인
sudo systemctl is-enabled httpd
/var/www/html
에 콘텐츠가 없으면 Apache 테스트 페이지가 표시된다./var/www/html
이며 기본적으로 root에서 소유파일 권한 설정
chmod
명령을 통해 쓰기 권한을 추가한다.775
= User&Group rwx
, Other rx
권한부여2000
부여: 2775
(※ SetGID는 파일 또는 디렉터리를 실행시에 해당 파일 및 디렉터리의 소유 그룹의 권한을 갖게 되는 퍼미션 설정)
# 사용자(ec2-user)를 apache 그룹에 추가
sudo usermod -a -G apache ec2-user
# exit 명령을 통해 로그아웃 & 재 로그인 -> 멤버쉽 확인
[ec2-user@aws_lamp ~]$ groups
ec2-user adm wheel apache systemd-journal
# /var/www/ 및 콘텐츠의 그룹 소유권을 apache 그룹으로 변경
sudo chown -R ec2-user:apache /var/www
# 그룹 쓰기 권한을 추가하여 나중에 하위 디렉터리에 대한 그룹 ID를 설정하려면 /var/www와 그 하위 디렉터리의 디렉터리 권한을 변경
sudo chmod 2775 /var/www && find /var/www -type d -exec sudo chmod 2775 {} \;
find /var/www -type f -exec sudo chmod 0664 {} \;
이제 ec2-user와 apache 그룹의 향후 멤버는 Apache document root에서 파일 추가, 삭제, 편집을 할 수 있고, 이를 통해 사용자는 정적 웹 사이트 또는 PHP Application과 같은 컨텐츠를 추가 할 수 있다.
Step 2-1. Apache Document Root 에서 PHP 파일을 생성
[ec2-user@aws_lamp ~]$ echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
Step 2-2 . 웹 브라우저에서 방금 생성한 파일의 URL을 입력한다. (생성한 파일: php)
http://<개인 Public DNS 주소> /phpinfo.php
Step 2-3. 생성한 phpinfo 파일 삭제 (보안상 이유로 인터넷에 공개되어서는 안됨)
[ec2-user@aws_lamp ~]$ rm /var/www/html/phpinfo.php
# 3-1. MariaDB 서버 시작
sudo systemctl start mariadb
# 3-2. mysql_secure_installation 실행
sudo mysql_secure_installation
# 3-3. (Option) MariaDB 서버 중지
sudo systemctl stop mariadb
# 3-4. (Option) 부팅 시 Maria DB 서버 시작
sudo systemctl enable mariadb
# 4-1 필요한 종속 항목 설치
sudo yum install php-mbstring php-xml -y
# 4-2 Apache 다시 시작
sudo systemctl restart httpd
# 4-3 php-fpm을 다시 시작
sudo systemctl restart php-fpm
# 4-4 Apache 문서 루트 /var/www/html 로 이동
cd /var/www/html
# 4-5 phpMyAdmin 최신 릴리스의 소스 패키지를 선택
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
# 4-6 phpMyAdmin 폴더 생성 & 패키지 압축 해제
mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1
# 4-7 phpMyAdmin-latest-all-languages.tar.gz tarball을 삭제
rm phpMyAdmin-latest-all-languages.tar.gz
# 4-8 (선택 사항) MySQL 서버가 실행 중이지 않으면 지금 시작
sudo systemctl start mariadb
# 4-9 웹 브라우저에서 phpMyAdmin 설치의 URL을 입력
http://my.public.dns.amazonaws.com/phpMyAdmin
# 4-10 root 사용자 이름 및 MySQL 루트 암호로 phpMyAdmin 설치에 로그인
Step 1-1. WordPress 설치
# WordPress 설치 최신 패키지 다운로드
wget https://wordpress.org/latest.tar.gz
# 설치 패키지의 압축 및 Archiving 해제
tar -xzf latest.tar.gz
Step 1-2. DB 사용자 및 DB 생성
# DB서버 시작
sudo systemctl start mariadb
# DB 서버에 root 사용자로 로그인
mysql -u root -p
# DB에 대한 사용자 및 암호 생성
# CREATE USER 'wordpress-user'@'localhost' IDENTIFIED BY 'your_strong_password';
CREATE USER 'jonghyun'@'localhost' IDENTIFIED BY 'qwe123';
# DB 생성 (설명할 수 있는 Name 부여)
# CREATE DATABASE `wordpress-db`;
CREATE DATABASE `Test-db`;
# DB에 대한 전체 권한을 이전에 생성한 WordPress 사용자에게 부여
# GRANT ALL PRIVILEGES ON `wordpress-db`.* TO "wordpress-user"@"localhost";
GRANT ALL PRIVILEGES ON `Test-db`.* TO "jonghyun"@"localhost";
# 데이터베이스 권한을 새로고침(flush) 해서 모든 변경사항이 적용되도록 한다.
FLUSH PRIVILEGES;
# mysql 클라이언트 종료
exit
# wp-config-sample.php 파일을 wp-config.php 파일에 복사 (for 원본 백업)
cp wordpress/wp-config-sample.php wordpress/wp-config.php
# wp-config.php 파일에 설치 값 입력
vi wordpress/wp-config.php
# WordPress를 문서 Root에서 실행 (=블로그를 웹 서버의 실제 루트 에서 사용)
cp -r wordpress/* /var/www/html/
# WordPress를 문서 루트 대체 디렉터리에서 실행
mkdir /var/www/html/blog
cp -r wordpress/* /var/www/html/blog/
# httpd.conf 파일 편집
sudo vim /etc/httpd/conf/httpd.conf
AllowOverride None
라인을 AllowOverride All
로 변경
# PHP 그래픽 그리기 라이브러리 설치
sudo yum install php-gd
# 설치 버전 확인
sudo yum list installed | grep php-gd
WordPress를 문서 루트 대체 디렉터리 /var/www/html/blog
에서 실행하므로
# http://<개인 Instance Public DNS 주소>/blog/wp-admin/install.php
http://ec2-3-34-131-156.ap-northeast-2.compute.amazonaws.com/blog/wp-admin/install.php
WordPress가 성공적으로 설치됬다면 다음과 같은 화면이 나올 것이다.
Fin.