AWS EC2 Amazon Linux 2 に Laravel 環境構築 + デプロイ [とりあえず最速でデプロイしたい人向け]


既にインスタンスを作成してssh接続が完了している前提です。
デプロイする場合は、githubにリモートリポジトリが作られている必要があります。
AmazonLinux2にLaravel環境を構築して各種設定を行い、実際に動かすまでの手順を共有します。

Apache 2.4
MySQL 8.0.18
PHP 7.3

yumアップデート

$ sudo yum update -y

Apacheのインストール

// インストール
$ sudo yum install httpd
// 起動
$ sudo systemctl start httpd
// 自動起動設定
$ sudo systemctl enable httpd
// 動作確認
$ systemctl status httpd.service

MySQLのインストール

// mysql8.0リポジトリの追加
$ sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y
// インストール
$ sudo yum install mysql-community-server -y

// 起動
$ sudo systemctl start mysqld.service
// 自動起動設定
$ sudo systemctl enable mysqld.service
// 動作確認
$ systemctl status mysqld.service

// デフォルトパスワード確認
$ sudo cat /var/log/mysqld.log | grep password
// 初期設定
$ mysql_secure_installation

初期設定でrootのパスワードを設定してください。
rootログイン後は各自MySQLの設定を行ってください。

PHPのインストール

$ sudo amazon-linux-extras install php7.3
$ sudo yum install php-cli php-xml php-json php-mbstring php-process php-common php-fpm php-zip php-mysqlnd -y

Gitのインストール

$ sudo yum install git

githubとssh接続

$ cd ~/.ssh
$ ssh-keygen -t rsa -b 4096
$ cat ~/.ssh/id_rsa.pub
コピーしてgithubに公開鍵を登録する
$ ssh -T [email protected]

composerのインストール

$ sudo curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer

Laravelのインストール

// メモリ不足を回避するためにswapfileを作成する
$ sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile

// htmlに777の権限
$ sudo chmod -R 777 /var/www/html
$ cd /var/www/html
$ composer create-project --prefer-dist laravel/laravel app_name
または、
$ sudo git clone clone_url

// .envファイルの設定
$ cd app_name
$ cp .env.example .env
必要項目を設定する

Laravelの設定

$ cd
$ sudo chown -R ec2-user:apache /var/www/html
$ sudo chmod 2775 /var/www/html && find /var/www/html -type d -exec sudo chmod 2775 {} \;
$ cd /var/www/html/app_name
$ composer install
$ composer update
$ php artisan key:generate

パーミッションの設定

$ sudo chmod -R 777 storage
$ sudo chmod -R 775 bootstrap/cache

Apacheの設定

$ sudo vi /etc/httpd/conf/httpd.conf

// 変更
DocumentRoot /var/www/app_name/public

// 追加
<Directory "/var/www/html/app_name/public">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Apacheの再起動

sudo systemctl restart httpd

これでアクセスすれば表示されるます。
もし違っている部分があれば指摘していただけると幸いです。

参考記事
https://medium.com/@hbayraktar/how-to-install-laravel-5-on-amazon-linux-2-303ef2d38fa4