EC2에서 LAMP + 워드프레스 설치 완벽 가이드

이 가이드는 Amazon EC2 인스턴스에서 LAMP 스택(Linux, Apache, MySQL, PHP)을 설치하고 워드프레스를 구축하는 전체 과정을 단계별로 설명합니다.

1. EC2 인스턴스 준비

1.1 EC2 인스턴스 생성

  • AWS 콘솔에 로그인하여 EC2 서비스로 이동
  • Launch Instance 클릭
  • AMI 선택: Amazon Linux 2 또는 Ubuntu 20.04 LTS 권장
  • 인스턴스 타입: t2.micro (프리티어) 또는 t3.small 선택
  • 키 페어 생성 또는 기존 키 페어 선택
  • 보안 그룹 설정:
    • SSH (포트 22): 내 IP 또는 필요한 IP 범위
    • HTTP (포트 80): 0.0.0.0/0
    • HTTPS (포트 443): 0.0.0.0/0

1.2 EC2 인스턴스 접속

# SSH를 통해 인스턴스 접속
ssh -i "your-key.pem" ec2-user@your-ec2-public-ip

# Ubuntu의 경우
ssh -i "your-key.pem" ubuntu@your-ec2-public-ip

2. 시스템 업데이트

# Amazon Linux 2
sudo yum update -y

# Ubuntu
sudo apt update && sudo apt upgrade -y

3. Apache 웹 서버 설치

3.1 Apache 설치

# Amazon Linux 2
sudo yum install -y httpd

# Ubuntu
sudo apt install -y apache2

3.2 Apache 서비스 시작 및 활성화

# Amazon Linux 2
sudo systemctl start httpd
sudo systemctl enable httpd

# Ubuntu
sudo systemctl start apache2
sudo systemctl enable apache2

3.3 Apache 설치 확인

웹 브라우저에서 http://your-ec2-public-ip로 접속하여 Apache 기본 페이지가 나타나는지 확인합니다.

4. MySQL 데이터베이스 설치

4.1 MySQL 설치

# Amazon Linux 2
sudo yum install -y mysql-server

# Ubuntu
sudo apt install -y mysql-server

4.2 MySQL 서비스 시작 및 활성화

sudo systemctl start mysqld
sudo systemctl enable mysqld

4.3 MySQL 보안 설정

sudo mysql_secure_installation

설정 과정에서 다음과 같이 진행:

  • 루트 패스워드 설정
  • 익명 사용자 제거: Y
  • 루트 원격 로그인 비활성화: Y
  • 테스트 데이터베이스 제거: Y
  • 권한 테이블 재로드: Y

4.4 워드프레스용 데이터베이스 생성

sudo mysql -u root -p

MySQL 프롬프트에서:

CREATE DATABASE wordpress;
CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'strong_password_here';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

5. PHP 설치

5.1 PHP 및 필수 모듈 설치

# Amazon Linux 2
sudo yum install -y php php-mysql php-gd php-xml php-mbstring php-curl

# Ubuntu
sudo apt install -y php libapache2-mod-php php-mysql php-gd php-xml php-mbstring php-curl

5.2 Apache 재시작

sudo systemctl restart httpd    # Amazon Linux 2
sudo systemctl restart apache2  # Ubuntu

5.3 PHP 설치 확인

# PHP 정보 파일 생성
sudo vim /var/www/html/info.php

파일 내용:

<?php
phpinfo();
?>

웹 브라우저에서 http://your-ec2-public-ip/info.php로 접속하여 PHP 정보가 표시되는지 확인합니다.

6. 워드프레스 다운로드 및 설치

6.1 워드프레스 다운로드

cd /tmp
wget https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz

6.2 워드프레스 파일을 웹 디렉토리로 복사

sudo cp -R wordpress/* /var/www/html/
sudo chown -R apache:apache /var/www/html/  # Amazon Linux 2
sudo chown -R www-data:www-data /var/www/html/  # Ubuntu
sudo chmod -R 755 /var/www/html/

6.3 워드프레스 설정 파일 생성

cd /var/www/html
sudo cp wp-config-sample.php wp-config.php
sudo vim wp-config.php

wp-config.php 파일에서 다음 부분을 수정:

define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wordpressuser' );
define( 'DB_PASSWORD', 'strong_password_here' );
define( 'DB_HOST', 'localhost' );

6.4 보안 키 설정

WordPress 보안 키 생성기에서 생성된 키를 wp-config.php 파일의 해당 부분에 붙여넣습니다.

7. 파일 권한 설정

# 올바른 소유권 설정
sudo chown -R apache:apache /var/www/html/  # Amazon Linux 2
sudo chown -R www-data:www-data /var/www/html/  # Ubuntu

# 적절한 권한 설정
sudo find /var/www/html/ -type d -exec chmod 755 {} \;
sudo find /var/www/html/ -type f -exec chmod 644 {} \;
sudo chmod 600 /var/www/html/wp-config.php

8. Apache 가상 호스트 설정 (선택사항)

8.1 가상 호스트 설정 파일 생성

# Amazon Linux 2
sudo vim /etc/httpd/conf.d/wordpress.conf

# Ubuntu
sudo vim /etc/apache2/sites-available/wordpress.conf

설정 파일 내용:

<VirtualHost *:80>
    ServerAdmin webmaster@your-domain.com
    DocumentRoot /var/www/html
    ServerName your-domain.com
    ServerAlias www.your-domain.com
    
    <Directory /var/www/html>
        AllowOverride All
        Require all granted
    </Directory>
    
    ErrorLog /var/log/httpd/wordpress_error.log
    CustomLog /var/log/httpd/wordpress_access.log combined
</VirtualHost>

8.2 사이트 활성화 (Ubuntu만 해당)

sudo a2ensite wordpress.conf
sudo a2dissite 000-default.conf
sudo systemctl restart apache2

8.3 mod_rewrite 활성화

# Amazon Linux 2
sudo vim /etc/httpd/conf/httpd.conf
# AllowOverride None을 AllowOverride All로 변경

# Ubuntu
sudo a2enmod rewrite
sudo systemctl restart apache2

9. 워드프레스 설치 완료

9.1 웹 설치 마법사 실행

웹 브라우저에서 http://your-ec2-public-ip 또는 도메인으로 접속합니다.

9.2 워드프레스 설치 정보 입력

  • 사이트 제목
  • 관리자 사용자명
  • 관리자 비밀번호
  • 관리자 이메일 주소

10. 보안 강화 (권장사항)

10.1 불필요한 파일 제거

sudo rm /var/www/html/info.php
sudo rm /tmp/latest.tar.gz
sudo rm -rf /tmp/wordpress

10.2 정기 백업 설정

# 간단한 백업 스크립트 예시
sudo vim /home/ec2-user/backup.sh

백업 스크립트:

#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p /home/ec2-user/backups
tar -czf /home/ec2-user/backups/wordpress_$DATE.tar.gz /var/www/html
mysqldump -u wordpressuser -p wordpress > /home/ec2-user/backups/wordpress_db_$DATE.sql

10.3 SSL 인증서 설치 (Let’s Encrypt)

# Certbot 설치
sudo yum install -y certbot python3-certbot-apache  # Amazon Linux 2
sudo apt install -y certbot python3-certbot-apache  # Ubuntu

# SSL 인증서 발급
sudo certbot --apache -d your-domain.com -d www.your-domain.com

11. 성능 최적화

11.1 PHP 메모리 제한 증가

sudo vim /etc/php.ini

다음 설정들을 수정:

memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300

11.2 Apache 재시작

sudo systemctl restart httpd    # Amazon Linux 2
sudo systemctl restart apache2  # Ubuntu

마무리

이제 EC2에서 LAMP 스택과 워드프레스가 성공적으로 설치되었습니다. 추가적으로 다음 사항들을 고려해보세요:

  • 정기 업데이트: 시스템, Apache, MySQL, PHP, 워드프레스를 정기적으로 업데이트
  • 모니터링: CloudWatch를 통한 서버 모니터링 설정
  • 백업: 정기적인 자동 백업 시스템 구축
  • CDN: CloudFront와 같은 CDN 서비스 연동
  • 방화벽: 추가적인 보안 설정

웹사이트가 정상적으로 동작하는지 확인하고, 필요에 따라 플러그인과 테마를 설치하여 사이트를 커스터마이징하세요!

공유하기

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다