インフラ

AmazonLinux2+Apache2.4+MySQL8.0+PHP7.4でLAMP構築する

投稿日:

新しき環境は良いことだ?

とりあえず使って判断してみようの精神。
結局、Apache2.4とMySQL8.0とPHP7.4のLAMP環境をササッと作ってあげたいですよね。
(WordPressの実行環境的にも新しいis最高みたいなこと言ってた)

バージョン選定理由をざっくり

Amazon Linux2

とりあえず立てるのが早いから。2020年01月現在、AmazonLinuxはサポート終了まで半年切ってますのでだめですよ!
何よりRHEL6系だし

 

Apache2.4

まぁ新しくApache立てるなら絶対使いたい2.2でしかないモジュールがあるんだ!とかでもない限り普通に2.4一択では。
Nginxではない理由は特にないです。Apacheで作りたかった。LAMPが文字通り良かった。

 

MySQL8.0

ここからが本題。
なんで8.0?というところで、確かに一部クエリの構文が5.7と大きく違うので初見でビビる。
ただ、身の回りでは未だに5.7を選定する場合が多く、8.0を立てる機会がなかったので……。

あと公式が5.7の2倍速いぜって言ってるその潔さに惚れたからです。こちらは冗談です。

 

PHP7.4

せっかくなら全部最新のものを!という精神。
シンプルに、7.x系の最新をセレクトしただけです。

 

構築してみた

AmazonLinux2のインスタンスを作成

AmazonLinux2のAMIからインスタンスを作成します。手順は省きます。
ただ、検証用にTシリーズを選択するのは良いですがt3a.nanoではMySQL8.0がスタート出来ませんでした。

必ずt3a.micro程度以上を選択してください。

 

最初にやること済ませとく

yumの更新します。必要に応じてカーネルアップデートもしておきます。

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo yum all clean
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo yum -y update
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo yum update kernel
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ reboot

 

Apacheインストール

これは1行で済みます。

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo yum -y install httpd
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ systemctl enable httpd
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ systemctl start httpd
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ httpd -v

 

PHP7.4インストール

まず、epelを有効化します。

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo yum -y install epel-release

 

次に、remiを有効化します。

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm

 

PHP7.4をインストールします。

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo yum -y install --enablerepo remi php74

 

お好みでPHP拡張もインストールします。

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo yum -y install --enablerepo remi php74-php-mbstring php74-php-gd php74-php-devel php74-php-xml php74-php-zip php74-php-posix php74-php-opcache php74-apcu

 

PHP7.4のインストール結果を確認します。

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo yum list installed | grep php74

 

この状態だとphp74でコマンド実行になってしまうのでphpで実行できるようにする。
which php74でコマンドの場所を確認してからlnコマンド

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ which php74
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo ln -sf /bin/php74 /bin/php

 

最後にPHPバージョン確認

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ php --version

 

最後にMySQL8.0インストール

MySQL8.0をインストールします。

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo yum -y install https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo yum -y install --enablerepo=mysql80-community mysql-community-server

 

MySQLバージョンチェック

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ mysql --version

 

rootユーザの一時パスワード確認

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ sudo cat /var/log/mysqld.log | grep "temporary password"

 

ログイン確認

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ mysql -uroot -p

 

MySQLログインして、以下クエリを発行。パスワードポリシをゆるふわに

mysql> set global validate_password.length=1;
mysql> set global validate_password.policy=LOW;

 

最後にrootユーザのパスワード設定や初期設定を行う
入力値は要件により任意(y/nでは私は全部yにしたりしてます)

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ mysql_secure_installation

 

おわりに

新しめのバージョンでLAMP環境チャッと作るよ!という時はこんな感じのやり方になると思います。

作ってみたは良いのですが、何を動かすか全然考えていなかったので、
一旦この後何を動かしてみるか考えてみたいと思います。

お疲れさまでした。

-インフラ
-, , , , ,

Copyright© すじこネット , 2019 - 2020 All Rights Reserved Powered by STINGER.