ConoHa VPS

ConoHa VPSにLaravelアプリをデプロイしてみる

ConoHa VPSでLaravelアプリを動かしたいんだけど?

そんな思いを実現させるために、この記事ではConoHa VPSでLaravelアプリケーションを動かしたいと思います。

この記事で分かること

  • ConoHa VPSでLaravelテンプレートを使ってサーバーを作る方法
  • ConoHa VPSにLaravelアプリケーションをアップロードして動かす方法

ConoHa VPSでサーバーを構築して、ローカルのLaravelアプリケーションをアップロードして動かすまでやっていこうという記事です。同じようなことをしてみたい方は多少参考になると思います。

ConoHa VPSでLaravelアプリケーションを動かしていきましょう。

ConoHa VPSでLaravelアプリケーションを動かす手順

今回ConoHa VPSを使ってLaravelアプリを動かす流れとしてはこうです。

  • ConoHa VPSでサーバー構築をする
  • 構築したサーバーにLaravelアプリをアップロードする
  • Laravelアプリの設定をして動かす

文字で見るとシンプルですね。まあやっていきましょう。

サーバーはLaravelテンプレートを使って構築する

OSだけ選択して後は地道にコマンドを叩いてサーバー環境を作っていってもいいんだけど、ConoHa VPSにはアプリケーションテンプレートっていうアプリケーションを選択すると、そのアプリケーションが動くサーバーを用意してくれる機能があります。

今回はLaravelを選んでサーバー構築をしようというところ。ちなみにLaravelを選んでサーバー構築するとOSはUbuntuになります。

ConoHa VPSでサーバー構築をする

ConoHa VPSで早速サーバーを立てていくんだけど、今回立てるサーバーは以下のようにします。

  • サービス・・・VPS
  • VPS割引きっぷ・・・利用しない
  • メモリ・・・1GB
  • イメージタイプ・・・Laravel
  • オプション・・・SSH Keyだけ作成したものを選択。新規作成してもいいし、いらないなら使用しないでOK。また、SSH Keyを作成するとパスワードでのログインが設定でできなくなります。(PasswordAuthenticationがnoになる)

これで追加ボタンを押すとサーバーが作成されます。

サーバーの中身を確認する

サーバーを構築したらどんなものが入っているの確認してみましょう。ステータスが起動中になったらネームタグをクリック。

コンソールがあるので、ここからターミナルのようにコマンドで中を見ることができます。

ログインのユーザー名は以下。

  • ユーザー名・・・root
  • パスワード・・・設定したrootパスワード

SSH接続してみた方がやりやすい

コンソールよりSSH接続してみた方がかなりやりやすいです。ConoHa VPSでSSH接続する方法で書いているので、やり方がわからない場合は参考にどうぞ。

色々確認してみるとこんな感じでした。

  • webサーバー・・・Apache2
  • Laravelバージョン・・・9.19.0
  • Composerバージョン・・・2.3.9
  • phpバージョン・・・8.1.7
  • mysqlバージョン・・・15.1(MariaDB)

コマンドを打ってみた。

# php artisan --version
=> Laravel Framework 9.19.0
# composer --version
Composer version 2.3.9 2022-07-05 16:52:11
# php -v
PHP 8.1.7 (cli) (built: Jun 25 2022 08:12:59) (NTS)
# mysql --version
mysql  Ver 15.1 Distrib 10.8.3-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

またDocumentRootは/var/www/html/laravelで、/etc/apache2/sites-available/000-default.confには「DocumentRoot /var/www/html/laravel/public」と記載されています。

既にLaravelのアプリは作られていますね。

ルーティングを見るとトップページはwelcome.blade.phpが表示されるようになっていて、IPアドレスをブラウザで見てみるとこうです。

LaravelアプリケーションをConoHa VPSで立てたサーバーにデプロイする

既にLaravelを動かすのに必要なものは揃っているので、ローカルで作成したLaravelプロジェクトもアップロードすれば公開できるはずです。

もちろんバージョン違いのエラーとか最初の設定とかはあるけど・・・

デプロイするアプリケーション

デプロイするアプリケーションはこれにします。とても単純なTODOアプリです。

環境はDockerで作っているけど、使用しているimageはphp:8-fpm、nginx、mysql5.7です。

  • Laravel Framework 8.74.0
  • Composer version 2.1.14 2021-11-30 10:51:43
  • PHP 8.1.0 (cli) (built: Nov 30 2021 06:20:01) (NTS)

VPSで作成したバージョンと諸々違うからしんどい気もするけど、まあやってみます。

デプロイする

FTPソフトを使ってローカルにあるTODOアプリケーションをアップロードします。/var/www/html/laravel/にあるフォルダたちはいらないので全部削除してアップロード。

そしてIPアドレスをブラウザに打って確認してみましょう。

ほぼ間違いなくエラーが出るはずですので、解消していきましょう。自分の場合は以下を実行しました。

  • .envの編集
  • php artisan key:generate
  • composer install
  • php artisan migrate
  • a2enmod rewrite・・・mod_rewriteの有効化

.envの編集

本番環境用の.envを作成しましょう。

APP_NAME=todo
APP_ENV=production
APP_KEY=コマンドで作成する
APP_DEBUG=false
LOG_CHANNEL=stack
APP_URL=アプリのURL

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=データベース
DB_USERNAME=データベースのユーザー名
DB_PASSWORD=データベースのパスワード

APP_KEYは以下コマンドで記述されます。

$ php artisan key:generate

composer install

composer installを実行します。

$ composer install

php artisan migrate

データベースにテーブルを作りましょう。本当はデータベースのユーザー作ってパスワードとか色々設定してっていうのがいいんだろうけど、rootでやっちゃいました。

$ php artisan migrate

mod_writeの有効化

どうやらデフォルトでmod_writeは無効化されているようです。有効化します。

$ a2enmod rewrite

これトップページ以外ルーティングがあるのに404になって最初意味わからず苦戦しました。mod_rewrite気をつけましょう。

デプロイしたLaravelアプリを確認

ブラウザで確認してみるとちゃんと動いてくれています。

Docker使いませんか?

今回Laravelのアプリケーションテンプレートを使ってサーバー構築したんだけど、割とエラー多くて面倒でした。やっぱりDocker使いたいと思ってしまう。

ローカルのアプリケーションでDocker使っているなら、ConoHa VPSでもDocker使えるからDockerで構築した方が色々やりやすそうです。

ConoHa VPS

ConoHa VPSでDockerを使う方法

2022/12/18  

この記事ではConoHa VPSでDockerを使うっていうことをやっていきます。これからVPSでDockerを使ってみたいっていう方は多少は参考になると思います。 VPSはコンソールからコマンドを打 ...

  • この記事を書いた人

管理人

各VPSの使い方を紹介します。

-ConoHa VPS