エックスサーバーVPSでLaravelアプリ公開したいなあ・・・
Docker使って公開してみましょうか。
この記事ではエックスサーバーVPSでDockerを使ってLaravelアプリケーションを公開するっていうことをやっていきます。
この記事でやること
- エックスサーバーVPSでDockerを使ってLaravelアプリを公開する
エックスサーバーVPSでLaravelアプリケーションを公開したかったら参考にしてみてください。
Laravelアプリを公開していきましょう。
エックスサーバーVPSでLaravelアプリを公開する手順
エックスサーバーVPSでLaravelアプリを公開するっていうことをやっていくんですが、こんな流れでやろうと思います。
- エックスサーバーVPSでサーバーを立てる
- サーバーにDockerをインストール
- ローカルのLaravelアプリケーションをサーバーにアップロードする
とりあえずDockerで動かすっていうことを目標にやっていきます。
公開するアプリケーション
今回公開してみるのはこのTODOリストを表示するだけのアプリケーションです。
TODOはデータベースから取得しているので、DBも使います。ちなみに使用しているDockerイメージは以下です。
使用しているDockerイメージ
- php:8-fpm
- nginx
- mariadb:10.8.2
エックスサーバーVPSでサーバーを立てる
まずはエックスサーバーVPSでサーバーを立てます。申し込む際にOSを決めることができるんですが、今回はUbuntu22.04でいきます。
エックスサーバーVPSの申し込みについては以下の記事で書いているので、これから使い始める人は見てみると参考になるかもしれません。
-
エックスサーバーVPSの申し込み方法を紹介します。
2022/11/9
この記事ではそんな疑問を解消するためにエックスサーバーVPSの申し込み方法について書いていきます。 エックスサーバーといえばレンタルサーバーが有名だけど、今回はエックスサーバーのVPSについて。 これ ...
エックスサーバーVPSでポートを開ける
デフォルトだと80番ポートが開いていなくアクセスができないようになっているので、それを開けます。
SSHとWebとMySQLを開けておきます。
ユーザーを作成する
ユーザーを作成しておきましょう。kobayashiというユーザーをここでは作成して権限を与えます。SSH接続してから行いましょう。
# ユーザー作成
$ sudo adduser kobayashi
# 権限付与
$ sudo usermod -aG sudo kobayashi
$ cd /home/kobayashi
ここで作成したユーザー名のフォルダ以下にLaravelアプリケーションを配置します。
Dockerをインストールする
サーバー内に入ってDockerをインストールします。Dockerをインストールして動かすっていうことは以下の記事でやっているから、よかったら見てみてください。
-
エックスサーバーVPSでDockerをインストールする
2022/11/10
この記事ではエックスサーバーVPSで立てたサーバーにDockerをインストールするっていうことをやっていきます。 エックスサーバーVPSでDockerを使っていきましょう。 エックスサーバーVPSでサ ...
ローカルのLaravelアプリケーションをエックスサーバーVPSにアップロードする
FTPソフトを使ってlaravelのアプリケーションフォルダを作成されたユーザーフォルダにアップロードします。
FTPソフトを使って接続する方法は以下の記事で書いているので、よかったらどうぞ。
-
エックスサーバーVPSでSFTP接続する方法
2022/11/11
そんな疑問を解消するためにこの記事ではエックスサーバーVPSでFTP接続する方法を書いていきます。 エックスサーバーVPSでFTP接続したい方は参考にしてみてください。 エックスサーバーVPSにSSH ...
docker-compose.yml
docker-composeですが、ローカルで動いているものであればそのままアップロードすれば動くはずです。今回はこんな感じです。
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
volumes:
- ./app:/app
- ./docker/web/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- app
app:
build: ./docker/php
depends_on:
- mysql
working_dir: /app
volumes:
- ./app:/app
mysql:
image: mariadb:10.8.2
environment:
MARIADB_DATABASE: sample
MARIADB_USER: user
MARIADB_PASSWORD: password
MARIADB_ROOT_PASSWORD: password
MYSQL_DATABASE: sample
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: password
ports:
- "3306:3306"
volumes:
- mysql-data:/var/lib/mysql
volumes:
mysql-data:
IPアドレスにアクセスされたときにアプリケーションを表示させたいので、nginxのポートフォワーディングは80番にしておきました。
アップロードしたら起動して起動したらOK。
$ sudo docker compose up
Migrationする
データベースにテーブルがないのでコンテナの中に入ってmigrationします。
必要なデータなんかがあれば直接MySQLから入れるか、Seederとかを作って実行するといいです。
Storageに権限付与
Storageにアクセスできなかったのでパーミッション変更しておきます。
$ chmod -R 777 storage
ブラウザから確認
IPアドレスをブラウザに入力して確認してみるとちゃんと表示されましたね。
まとめ
エックスサーバーでDockerを使ってLaravelアプリを公開するっていうことをやってみたけど、とりあえずはできましたね。もちろん本番で運用するとなると気にするところは色々あると思うから、あくまで参考程度にしてみてください。