自分のための備忘録。
先に書いておくハマりどころ
- Laravel8 には php7.3 以上が必要!!
- yum で必要なバージョンが入ってくれるとは限らない!!
ちゃんと確認しておきましょう(自戒)
(前準備)EC2インスタンス立ち上げ
今自分がどこのリージョンにいるかを確認しつつ、「EC2」->「インスタンスを起動」。
AMI は Amazon Linux 2 AMI (HVM), SSD Volume Type を選択。
セキュリティグループには http(80) と https(443) を追加しておく。
起動したら適当な term でログイン。
ここでは作業ユーザは ec2-user で進めます。
いろいろインストール
まずは今の状態で yum update。
$ sudo yum update
php7.3 のインストール
何も考えずに yum install php とかすると5系が入るので論外。
remi を使う手もあるが、AmazonLinux2 なので Amazon Linux Extras を使う。
$ sudo amazon-linux-extras install php7.3
$ sudo yum install php-mbstring php-dom # 追加で必要なものは yum でOK
httpd2.4 のインストールと設定変更
こっちは yum で素直に入ってくれる。
$ sudo yum install httpd
$ sudo systemctl start httpd # httpd 起動
$ sudo systemctl enable httpd # 以後システム起動とともに httpd も起動
$ sudo usermod -a -G apache ec2-user # ec2-user を apache グループに追加
$ exit # usermod 反映のため一旦ログアウト(ログインしなおす)
$ sudo chown -R ec2-user:apache /var/www # /var/www 以下のオーナー、グループを ec2-user:apache に変更
$ sudo chmod 2775 /var/www && find /var/www -type d -exec sudo chmod 2775 {} \; # ディレクトリの許可設定を変更
$ find /var/www -type f -exec sudo chmod 0664 {} \; # ファイルの許可設定を変更
https の対応。
$ sudo yum install mod_ssl # mod_ssl をインストール
$ cd /etc/pki/tls/certs # ディレクトリを移動して…
$ sudo ./make-dummy-cert localhost.crt # オレオレ証明書を作成
$ sudo vi /etc/httpd/conf.d/ssl.conf # ssl.conf を開いて、下記の行をコメントアウト
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
$ sudo systemctl restart httpd # httpd 再起動
ここまでできたら http://~ でも https://~ でも apache のテストページが表示されるはず。
もちろんオレオレなので https でのアクセスは警告が出る。
mariadb のインストール
mariadb も amazon-linux-extras からインストール。執筆時点の最新は10.5。
yum だと5系が入るので論外。
$ sudo amazon-linux-extras install mariadb10.5 # mariadb をインストール
$ sudo systemctl start mariadb # mariadb を起動
$ sudo systemctl enable mariadb # mariadb をシステム起動時に起動
$ sudo mysql_secure_installation # mariadb のルートパスワード設定。その他の項目も全てY
接続できたら成功。
laravelで利用するDBを作っておく。
MariaDB[(none)」> create database laravel;
Laravel8 の準備
composer インストール
$ sudo curl -sS https://getcomposer.org/installer | php # composer をインストール
$ sudo mv composer.phar /usr/local/bin/composer # composer.phar を "composer" で動かせるように bin 下へ
Laravel を クローン
8.x であることを確認。
$ sudo yum install git # git が入っていなかったらインストール
$ cd /var/www # httpd のドキュメントルートへ移動
$ git clone https://github.com/laravel/laravel.git # クローン
httpd.conf の設定変更
$ sudo vi /etc/httpd/conf/httpd.conf # DocumentRoot変更、Directoryディレクティブ追加
DocumentRoot "/var/www/laravel/public"
<Directory /var/www/laravel/public>
AllowOverride All
</Directory>
$ sudo systemctl restart httpd # 再起動
クローンしたLaravelの下でパッケージ取得
$ cd /var/www/laravel
$ composer update
必要な場所へパーミッションの変更
$ sudo chmod -R 777 /var/www/laravel/storage
$ sudo chmod -R 777 /var/www/laravel/bootstrap/cache
.env ファイルの作成
$ cp .env.example .env
$ vi .env
APP_URL、DB_* を設定
アプリケーションキーの生成
$ php artisan key:generate
マイグレーションとシーディングでDB構築
$ php artisan migrate
$ php artisan db:seed
完成
参考文献