Implist | 個人プロダクト開発を加速させるための理論と実装

ConoHa VPSを使って「Laravelアプリケーション」を最速で公開する方法!初めてのデプロイを体験してみる


今回はConoHa VPSを利用して、Laravelアプリケーションを最速で公開する方法を紹介します。

ConoHa VPSにはLaravelアプリケーションを起動するテンプレートのようなものが用意されており、それを使えば簡単に起動することが出来ます。

ただ、以下は自分で設定しなければならないので、本番運用ですぐに使えるというわけではありません。

  • ドメインの紐付け
  • SSL化
  • すでにあるアプリケーションのデプロイ

IPは固定のものが与えられるので、「〇〇〇〇.〇〇〇〇.〇〇〇〇.〇〇〇〇」のようなIPにブラウザからアクセスすると、初期状態(インストールしたて)のLaravelのTOPページが閲覧できます。
今回の記事内容通りに進めると、以下画面にアクセス可能になります。

また、今回の内容(2022/8 現在)で手に入る環境は以下の通りです。

  • PHP 8.1.7
  • Laravel 9.19.0
  • MariaDB 10.8.3
  • Apache 2.4.41

かなり新し目の環境が手に入りました。
それではサーバーのセットアップ方法を見ていきましょう。

ConoHaダッシュボードよりサーバーの追加

サーバーの追加自体は数ステップですぐに終わります。
ConoHaのアカウントをまだ開設していない方は、開設しておいてください。

ダッシュボードの左側メニューより「+サーバー追加」を選択します。
この時上段メニューで「VPS」と選択されていることに注意してください。

「VPS割引きっぷ」は数カ月分まとめて購入すると割引が受けられるものですが、今回はお試しでのため「利用しない」を選択します。
また、一番安い512MBのマシンスペックを選択します。700円/月くらいと安めです。

イメージタイプのメニューでOSが選択されているので、「Rocky Linux」を選択します。これはCentOSの後継として使われ初めたOSのですね。

イメージタイプのメニューで「アプリケーション」を選択します。
rootパスワードを入力します。これはサーバーにrootユーザーでssh接続するときに利用するパスワードです(アプリケーションのメニューじゃなくても表示されているようです、OSでも)。

「他のアプリケーションを見る」を押すと、
 

「Laravel」が選択できます。
これを選択したらLaravelアプリケーションを稼働させるのに必要なものが自動でインストール・セットアップされるという感じです。

これで一通りの設定は終わりで、右側の追加を押すとサーバーが作成されます。数分時間がかかります。

数分後、ダッシュボードに先程作成したサーバーが表示されます。歯車マークの「詳細情報」を押すと、対象のサーバーの情報が色々閲覧できます。

 

詳細情報の画面に、固定のIPが表示されています。ここでは「160.251.47.172」となっています。
これをブラウザに打ち込むと、Laravelが稼働していることが分かると思います。

こうですね。
今回はドメインでアクセスするということはしませんが、本番環境として利用する場合はドメインの設定やSSLの設定などもしてください。

次はサーバーに入って、設定ファイルやアプリケーションがどういう構成で構築されているのか簡単に見ていきましょう。

 

サーバーに入ってみる

以下のようにrootでssh接続します。

ssh 160.251.47.172 -l root

するとパスワードが求められるので、サーバー作成時に入力したパスワードを入力します。

※今はssh接続で、rootユーザー、パスワードログインを行っていますがセキュリティ的に危険なので、本番利用などでは絶対にしないようにしましょう。

本来であればrootでのsshは禁止したり、パスワードを使ったログインはさせないような設定をするべきです。またsshのportを22から変更したりなどセキュリティには気をつけた設定を施します。

その辺りは、こちらで詳しく解説されています。

余談ですが私はssh接続時に何度かパスワードを間違ってしまって、ログインが拒否されるようになってしまいました。
これは今回作成したサーバーにfail2banというものが入っていたためです。fail2banは不正な接続を記録したりブロックしたりするツールで、ConoHa VPSのRocky Linuxにはデフォルトで入っているようです。セキュリティがきちんと意識されていますね。

このfail2banの初期設定では10分内に5回パスワードを間違えると、思考したIPからのssh接続をブロックするようになっていました。
fail2banについてはこちらで詳しく解説されています。

各種設定ディレクトリとコマンド

PHPやApache/MariaDBなどの各種ミドルウェアがインストールされているので、それらの設定を変更したり反映したりするために、設定ファイルのディレクトリの場所とコマンドを記載しておきます。

Laravelアプリケーション
/var/www/html/laravel

既存のlaravelアプリケーションがある場合はここにアップロードしてあげれば良いですね。ただ.envなどの接続情報は上書きしないように気をつけてください。

artisanコマンドは以下のような感じで実行します。

cd /var/www/html/laravel
php artisan --version
PHP
/etc/php/8.1/cli

PHPは8.1がインストールされていたので、上記のようなpathになっています。こちらにphp.ini等があるようです。

コマンドは

php -v
Apache
/etc/apache2

Apacheは上記のディレクトリに設定ファイルがありました。

起動コマンド等は以下の様な感じです。

# 起動状況確認
systemctl status apache2

# 停止
systemctl stop apache2

# 起動
systemctl start apache2
MariaDB
/etc/mysql

DBに接続する場合は以下コマンドを実行してください。

mysql -u root

rootのパスワードは「なし」で設定されているようなので、何も入力せずともアクセス可能です。
これもこのまま本番利用はしないように気をつけてください。rootに強固なパスワードを設定し、アプリケーションや普段遣いでは適当なユーザーを作って利用するようにしましょう。

 

今回はConoHa VPSで用意されているLaravelの設定を試してみました。
本番利用するにはまだまだ設定しないといけないことは沢山ありますが、ひとまずインターネット上で動かしてみるということは出来ました。

※サーバーをもう使用しない場合は停止ではなく削除をするようにしてください。ConoHaは停止中も課金されるのでその点注意です。