0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Laravel Forgeにvue.jsだけのSPAをデプロイする方法

Last updated at Posted at 2021-08-15

やりたかったこと

Laravel をよく使うので、Laravel Forge + Vultur を使っています(Forge + Vultr ではじめてLaravelアプリをデプロイするときにつまずいたこと)。

最近、Laravelを使わず vue.jsだけのアプリ(SPA)を作り、本番公開しようとしました。

vue.jsのアプリであればNetlify、GithubPageなどが簡単にできるようですが、せっかく有料でForgeを契約しているのだし等いろいろ事情があり、どうしてもLaravel Forgeにデプロイしたかったのです。

vue.jsアプリの概要

  • vue version 2.5.2
  • webpack version 3.6.0

Github にレポジトリを公開

やり方は簡単です。まずは下準備。

Laravel Forgeは、Githubからソースコードを取り込み、デプロイすることができます。

そのため、Githubレポジトリを作成し、vueアプリのソースコード一式をpush しておきます。

Laravel Forge でのディレクトリ設定

次に、いつも通りLaravel Forge で新規サイトを設定します。

スクリーンショット 2021-08-15 15.04.50.png

この時のポイントは2つ。

1つめは、サイトの種類をStatic HTMLではなくGeneral PHP/Laravel で設定すること。Static HTML だと上手くできませんでした。

2つめは、初期ディレクトリを /dist に設定すること。これは、コンパイルされたファイルがdist フォルダに生成されるためです。

デプロイスクリプトの書き換え

Laravel Forgeにて、デプロイスクリプトを次のように書き換えます。

cd /home/forge/www.domain.com
git pull origin $FORGE_SITE_BRANCH
npm install
npm run build

( flock -w 10 9 || exit 1
    echo 'Restarting FPM...'; sudo -S service $FORGE_PHP_FPM reload ) 9>/tmp/fpmlock

npm を2行だけ、追加しています。

最初に調べていた時、Laravel Forgeでnpmするとタイムアウトする...などといった情報が出てきましたが、デプロイは普通に実行できました。

デプロイスクリプト以外でコマンドを叩くと、確かにエラーになっていました。

Nginx Configration File を編集する

最後に、Nginx の設定を変えます。画面下のFilesというメニューからEdit Nginx Configurationを選びます。

スクリーンショット 2021-08-16 23.01.39.png

index.php となっているところを、index.html に変えます。最低限、この1箇所。

    location / {
        try_files $uri $uri/ /index.html?$query_string;
    }

この設定でデプロイすると、vue.jsだけのアプリも公開できます。

参考

こちらの解説が大いに参考になりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?