AWS EC2(AmazonLinux2)にcomposer + Laravel 6.xをインストールした記録
タイトル通り、ec2にLaravel6.xの最新(LTS)をインストールした手順を記録する(Φω|
それにしてもインストール自体は言語のパッケージマネージャをインストール後に
プロジェクト名を作成するという最近流行りの方法なのに、スワップファイルを
作成して対応ってのは、どういうことなんだってばよw
別件で、laravel-oci8をcomposerでインストールしようとして、out of memory
でエラーになった。なんか、インストールしようとしているパッケージの依存関係
が多いとパッケージのメタ情報のjsonを大量に読み込む必要があり、メモリが上限
に達してエラーになる場合があるらしい...(ΦωΦ;
[手順]
■ composerをインストール。
1. 公式のCommand-line installationに従い、EC2にsshログインしているユーザ
のhomeディレクトリ以下にインストールを実行。
ここでは、/home/ec2-user
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('sha384', 'composer-setup.php') === 'e5325b19b381bfd88ce90a5ddb7823406b2a38cff6bb704b0acc289a09c8128d4a8ce2bbafcd1fcbdc38666422fe2806') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
2. EC2にsshログインしているユーザのhomeディレクトリ以下のセットアップ
スクリプトを削除。
$ rm composer-setup.php
3. 下記コマンドを実行してcomposerの実行ファイルを移動。
$ sudo su -
# mv /home/ec2-user/composer.phar /usr/local/bin/composer
4. 下記コマンドを実行してcomposerの実行ファイルを実行。
# php /usr/local/bin/composer
5. 下記コマンドを実行してパスを設定。(ユーザ名にはssh接続しているEC2
インスタンスのユーザ名を入力する。Apacheのディレクトリルートで実行
することを考えフルパスでパスを通す。)
$ echo "export PATH=/home/ec2-user/.config/composer/vendor/bin:$PATH" >> ~/.bash_profile
$ source ~/.bash_profile
6. 下記コマンドを実行してコマンドにパスが通ったことを確認。
$ composer
■ Laravel6.xをインストール。
0. 前提条件
0-1. タイムゾーンを日本に設定。
$ sudo su -
# cp /etc/localtime /etc/localtime.org
# cp -p /usr/share/zoneinfo/Japan /etc/localtime
0-2.Laravelインストール前にメモリ不足エラーになることを考慮して、1GBほど
スワップファイルを作成。
# dd if=/dev/zero of=/swapfile bs=1M count=1024
# chmod 600 /swapfile
# mkswap /swapfile
# swapon /swapfile
0-3. 以下コマンドでスワップファイルが作成されたことを確認。
$ free -m
1. /var/www に移動。
$ cd /var/www
2. composerが実行できるようにディレクトリの所有者を変更。
$ sudo su -
# chown ec2-user:ec2-user html/
# exit
$ cd /var/www/html/
3. composerで6.xの最新でLaravelプロジェクトを作成し、インストール。
$ composer create-project --prefer-dist laravel/laravel project_name "6.*"
※ここでproject_name(app_name)はtestとしている。
$ composer create-project --prefer-dist laravel/laravel test "6.*"
4. Laravelプロジェクト作成後の設定。
composerのupdateを行う。
$ composer update
4-1. test以下のパーミッションを変更。
$ chmod -R 777 bootstrap/cache
$ chmod -R 777 storage
4-2. Laravelをapache上で動かすために、ドキュメントルートの権限を変更。
ユーザをapacheグループに追加。
$ sudo su -
# usermod -a -G apache ec2-user
# exit
4-3. グループのメンバーシップを検証。
$ groups
4-4. グループ所有権をapacheグループに変更。
$ sudo su -
# chown -R ec2-user:apache /var/www
4-5. グループの書き込み許可を追加。
# chmod 2775 /var/www
4-6. サブディレクトリにグループIDを設定するため、/var/www とサブディレクトリ
を許可。
# find /var/www -type d -exec chmod 2775 {} \;
4-7. グループ書き込み許可を追加するため、/var/www とサブディレクトリの
ファイル許可を再帰的に変更。
# find /var/www -type f -exec chmod 0664 {} \;
5. apacheにVirtualHostを設定
/etc/httpd/conf.d 配下にVirtualHost設定用のvhost.confファイルを作成。
conf.d以下のファイルはapache起動と共に自動で読み込まれる。
# vim /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
DocumentRoot /var/www/html/test/public
ServerName test-laravel.com
ServerAlias test-laravel.com<Directory "/var/www/html/test/public">
#.htaccessを利用可能にする
#AllowOverride All# Laravelで利用する環境変数を development に設定
#SetEnv APP_ENV development
#アクセス許可
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
8. vhost.confを編集して保存したらapacheを再起動。
# systemctl restart httpd.service
or
# systemctl stop httpd.service
# systemctl start httpd.service
9. Windows10のhosts(C:\Windows\System32\drivers\etc\hosts)ファイルに割り当てら
れたEC2のipとVirtualHostに設定したServerNameを追加。
10. WebブラウザでVirtualHostに設定しているServerNameでLaravelのWelcome
ページにアクセスできることを確認。
11. laravelコマンドをどこからでも実行できるようにパスに追加。
[参考サイト]