* 주의 Amazon Linux AMI와 Amazon Linux 2는 다르다. 아래 과정은 Amazon Linux 2 의 과정이다.
Amazon Linux는 AMI(Amazon Machine Image)중 하나로, 리눅스 Redhat Enterprise Linux 배포판을 배이스로 한다.
자세한 사항은 아래 블로그 참고.
https://pikabu.tistory.com/44
Amazon Linux 인스턴스를 생성하고 접속하는 방법이 선행되어야 한다. (아래 참고)
https://ansan-survivor.tistory.com/1070
이제 위에 생성한 Amazon Linux에 LAMP를 설치한다.
1. yum 업데이트
sudo yum update -y
2. Amazon Linux용 마리아DB(mysql) 및 PHP레포 받기.
sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
(sudo: amazon-linux-extras: command not found 오류가 발생시, OS가 Amazon Linux 2 AMI로 실행되지 않은 것)
3. 마리아DB 설치
sudo yum install -y httpd mariadb-server
4. 웹서버 실행, 부팅시 자동실행 설정, 잘 실행되는지 확인.
sudo systemctl start httpd
sudo systemctl enable httpd
sudo systemctl is-enabled httpd
5. 보안 인바운드 규칙의 HTTP, HTTPS 포트 개방 확인
이제 브라우저에 퍼블릭 DNS를 검색해보면 아래와 같은 페이지가 나온다.
6. 파일 권한 설정
6-1. 그룹 생성
* 기본적으로 /var/www/html 의 소유권한이 root로 되어있다.
이 디렉터리 파일 조작을 위해서는 현재 유저인 ec2-user 으로 바꿔주어야 한다.
ec2-user를 apache 라는 그룹을 생성해서 추가한 후, 소유권을 주고 쓰기(write)권한까지 부여한다.
sudo usermod -a -G apache ec2-user
exit
그룹 포함 여부 확인
groups
6-2. 소유 권한 변경
sudo chown -R ec2-user:apache /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 애플리케이션과 같은 콘텐츠를 추가할 수 있음.
7. php파일 생성
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
브라우저 창을 통해 php가 잘 나오는지 확인. 아까 작성한 DNS뒤에다가 "/phpinfo.php"를 추가하면 된다.
작동 여부를 확인했으면, 보안을 위해다시 phpinfo.php 파일을 삭제해준다.
rm /var/www/html/phpinfo.php
이제 웹서비스는 정상적으로 작동한다.
데이터베이스 서버 보안 설정
1. Mariadb 실행, mysql 보안 설치
sudo systemctl start mariadb
sudo mysql_secure_installation
y를 누르고 암호를 설정한다. (설정 안하려면 엔터로 넘어간다)
암호는 2번 입력해야 하며, 참고로 보여지지 않는다.
총 4번의 y를 눌러서
- Y를 눌러서 익명 사용자 계정을 제거합니다.
- Y를 입력하여 원격 루트 로그인을 비활성화합니다.
- Y를 눌러서 테스트 데이터베이스를 제거합니다.
- Y를 눌러서 권한 테이블을 다시 로드하고 변경사항을 저장합니다.
2. 부팅시 MariaDB가 자동 실행되도록 설정
sudo systemctl enable mariadb
3. 웹기반 DB관리도구 phpMyAdmin 설치에 필요한 종속성 항목들 설치
sudo yum install php-mbstring php-xml -y
4. 아파치, php 재시작
sudo systemctl restart httpd
sudo systemctl restart php-fpm
5. html 디렉터리로 이동 후, wget명령을 이용한 phpMyAdmin 설치 파일 다운로드
cd /var/www/html
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
6. phpMyAdmin 폴더를 생성, 해당 폴더로 압축해제
mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1
7. 필요없는 tar 제거
rm phpMyAdmin-latest-all-languages.tar.gz
8. 마리아 db 시작
sudo systemctl start mariadb
9. 웹브라우저로 phpMyAdmin 로그인 페이지 접속하기
내 DNS도메인 뒤에 "/phpMyAdmin" 입력하면 된다.
이제 기본적인 웹서비스가 구축되었다.
DNS 네임서버 등록 방법은 아래 참고.
https://ansan-survivor.tistory.com/1073
(참고 링크)
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-lamp-amazon-linux-2.html
(아래 링크는 AWS 우분투로 구축)
https://ansan-survivor.tistory.com/1063