ローカルamazon linux 2でのLaravel環境構築

– ローカルでのAmazon Linux 2環境構築

### vagrant init & ssh接続
// 割愛
$ cat /proc/version
Linux version 4.14.154-128.181.amzn2.x86_64 (mockbuild@ip-10-0-1-129) (gcc version 7.3.1 20180712 (Red Hat 7.3.1-6) (GCC)) #1 SMP Sat Nov 16 21:49:00 UTC 2019

### git install
// 割愛
$ git –version
git version 2.19.2

### node.js install
// 割愛
$ node –version
v8.17.0
$ npm –version
6.13.4

### apache install
$ sudo yum install httpd
$ sudo systemctl start httpd
$ sudo systemctl status httpd
$ sudo systemctl enable httpd
$ sudo systemctl is-enabled httpd

### PHP >= 7.2.0 install
https://readouble.com/laravel/6.x/ja/installation.html
$ sudo yum list | grep php
$ amazon-linux-extras
$ amazon-linux-extras info php7.3
$ sudo amazon-linux-extras install php7.3
$ yum list php* | grep amzn2extra-php7.3
$ sudo yum install php-cli php-pdo php-fpm php-json php-mysqlnd php-mbstring
$ php -v

### MySQL8.0
$ sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
$ sudo yum install –enablerepo=mysql80-community mysql-community-server
$ mysqld –version
$ sudo systemctl start mysqld
$ sudo cat /var/log/mysqld.log | grep “temporary password”
$ mysql -u root -p
> ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘${temporary password}’;
> SET GLOBAL validate_password.length=6;
> SET GLOBAL validate_password.policy=LOW;
> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘${new password}’;
$ sudo systemctl enable mysqld

### ansible
$ sudo amazon-linux-extras install ansible2
$ ansible –version

Laravel本丸はhomesteadベースで動いているので、Homesteadとamazon-linux-extrasの動向には注意しておいた方が良いだろう。
RHEL系なので、ローカルはCentOSでも良いという意見もあるが、商用&STG環境とDEV環境が微妙に異なると、デプロイ時にちょっとしたミスが起こることがあるので、特別な理由がない限り商用とDEVの環境はできるだけ併せた方が良い。