Amazon Linux 2에서 서버 생성(Apache2.4+PHP7.2+MariaDB)
개요
EC2 인스턴스를 시작하고 Apache2.4와 PHP7.2와 MariaDB를 설치해 보았으므로 메모해 둔다.
인스턴스 시작
학습용의 기동이므로, 독립형으로 기동해 모두 인스톨 하기 때문에, 인스턴스를 1개 기동.
EC2 -> 인스턴스 -> 인스턴스 생성
※ Amazon Linux 2 AMI 선택
※ 보안 그룹은 80포트와 22포트를 해제한다.
(22포트는 불필요하지만 학습용이므로 간략화를 위해 설정)
서버에 연결
터미널을 사용하여 시작된 EC2 인스턴스에 연결합니다.
※ IAM 유저로 ssh 접속.
※ 계정은 다요소 인증(MFA)을 설정하여 이용하지 않는다.
터미널
$ ssh aws
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
Run "sudo yum update" to apply all updates.
우선, yum을 갱신해 둔다.
터미널
$ sudo yum update -y
Amazon Linux Extras 리포지토리
그대로 설치하면 PHP5. x계이기 때문에, 「amazon-linux-extras」를 사용하기로 합니다.
"amazon-linux-extras"로 설치할 수 있는 내용을 확인한다.
터미널
$ amazon-linux-extras list
...
15 php7.2 available \
[ =7.2.0 =7.2.4 =7.2.5 =7.2.8 =7.2.11 ]
...
17 lamp-mariadb10.2-php7.2 available \
[ =10.2.10_7.2.0 =10.2.10_7.2.4 =10.2.10_7.2.5
=10.2.10_7.2.8 =10.2.10_7.2.11 ]
...
설치되는 내용을 확인해 본다.
터미널
# PHP7
$ amazon-linux-extras info php7.2
php7.2 recommends php-cli # yum install php-cli
php7.2 recommends php-pdo # yum install php-pdo
php7.2 recommends php-fpm # yum install php-fpm
php7.2 recommends php-json # yum install php-json
php7.2 recommends php-mysqlnd # yum install php-mysqlnd
# PHP拡張モジュール(mariadb)
$ amazon-linux-extras info lamp-mariadb10.2-php7.2
lamp-mariadb10.2-php7.2 recommends php-cli # yum install php-cli
lamp-mariadb10.2-php7.2 recommends php-pdo # yum install php-pdo
lamp-mariadb10.2-php7.2 recommends php-fpm # yum install php-fpm
lamp-mariadb10.2-php7.2 recommends php-json # yum install php-json
lamp-mariadb10.2-php7.2 recommends php-mysqlnd # yum install php-mysqlnd
lamp-mariadb10.2-php7.2 recommends mariadb # yum install mariadb
PHP7.2.0 + 확장 모듈
PHP를 설치해 봅니다.
터미널
$ sudo amazon-linux-extras install -y \
lamp-mariadb10.2-php7.2=10.2.10_7.2.0 \
php7.2=7.2.0
설치 상황을 확인.
터미널
# PHP7
$ php -v
PHP 7.2.0 (cli) (built: Dec 13 2017 00:38:30) ( NTS )
# 拡張モジュール(mariadb)
$ yum list installed mariadb* | grep amzn2extra-lamp-mariadb10.2-php7.2
mariadb.x86_64 3:10.2.10-2.amzn2.0.1 @amzn2extra-lamp-mariadb10.2-php7.2
mariadb-common.x86_64 3:10.2.10-2.amzn2.0.1 @amzn2extra-lamp-mariadb10.2-php7.2
mariadb-config.x86_64 3:10.2.10-2.amzn2.0.1 @amzn2extra-lamp-mariadb10.2-php7.2
mariadb-libs.x86_64 3:10.2.10-2.amzn2.0.1 @amzn2extra-lamp-mariadb10.2-php7.2
MariaDB (10.2.10)
yum 명령으로 설치합니다.
터미널
# インストール
$ sudo yum install -y mariadb-server
# 起動
$ sudo systemctl start mariadb
# 有効化
$ sudo systemctl enable mariadb
$ sudo systemctl is-enabled mariadb
# セキュリティ設定
$ sudo mysql_secure_installation
Set root password? [Y/n]
Remove anonymous users? [Y/n]
Disallow root login remotely? [Y/n]
Remove test database and access to it? [Y/n] n
Reload privilege tables now? [Y/n]
...
Thanks for using MariaDB!
# バージョン確認
$ mysql -u root -e 'status' -p
mysql Ver 15.1 Distrib 10.2.10-MariaDB, for Linux (x86_64) using ...
아파치 2.4
yum 명령으로 설치합니다.
터미널
# インストール
$ sudo yum install -y httpd
# 環境設定
$ sudo vi /etc/httpd/conf/httpd.conf
--------------------------------------------------------
-「Forbidden」ページからOS,IP,Apacheなどの情報を非表示にする
ServerTokens Prod
ServerSignature Off
<Directory "/var/www/html">
- ディレクトリ構造を表示しない
Options -Indexes FollowSymLinks
- htaccessを有効にする
AllowOverride All
</Directory>
--------------------------------------------------------
# 環境設定ファイルのチェック
$ sudo httpd -t
# 起動
$ sudo systemctl start httpd
# 有効化
$ sudo systemctl enable httpd
$ sudo systemctl is-enabled httpd
enabled
# バージョン確認
$ httpd -v
Server version: Apache/2.4.34
ec2-user에 apache 그룹을 추가합니다.
터미널
# グループ追加
$ sudo usermod -a -G apache ec2-user
# ssh再接続して、所属グループを確認
$ exit
$ ssh aws
$ groups
ec2-user adm wheel apache systemd-journal
소유권 변경.
터미널
$ sudo chown -R ec2-user:apache /var/www
$ sudo chmod 2775 /var/www
$ ls -la /var/
drwxrwsr-x 4 ec2-user apache 33 12月 12 13:46 www
권한 변경.
터미널
$ find /var/www -type d -exec sudo chmod 2775 {} \;
$ find /var/www -type f -exec sudo chmod 0664 {} \;
$ ls -la /var/www
drwxrwsr-x 2 ec2-user apache 6 9月 1 05:32 cgi-bin
drwxrwsr-x 2 ec2-user apache 6 9月 1 05:32 html
index.php 파일 배치
/var/www/html/index.php
<html>
<body>
Hello World.<br>
<?php echo 'hoge'; ?>
</body>
</html>
테스트
시작된 인스턴스의 "공용 DNS(IPv4)"에 설명된 IP 주소에 액세스해 봅니다.
※ 이번 IP 주소: IPv4 퍼블릭 IP 54.92.29.7
AMI 생성
재사용할 수 있도록 AMI(Amazon Machine Image)를 작성해 둔다.
대상의 인스턴스를 정지해 두고, 액션->이미지->이미지의 작성을 실행.
이미지 이름과 설명을 입력하고 "이미지 만들기"버튼을 눌러 AMI를 만듭니다.
AMI에서 EC2 인스턴스 생성
EC2 -> 인스턴스 -> 인스턴스 생성 -> 내 AMI에서 이번 생성한 AmazonLinux2-httpd2.4-php7.2-mariadb10.2를 선택하여 인스턴스를 생성합니다.
이상입니다.
참고 사이트
Reference
이 문제에 관하여(Amazon Linux 2에서 서버 생성(Apache2.4+PHP7.2+MariaDB)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/reflet/items/3359762dd1e2e1c39509텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)