この記事では自作のlaravelアプリを以下の記事を参考にしながら、デプロイする際にインスタンスでたたいたコマンドを記録している。
前提
- 以下の記事で2.「ネットワークの構築」から3.1の3.「インスタンスの詳細設定」の高度な詳細ユーザーデータを編集を行ず、3.2の11.(RDSを使用したDBのサーバー構築が完了した)まで完了している
- https://zenn.dev/tornlch/articles/9e263859030c0c
ユーザーデータの編集を行わない代わりに直接コマンド叩く
step1 インスタンスに接続
- サービスでEC2を選択、作成したインスタンスにチェックをつけ、インスタンスの状態から開始を押す
- インスタンスが実行中になったら接続をクリック
- 今回はEC2 Instance Connect で接続→コンソールが開く
- ※注意 ここからコマンドを叩いていくのだが、参考にした記事のユーザーデータ編集の内容をそのまま使用している箇所もあります。
$ sudo yum install -y httpd git
$ sudo amazon-linux-extras install php8.0
$ sudo yum install -y php-devel php-mbstring php-mcrypt php-xml php-gd php-opcache php-pecl-zip
- 必要なライブラリーのインストール。ご自身のlaravel アプリケーションに合わせてください。私の場合はphp8.0で動きました。
$ sudo chmod 777 /var/www/html
$ sudo git clone https://github.com/your application url /var/www/html/laravel-sample
$ sudo chmod -R 777 /var/www/html/laravel-sample/bootstrap/cache
$ sudo chmod -R 777 /var/www/html/laravel-sample/storage
- ご自身のアプリケーションをcloneして、権限の付与。(chmodに関してはまだ学習不足です。)
$ export HOME="/root"
$ sudo curl -sS https://getcomposer.org/installer | sudo php
$ sudo mv composer.phar /usr/local/bin/composer
$ cd /var/www/html/laravel-sample
- composerのインストーラーをダウンロードし、mvで移動
ここから少し詰まったので詳しく書いていく。
- やりたいことはcomposerのインストール
$ composer install
# 結果 composer updateをしてくださいとエラーがでる
- 次に
$ composer update
# 結果 Cannot create cache directoryとエラーがでる
- やってみたこと 権限の付与
$ sudo chown -R ec2-user $HOME
- ここから少し特殊だが、そのままcomposer updateをするとそのままエラーのままだが、一度インスタンスの接続を切って、再度EC2 Instance Connectで接続して以下のコマンドを叩くとエラーの内容が変わった!!
$ cd /var/www/html/laravel-sample
$ composer update
# 結果 composer.lockがありませんというようなエラーがでる
- composer.lockファイルを作成し、権限を与え、再度composer update
$ sudo touch composer.lock
$ sudo chown -R ec2-user ./composer.lock
$ composer update
- ここでupdate成功 以下は参考記事をもとに叩いた!
$ composer install
$ sudo sed -i -e '119s/html/html\/laravel-sample\/public/g' /etc/httpd/conf/httpd.conf
$ sudo sed -i -e '151s/None/All/g' /etc/httpd/conf/httpd.conf
$ sudo chkconfig httpd on
$ sudo service httpd start
- クローンしたとき.envファイルはないのでコピーする
$ sudo cp .env.example .env
$ sudo nano .env
最後に以下のコマンド打つ
$ sudo php artisan key:generate
$ sudo php artisan migrate
確認
- 「http:// your public ip」にアクセスしてページが表示されれば成功だ
最後に
Laravel学習期間1か月でアプリを作り、デプロイまでするといった目標をもとに試行錯誤し、実践したものであり、叩いたコマンドの意味をすべて把握しているわけではありません。そのため、それぞれの環境によっては不必要なコマンド、足りないコマンドもあるかと思います。私の環境ではこの記事に載せたコマンドでデプロイできたので、部分的にも参考にしていただければなと思います。閲覧ありがとうございました。
参考文献
この記事は以下の情報を参考にして執筆しました。