Laravelは人気のPHPフレームワーク。そんなLaravelを使って、複数人で開発を進める、なんてことも多いのではないでしょうか。そんな風に開発されたWebアプリケーションはデプロイ作業を経て、世に送り出されます。
従って、このデプロイ作業で躓いてしまうとせっかく作ったWebアプリケーションが見られません。
今回はそんなとても大事なデプロイ作業について、レンタルサーバーXREAをピックアップして詳しく紹介します。また、その際にはさまざまな用語が登場しますが、その意味も詳しく解説していきます。
なぜXREA?
今回選択したXREA。XREAは、数あるレンタルサーバーの中でも無料でSSH接続ができる数少ないサーバーです。
【SSH接続とは?】
SSH接続は、インターネットを介して、自身のパソコンから別のパソコン(特にサーバー)に安全に接続し、遠隔で操作するための仕組みです。SSH接続が「安全」なのは、送受信するすべてのデータを暗号化するから。また、接続する際にユーザー名とパスワードを使って本人確認を行います。SSH接続を使うことで、コマンドラインから直接サーバーにアクセスしコントロールできます。これはLaravelをデプロイする上で必須になります。
XREAにLaravelをデプロイする手順
今回は以下の前提でデプロイ手順を解説していきます。
前提
今回は以下のWebアプリケーションを想定しています。
- レンタルサーバー:XREA(アカウントをすでに持っている)
- Laravelバージョン:Laravel9
- Webアプリケーション:Github上に存在
まだXREAアカウントを持っていないよ!という方は以下でXREAの登録方法を紹介していますのでご参照ください!

さまざまな用語が出てきますが、その都度詳しく解説していきますので頑張っていきましょう!
XREAのPHPバージョンを正しく設定
XREAはデフォルトのままですとPHPのバージョンが「PHP74」に設定されています(2025年6月現在)。
今回デプロイするLaravelのバージョンはLaravel9。PHPのバージョンは8以上である必要があるため、設定を修正します。その他のバージョンの場合も、該当するPHPバージョンに設定しましょう。
XREAの「サイト設定」を開き、「アクション」の右から二つ目のアイコンをクリックし、選択肢の中から「PHP82」を選びます。二か所とも行うようにしましょう。


TeraTermをインストール及びSSH接続
公式マニュアルで紹介されている通り、XREAでSSH接続をするためにはTera Termを使いますので、Tera Termをインストールし、設定を行います。
まずは以下サイトにアクセスし、TeraTermをダウンロードします。

【Tera Termとは?】
Tera Termとは、ターミナルエミュレーターと呼ばれる種類のソフトウェアです。これが、先ほど出てきた「SSH接続」を行うために必要なソフトで、このソフトを使うことで自身のパソコンからサーバーにアクセスしてコマンドライン操作を行えるようになります。
ダウンロードをクリックします。

Assetsの中のexeがついているものをクリックします。

TeraTermがダウンロードできたら、以下マニュアルを参考に、XREAサーバーにSSH接続します。
※Tera Termに入力する「ホスト」名は以下の通りXREAサイトの右上で確認できます。

※Tera Termでパスワードをペーストしたい場合はSHIFT+INSERTを使います。
無事にログインできると、以下のような画面になります。今回使うコマンドラインは基本的にこのTera Termに入力していきます。パソコン上のターミナルは使わないので注意しましょう!


TeraTermに一度入れたのに、しばらくしたら消えてしまったんですが…。

TeraTermはしばらく操作がないと自動で閉じてしまいます。面倒ですが都度起動しましょう。また、ログインしようホストを選んでもパスワード入力画面に遷移せず、TeraTermが落ちてしまうことがあります。その場合は先ほどのSSH接続マニュアルにあった「SSH接続のIPを許可する」をやり直しましょう。
無事にTera Termに入れたら、Tera Termウィンドウでlsコマンドを使って中身を確認します。
ls

【lsコマンドとは?】
lsはListの略で、コマンドラインで現在のディレクトリ(フォルダ)の中身を表示するためのコマンドです。エクスプローラーでフォルダを開いて中身を確認するのと同じような感覚で使用します。
cdコマンドを使ってpublic_htmlディレクトリに移動します。
cd public_html
【cdコマンドとは?】
cdはChange Directoryの略でコマンドラインで現在作業しているディレクトリを移動するためのコマンドです。cdのあとに移動先のフォルダ名を入力します。
以下のような結果になるはずです。

Node.jsをインストール
Node.jsをインストールします。
【Node.jsとは?】
Node.jsとは、Webブラウザの外でJavaScriptを動かすための実行環境です。通常、JavaScriptはWebブラウザの中で動くものです。このNode.jsを使うことで、JavaScriptはその制限から解放されます。
以下のコマンドで圧縮ファイルをダウンロードします。
curl -sSL -O https://nodejs.org/dist/v18.20.2/node-v18.20.2-linux-x64.tar.xz
ダウンロードできているかを確認します。
ls -lh
【-lhとは?】
-lとと-hを組み合わせたもので、-lは「詳細なリスト形式」で表示するオプション、-hは「人間が読みやすい形式」で表示するオプションです。-lを指定することでファイル名だけでなく、より詳細な情報が表示されるよりになり、-hを指定することでファイルサイズなどがバイト単位ではなくキロバイトなどの読みやすい形で表示されるようになります。
以下のように「node-v18.20.2-linux-x64.tar.xz」が表示されればOKです。

以下コードで、ダウンロードしたものを解凍します。
tar xvf ./node-v18.20.2-linux-x64.tar.xz
【tar xvfとは?】
tarコマンドは複数のファイルやディレクトリを一つのアーカイブファイルにまとめたり、それを元に戻したりするためのコマンドです。今回はこれにx(extract-展開)、v(verbose-詳細)、f(file-ファイル)を意味するオプションをつけています。これらのコマンドで、圧縮されたアーカイブファイル(.tar.xz形式)を展開し、展開されたファイルやディレクトリの詳細を表示する命令を出しています。最後のfは、その後に指定するものが操作対象のアーカイブファイルであることを示しており、これは常にファイルパスの直前に置きます。
解凍したファイルを移動する先のディレクトリを用意します。
mkdir -p ~/.local/lib
【mkdirコマンドとは?】
mkdirはMake Directoryの略で、新しいディレクトリ(フォルダ)を作成するためのコマンドです。エクスプローラーで「新しいフォルダ」を作るのと同じ感覚で使えます。mkdirのあとに作成したいディレクトリの名前を指定すると、現在のディレクトリにフォルダが作成され、パスを指定するとそのパスの指定先にフォルダが作成されます。
ファイルを移動させます。
mv ./node-v18.20.2-linux-x64/ ~/.local/lib/
【mvコマンドとは?】
mvコマンドはMoveの略で、ファイルやディレクトリ(フォルダ)を移動したり、名前を変更したりするためのコマンドです。
配置できたかを確認します。
ls -lh ~/.local/lib/
以下のように表示されればOKです。

インストール時に使用した圧縮フォルダは消しておきます。
rm node-v18.20.2-linux-x64.tar.xz
【rmとは?】
rmコマンドはRemoveの略で、ファイルやディレクトリ(フォルダ)を削除するためのコマンドです。
ls -lhで確認すると以下のように消えたことが確認できます。

インストールしたNode.jsを使えるようにするためにパスを通します。
export PATH="${HOME}/.local/lib/node-v18.20.2-linux-x64/bin:${PATH}"
【「パスを通す」とは?】
「パスを通す」というのはパソコンに「特定のコマンドがどこにあるかを教える」ことです。つまり、ターミナルでコマンドを入力した際に、そのコマンドを実行するために必要なプログラムがどこにあるかをパソコンに登録しておく作業のことです。例えば、今回インストールしたNode.jsを使うには、このNode.jsが保存されているフォルダをパソコンが特定し、実行する必要があります。そのために、Node.jsの場所をパソコンに教え、「パスを通しておく」というわけです。
通したパスを自分の環境に反映します。
source ~/.bash_profile
【「自分の環境に反映」とは?】
1ステップ前で「パスを通す」作業をしましたが、その作業をしても、その設定が反映されるためには「ターミナルの再起動」や「パソコンの再起動」が必要になってしまいます。それは面倒ですよね。このコマンドを使うことで、ターミナルを再起動することなく、先ほどの編集内容を現在のターミナル環境に反映することができます。
Node.js及びnpmコマンドが使えるようになっているかを確認します。
node -v
npm -v
【npmとは?】
npmとは、Node Package Managerの略で、Node.jsを使う際に必要な「パッケージ」(プログラムの部品やライブラリ)を管理するためのツールです。パッケージというのは、誰かが作った再利用可能なプログラムの塊で、npmを通してこれらにアクセスすることができます。
以下のように表示されれば正常にインストールできています。

Laravelプロジェクトをクローン
GitHubに上がっている、今回デプロイする予定のLaravelプロジェクトをクローン(複製)します。
【「クローンする」とは?】
GitHubにあるプロジェクトのコード一式を、自身のパソコンにまるごとコピーして持ってくることを「クローンする」と言います。
git clone https://github.com/【ここにユーザーID】/【ここにプロジェクト名】.git
正常にクローンされると「done」と表示されます。
cdを使ってプロジェクトフォルダに移動します。
cd 【ここにプロジェクトフォルダ名】
Composerをインストール
Composerをインストールします。
【Composerとは?】
Composerは主にPHPで使われる「依存関係管理ツール」です。Laravelを使うためにComposerは必須です。なぜなら、LaravelフレームワークはたくさんのPHPライブラリを組み合わせてできており、そういった全てのライブラリに依存して成り立っています。ですので、それらの依存先を使えるようにしないとLaravelは成立しないわけです。そういった依存関係を管理してくれるツールがComposerです。
以下コマンドを実行することでComposerがインストールされます。
curl -sS https://getcomposer.org/installer | php
ただし、Windows環境の場合、以下のエラーが出ることがあります。

その場合は、代わりに以下を入力します。
Invoke-WebRequest -Uri https://getcomposer.org/installer -UseBasicParsing | php

以下のコードで入ったか確認します。
/usr/local/bin/php82cli composer.phar
「Composer」というロゴが出ればOKです。

続いてComposerの依存関係のインストールをします。
php82cli composer.phar install --no-dev --optimize-autoloader --prefer-dist --no-interaction
【依存関係のインストールとは?】
今回のLaravelプロジェクトと依存関係にあるさまざまな外部ライブラリをインストールする作業を指します。
依存関係のインストールが完了すると、Laravelが正常に作動するはずです。以下で確認します。
php82cli artisan -V

【php artisanではなくphp82cli artisanを使う理由】
php82cliというのは、PHPのバージョン(今回で言うなら8.2)を指定したコマンドです。これは、レンタルサーバーの環境で複数のPHPバージョンが提供されている場合、Webサイトの設定ではPHPバージョンを正しく設定してもコマンドラインからのパスは別のPHPバージョンになっている場合があるためです。php82cliとすることで、どのPHPバージョンでこのコマンドを実行するか明示しています。
XREAにデータベースを作成
XREA上にデータベースを作成していきます。
XREAの管理パネルから「データベースの新規作成」をクリックします。

「データベース名」と「パスワード」を入力して、下部の「データベースを新規作成する」ボタンをクリックします。

続いて、「phpMyAdmin」をインストールします。データベース名の右側にある「鍵」アイコンをクリックします。

「phpMyAdminをインストール」ボタンをクリックします。

五分ほど待ちます。その後、再度「鍵」アイコンをクリックします。

以下のような画面が出た場合は「このまま送信」をクリックします。

以下のBasic認証の画面が出てきますので、ユーザー名とパスワードを入力します。ここで入れるべきユーザー名とパスワードは、XREA管理画面のデータベース一覧からデータベースをクリックするとわかります。


「phpMyAdmin」の項目に、ユーザー名とパスワードが記載されていますのでそちらを入力します。

Basic認証が完了すると、phpMyAdminのログインが画面になります。

今度はデータベース名とデータベースパスワードを入力します。コピペをする場合、前後にスペースが入らないように注意します。前後にスペースが入ってしまうとログインできません。
ログインできると以下のような画面になります。

データベースのインポート
今回のLaravelプロジェクトのデータベースを、XREAのphpMyAdminにインポートしていきます。phpMyAdminでサイドバーに表示されているデータベース名前をクリックします(必ずサイドバーのところをクリックしましょう)。

今度は「ローカル環境」の方のphpMyAdminに戻ります。左側サイドバーから、今回デプロイしたいLaravelに該当するデータベースを選択し、「エクスポート」をクリックします。

ローカル環境のphpMyAdminってどこだっけ….。

XAMPPやMAMPなどのローカル開発環境上でデータベースにアクセスするためのphpMyAdminのことです!

エクスポート画面に遷移したら、下部の「実行」をクリックします。

「データベース名.sql」ファイルがダウンロードされるので、任意の場所に保存しておきます。
今度は「XREA」の方のphpMyAdminに戻ります。
先ほどエクスポートしたファイルをインポートします。

インポート画面に遷移したら、「ファイルを選択」から先ほどエクスポートしたファイルを選択し、下部の「実行」をクリックします。


無事インポートされると左側のサイドバーにデータベース名が表示されます。

.envファイルの設定
「.env」ファイルを設定していきます。
【.envファイルとは?】
Laravelの.envファイルは「環境変数」を定義するための特殊なファイルです。このファイルには、データベースの接続情報やAPIキー、デバックモードなどLaravelの基本的な情報を記載します。なぜあえて.envファイルを独立して作成するかというと、開発環境で本番環境ではデータベースの接続情報などが変わってきますが、これらの設定を他のプログラムファイルに手をつけることなく保存するためです。
まずは以下コマンドで「.env」ファイルを作成します。
cp .env.example .env
XREAのWebFTPクライアントに移ります。XREAの管理画面から「サイト設定」→「雲のアイコン」をクリックします。

「public_html/」→「データベースフォルダ」をクリックし、データベースフォルダ内に移動します。すると、「.env」ファイルができているはずです。


右側の「編集」をクリックし、「.env」の内容を以下の通り変更します。
APP_NAME="アプリ名"
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=http://www.【XREAのユーザーID】.shop
LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=【DB名】
DB_USERNAME=【DB名】
DB_PASSWORD=【DBパスワード】
キーの作成
アプリケーションキーを作成します。
php82cli artisan key:generate
【アプリケーションキーとは?】
アプリケーションキーとは、Laravelアプリケーションが安全に動作するために必要な「秘密の暗号キー」です。
artisan key:generateでこのキーを生成することでユニーク(他と被らない)キーが生成され、そのキーは.envファイルに自動で書き込まれます。

このキーはLaravelアプリケーションのセキュリティの基礎となります!絶対に他人に教えないようにしましょう。
先ほどの「.env」の編集画面を見ると、APP_KEYの欄にキーが作成されていることが確認できるはずです。

Viteをインストール
以下のコードを使ってXREAの環境にViteを入れていきます。
npm install vite --save-dev
【Viteとは?】
Viteとは、Webフロントエンド開発のための「次世代のビルドツール」です。ビルドツールは人間が書いたソースコードをパソコンが実行できる形に変換したり、Webブラウザで表示できる形に変換したりする作業を自動化するツールです。従来のビルドツールは、大規模プロジェクトになると開発サーバーの起動が遅くなったりするという問題点がありました。Viteはそれらを克服し、高速な開発サーバーの起動を実現しています。
以下のようになります。

本番環境公開準備

いよいよ大詰め!あと少し頑張りましょう!
以下を実行し、本番環境向けに最適化されたファイルを生成します。
npm run build
【npm run buildとは?】
npm run buildはプロジェクトのソースコードをWebブラウザで作動する「本番公開用」の形に最適化されたファイルに変換する処理を実行するためのコマンドです。これを実行することにより、ソースコードが公開可能な形に変換されます。
以下のようになります。

設定の反映と最適化を行います。パフォーマンスが良くなるので必ず行います。
【設定の反映と最適化とは?】
上記三つのコマンドを通して、Laravelアプリケーションの「パフォーマンスの最適化」が行われます。これによってアプリケーションの応答速度を向上させることができます。
php82cli artisan config:cache
php82cli artisan route:cache
php82cli artisan view:cache
以下のようになります。

XREAのデフォルトの環境が「http://」になっているので、Laravelの方もそれに合わせて「http://」に変更します。
WebFTPクライアントに戻り、「public_html/データベース名/public」内にある.htaccessの「編集」をクリックします。

以下二行をコメントアウトします。

再びWebFTPクライアントから今度は「public_html/データベース名/app/Providers/」内にあるAppServiceProvider.phpの「編集」をクリックします。その中の「https://」となっている部分を「http://」に修正し、保存します。

最後にキャッシュクリアして、これまでに行った設定すべての再読み込みを行います。
php82cli artisan route:clear
php82cli artisan config:clear
php82cli artisan cache:clear
php82cli artisan view:clear
これでデプロイは完了です!サイトにアクセスしてみましょう。
http://www.XREAのユーザーID.shop/プロジェクト名/public/
無事に表示されればOKです。お疲れ様でした!!
まとめ
今回は、XREAサーバーにLaravelプロジェクトをデプロイする方法を解説しました。ステップが多いですが、一つ一つやっていけば確実にデプロイできるはず。
苦労して作成したプロジェクトをしっかりウェブに公開できるように、ぜひ試してみてください!