XserverVPS

エックスサーバーVPSでLaravelアプリをDockerで公開してみる

エックスサーバー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の申し込みについては以下の記事で書いているので、これから使い始める人は見てみると参考になるかもしれません。

XserverVPS

エックスサーバー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をインストールして動かすっていうことは以下の記事でやっているから、よかったら見てみてください。

XserverVPS

エックスサーバーVPSでDockerをインストールする

2022/11/10  

この記事ではエックスサーバーVPSで立てたサーバーにDockerをインストールするっていうことをやっていきます。 エックスサーバーVPSでDockerを使っていきましょう。 エックスサーバーVPSでサ ...

ローカルのLaravelアプリケーションをエックスサーバーVPSにアップロードする

FTPソフトを使ってlaravelのアプリケーションフォルダを作成されたユーザーフォルダにアップロードします。

FTPソフトを使って接続する方法は以下の記事で書いているので、よかったらどうぞ。

XserverVPS

エックスサーバー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アプリを公開するっていうことをやってみたけど、とりあえずはできましたね。もちろん本番で運用するとなると気にするところは色々あると思うから、あくまで参考程度にしてみてください。

  • この記事を書いた人

管理人

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

-XserverVPS