EC2 인스턴스를 생성하지 않았을 경우 -> EC2 인스턴스 생성
RDS를 생성하지 않았을 경우 -> RDS 생성
1. EC2 인스턴스 접속
AWS EC2 인스턴스를 만든 후, 아래 명령을 통해 서버에 접속해줍니다.
chmod 400 rsa_key_path
ssh ubuntu@IP -i rsa_key_path
이후, MySQL 설치를 진행합니다.
sudo apt-get install -y mysql
EC2 인스턴스에서 Amazon RDS에 접속하기 위해 ~/.bashrc 파일 안에 환경변수를 지정해줍니다.
vim ~/.bashrc
# .bashrc 파일 안에 추가
export MYSQL_HOST=<your-endpoint>
# 수정된 내용 적용
source ~/.bashrc
RDS 생성 과정에서 지정한 마스터 유저 이름을 아래 명령에 포함하여 실행한 후, 비밀번호를 입력해줍니다.
mysql -u <RDS Username> -p
올바르게 접속한 경우, 아래와 같은 화면이 뜨게 됩니다.
그다음 아래 명령을 통해, Database 사용자를 생성해줍니다.
(CREATE USER 부분에만 콤마를 붙이시면 됩니다.)
CREATE USER '사용자명' IDENTIFIED BY '패스워드';
GRANT ALL PRIVILEGES ON '사용자명'.* TO '사용자명';
FLUSH PRIVILEGES;
Exit
2. Apache2 Web Server 설치
Apache2 Web Server 설치를 위해 아래 명령을 입력해줍니다.
(진행 도중 Enter를 치는 부분이 나오면, Enter를 눌러주시면 됩니다.)
sudo add-apt-repository ppa:ondrej/apache2
sudo apt update
sudo apt-get install apache2 -yCopy
3. WordPress를 위한 PHP 설치
아래 명령을 통해 최신 버전의 PHP를 설치해줍니다. 진행 도중 Enter를 치는 부분이 나오면, Enter를 눌러주시면 됩니다.
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install -y php7.2
WordPress에서 요구하는 PHP 모듈들을 설치해줍니다.
sudo apt install -y libapache2-mod-php7.2 php7.2-common php7.2-mbstring php7.2-xmlrpc php7.2-gd php7.2-xml php7.2-mysql php7.2-cli php7.2-zip php7.2-curl php-imagick
4. php.ini 파일 수정
sudo vim /etc/php/7.2/apache2/php.ini
php.ini 파일에 존재하던 기본 값을 아래와 같이 바꿔줍니다.
file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 360
5. MySQL Server 설치
sudo apt update
sudo apt-get install mysql-server -y
6. WordPress 설치
WordPress를 설치한 후, /var/www/wordpress 폴더로 옮겨줍니다.
cd /tmp && wget https://wordpress.org/latest.tar.gz
tar -zxvf latest.tar.gz
sudo mv wordpress /var/www/wordpress
cd /var/www/wordpress/
sudo vim .htaccess
.htaccess 파일 안에 아래 내용을 추가해줍니다.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
이후, wp-config-sample.php를 wp-config.php로 이름을 변경해줍니다.
sudo mv wp-config-sample.php wp-config.php
7. WordPress files 권한 변경
WordPress 웹 사이트가 제대로 작동하려면 파일 및 디렉터리의 소유권을 www-data 사용자 및 그룹으로 변경하여 Apache가 WordPress 파일 및 디렉터리를 읽고 쓸 수 있도록 해야 합니다.
sudo chown -R www-data:ubuntu /var/www/wordpress
sudo find /var/www/wordpress/ -type d -exec chmod 755 {} \;
sudo find /var/www/wordpress/ -type f -exec chmod 644 {} \;
sudo chmod 600 /var/www/wordpress/wp-config.php
sudo chmod 600 /var/www/wordpress/.htaccess
WordPress 파일 및 디렉터리에 대한 소유권과 권한을 확인하려면 다음과 같이 명령을 입력합니다.
ls -alh
total 224K drwxr-xr-x 5 www-data ubuntu 4.0K Apr 8 08:49 . drwxr-xr-x 4 root root 4.0K Apr 8 08:47 .. -rw------- 1 www-data ubuntu 200 Apr 8 08:48 .htaccess -rw-r--r-- 1 www-data ubuntu 405 Feb 6 2020 index.php -rw-r--r-- 1 www-data ubuntu 20K Jan 1 00:15 license.txt -rw-r--r-- 1 www-data ubuntu 7.3K Dec 28 17:38 readme.html -rw-r--r-- 1 www-data ubuntu 7.0K Jan 21 2021 wp-activate.php drwxr-xr-x 9 www-data ubuntu 4.0K Apr 5 19:13 wp-admin -rw-r--r-- 1 www-data ubuntu 351 Feb 6 2020 wp-blog-header.php -rw-r--r-- 1 www-data ubuntu 2.3K Nov 9 23:07 wp-comments-post.php -rw------- 1 www-data ubuntu 3.0K Dec 14 08:44 wp-config.php drwxr-xr-x 4 www-data ubuntu 4.0K Apr 5 19:13 wp-content -rw-r--r-- 1 www-data ubuntu 3.9K Aug 3 2021 wp-cron.php drwxr-xr-x 26 www-data ubuntu 12K Apr 5 19:13 wp-includes -rw-r--r-- 1 www-data ubuntu 2.5K Feb 6 2020 wp-links-opml.php -rw-r--r-- 1 www-data ubuntu 3.9K May 15 2021 wp-load.php -rw-r--r-- 1 www-data ubuntu 47K Jan 4 08:30 wp-login.php -rw-r--r-- 1 www-data ubuntu 8.4K Sep 22 2021 wp-mail.php -rw-r--r-- 1 www-data ubuntu 23K Nov 30 17:32 wp-settings.php -rw-r--r-- 1 www-data ubuntu 32K Oct 25 00:23 wp-signup.php -rw-r--r-- 1 www-data ubuntu 4.7K Oct 8 2020 wp-trackback.php -rw-r--r-- 1 www-data ubuntu 3.2K Jun 8 2020 xmlrpc.php |
8. WordPress에 Database Setup
아래 명령을 통해, WordPress에 연결할 Database를 입력해줍니다.
RDS에서 지정해주었던 USER 이름과 비밀번호를 입력하고, HOST 부분에는 RDS 엔드 포인트를 넣어줍니다.
sudo vim /var/www/wordpress/wp-config.php
9. WordPress Security Key
아래 명령을 통해 Secuirty Key 값을 얻습니다.
curl -s https://api.wordpress.org/secret-key/1.1/salt/
위 명령을 통해 얻은 Key 값을 아래 파일에 추가해줍니다.
sudo vim /var/www/wordpress/wp-config.php
10. WordPress에 Apache Virtual Host 생성
cd /etc/apache2/sites-available
- 기본 구성 파일을 사용하지 않기 위한 명령
sudo a2dissite 000-default.conf
- Apache2 구성 파일을 다시 로드
sudo systemctl reload apache2
- 새 WordPress 가상 호스트 구성 파일 생성
sudo vim wordpress.conf
아래 내용을 wordpress.conf에 추가해줍니다.
<VirtualHost *:80> ServerAdmin admin@example.com DocumentRoot /var/www/wordpress ServerName example.com ServerAlias www.example.com <Directory /var/www/wordpress/> Options +FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
- 공용 액세스 시 사용할 수 있도록 가상 호스트 구성 파일 사용
sudo a2ensite wordpress.conf
- Apache rewrite module에서 .htaccess 파일을 사용하도록 설정합니다.
sudo a2enmod rewrite
- 다음을 사용하여 WordPress 가상 호스트 구성을 확인합니다.
(올바르게 설정되었다면 Syntax OK를 출력합니다.)
sudo apache2ctl configtest
위 설정을 모두 마쳤다면, Apache2 Web Server를 실행해줍니다.
sudo service apache2 restart
11. EC2 인바운드 규칙 설정 (보안 그룹)
SSL을 설정할 경우 https, 설정하지 않을 경우 http를 설정해줍시다.
12. WordPress 접속
아래 명령을 통해, 자신의 AWS 서버 IP 주소를 확인합니다.
curl http://checkip.amazonaws.com
URL에 아래와 같이 서버 IP 주소를 입력해주면 WordPress에 접속할 수 있게 됩니다.
만일 접속이 되지 않는다면, 보안 그룹에 HTTP를 추가해주시면 됩니다.
http://IP주소
위 과정을 모두 마무리하시면, WordPress를 이용하실 수 있습니다.
참고 자료
[1] https://aws.amazon.com/ko/getting-started/hands-on/deploy-wordpress-with-amazon-rds/
[2] https://linuxbeast.com/tutorials/aws/how-to-install-wordpress-on-ec2-ubuntu-18-04/
'기타' 카테고리의 다른 글
Note (0) | 2023.12.03 |
---|---|
[AWS] EC2 인스턴스 생성 (0) | 2022.04.08 |
[AWS RDS] 데이터베이스 생성 (0) | 2022.04.08 |
[AWS EC2] Key 없이 SSH 접속하는 방법 (0) | 2022.01.17 |
[OSS] Suricata (Network Security Tool) (0) | 2021.11.16 |