既にインスタンスを作成して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 git@github.com
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