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でDockerを使う方法
2022/12/18
この記事ではConoHa VPSでDockerを使うっていうことをやっていきます。これからVPSでDockerを使ってみたいっていう方は多少は参考になると思います。 VPSはコンソールからコマンドを打 ...