目次
- はじめに
- この記事の前提
- この記事で扱う環境
- なぜこの記事を書くのか
- この記事で確認すること
- STEP 1:XServerでサブドメインを作成する
- STEP 2:Web実行時のPHPバージョンを確認する
- STEP 3:SSH接続できるか確認する
- STEP 4:Laravelプロジェクトの配置場所を決める
- STEP 5:SSH上のPHPバージョンを確認する
- この時点で分かったこと
- 次回以降に確認すること
- 躓いたポイント
- セキュリティ面で注意したこと
- まとめ
- 関連記事
はじめに
この記事では、Laravel 10 + Sail環境で作成したアプリをXServerのサブドメインへデプロイする前に確認したことを整理します。
デプロイ作業では、いきなりファイルをアップロードしたり、composer install や php artisan migrate を実行したりすると、ディレクトリ構成やPHPバージョンの違いで躓く可能性があります。
そのため、この記事では 本番サーバーへLaravelプロジェクトを配置する前の確認作業 に絞って記録します。
この記事の前提
- 2026年時点のXServer管理画面を前提にする
- Laravel 10を前提にする
- XServerのサブドメインへデプロイする前の確認作業を扱う
- ローカル開発環境ではLaravel Sailを使用する
- 本番環境ではLaravel Sailを使用しない
- この記事では、Laravelプロジェクトのアップロードや本番反映作業は行わない
この記事で扱う環境
| 項目 | 内容 |
|---|---|
| Laravel | Laravel 10 |
| ローカル環境 | Laravel Sail |
| 本番サーバー | XServer |
| 公開URL | https://review-laravel.honda-dev.com |
| Web実行時PHPバージョン | PHP 8.3.30 |
| SSH上のPHPバージョン |
PHP 8.3.30(CLI切替後) |
| SSH接続 | 確認済み |
なぜこの記事を書くのか
Laravelアプリをレンタルサーバーにデプロイする場合、ローカル環境と本番環境の違いで躓きやすいです。
特にXServerでは、以下を事前に確認しておく必要がありました。
- サブドメインの公開ディレクトリ
- Web実行時のPHPバージョン
- SSH接続可否
- Laravel本体を置く場所
- SSH上で使われるCLI版PHPのバージョン
また、LaravelやXServerの仕様は変わる可能性があるため、自分が後から見返せるように、2026年時点の手順として記録します。
この記事で確認すること
この記事では、以下の確認までを扱います。
- XServerでサブドメインを作成する
- Web実行時のPHPバージョンを確認する
- SSH接続できるか確認する
- Laravelプロジェクトの配置場所を決める
- SSH上のPHPバージョンを確認する
この記事では、まだ以下の作業は行いません。
- Laravelプロジェクトのアップロード
-
.envの作成 composer installphp artisan key:generate- DB設定
- マイグレーション
storage:link- キャッシュ系コマンド
- ブラウザでの動作確認
STEP 1:XServerでサブドメインを作成する
まず、XServerでLaravelアプリ公開用のサブドメインを作成します。
今回は、以下のサブドメインを使用します。
review-laravel.honda-dev.com
この記事を書いている時点では、上記サブドメインはすでに作成済みです。
-
サーバーパネルの左メニューから ドメイン > サブドメイン設定 を選択し、「+サブドメインを追加」 を押下します。
-
サブドメイン名を入力し、ドキュメントルートはサブドメイン用の公開ディレクトリを選択します。無料独自SSLの 「利用する」 にチェックが入っていることを確認し、「追加する」 を押下します。
-
サブドメインを追加すると、サブドメイン設定画面に戻ります。追加直後は、設定状況が 「反映待ち」 と表示される場合があります。
しばらく待ってから画面を再読み込みし、設定状況が 「正常」 になっていることを確認します。
STEP 2:Web実行時のPHPバージョンを確認する
XServerのサーバーパネルから PHP > PHP Ver.切替 を開き、対象ドメインのPHPバージョンを確認します。
ここで確認するPHPバージョンは、ブラウザからLaravelアプリへアクセスしたときに使われる Web実行時のPHPバージョン です。
XServerでは、この画面上で「ドメイン単位でPHPのバージョンを切り替えることが可能です。」と表示されています。
今回確認した時点では、対象ドメインのPHPバージョンは PHP 8.3.30 でした。
Laravel 10 の公式ドキュメントでは、PHP 8.1以上が必要とされています。
今回確認したXServerのPHPバージョンは PHP 8.3.30 だったため、Laravel 10の最低要件は満たしていました。
ただし、SSH上で php artisan や composer install を実行するときのPHPバージョンは、後続STEPで別途確認します。
STEP 3:SSH接続できるか確認する
以下の記事で検証済です。
STEP 4:Laravelプロジェクトの配置場所を決める
1. 現在位置を確認する
SSH接続した状態で、次のコマンドを実行します。
pwd
表示結果が以下のようになっていれば、XServer上のホームディレクトリにいます。
/home/ユーザー名
2. ホームディレクトリ直下の構成を確認する
次に、ホームディレクトリ直下に何があるか確認します。
SSH接続した状態で、次のコマンドを実行します。
ls -la
ここでは、ドメイン用ディレクトリや public_html がどこにあるかを確認するため、まずホームディレクトリ直下の構成を見ます。
表示例:
/home/ユーザー名/
├── .ssh/
├── backup/
├── ドメイン名/
├── ssl/
└── 初期ドメイン/
ここでは、ドメイン用ディレクトリがホームディレクトリ直下に存在することを確認しました。
Laravel本体の配置場所は、次にこのドメイン用ディレクトリの中を確認してから決めます。
3. ドメイン用ディレクトリの中を確認する
次に、ドメイン用ディレクトリの中を確認します。
ls -la ドメイン名
表示結果に public_html があれば、そこがWeb公開領域です。
/home/ユーザー名/
└── ドメイン名/
├── public_html/
├── mail/
├── log/
├── xserver_php/
└── ...
Laravel本体は、原則として public_html の中には置きません。
Laravel本体は、次のように public_html と同じ階層に配置する方針にします。
/home/ユーザー名/ドメイン名/
├── laravel-review/ ← Laravel本体の配置候補
└── public_html/
└── サブドメイン名/ ← Web公開ディレクトリ
この段階では、まだディレクトリ作成は行わず、構成確認のみ行います。
4. public_html の中を確認する
次に、Web公開領域である public_html の中を確認します。
ls -la ドメイン名/public_html
表示結果を確認すると、サブドメイン用の公開ディレクトリが作成されていました。
/home/ユーザー名/ドメイン名/public_html/
├── index.html
├── .htaccess
├── サブドメイン名/
└── ...
今回の環境では、サブドメイン作成後に以下のような公開ディレクトリが作成されていることを確認しました。
/home/ユーザー名/ドメイン名/public_html/サブドメイン名/
このディレクトリが、サブドメインでWeb公開される場所になります。
5. 今回分かったこと
ここまでで、配置方針はかなり見えてきました。
/home/ユーザー名/ドメイン名/
├── laravel-review/ ← Laravel本体の配置候補
└── public_html/
└── サブドメイン名/ ← Web公開ディレクトリ
この確認結果から、Laravel本体は以下の場所に配置する方針とします。
/home/ユーザー名/ドメイン名/laravel-review/
この場所であれば、Laravel本体を public_html の外側に置けるため、.env や storage などを直接Web公開しない構成にできます。
STEP 5:SSH上のPHPバージョンを確認する
XServerの管理画面で確認したPHPバージョンは、Webアクセス時に使われるPHPバージョンです。
一方で、SSH上で php artisan や composer install を実行する場合は、CLIで使われるPHPバージョンも確認する必要があります。
1. 通常の php コマンドのバージョンを確認する
SSH接続した状態で、まず通常の php コマンドのバージョンを確認します。
php -v
今回確認したところ、通常の php コマンドは PHP 8.0.30 でした。
PHP 8.0.30 (cli)
Laravel 10ではPHP 8.1以上が必要なため、このままではLaravel 10用の artisan コマンドや composer install の実行には適しません。
2. PHP 8.3 の実行ファイルがあるか確認する
次に、PHP 8.3 の実行ファイルが存在するか確認します。
ls -l /usr/bin/php8.3
今回の環境では、以下のように /usr/bin/php8.3 が PHP 8.3.30 の実行ファイルを指していました。
/usr/bin/php8.3 -> /opt/php-8.3.30/bin/php
続けて、PHP 8.3 のバージョンを確認します。
/usr/bin/php8.3 -v
確認結果は以下です。
PHP 8.3.30 (cli)
これで、SSH上でも PHP 8.3.30 が使えることを確認できました。
3. ~/bin ディレクトリがあるか確認する
通常の php コマンドで PHP 8.3 を使えるようにするため、ユーザー専用のコマンド置き場として ~/bin を使います。
まず、~/bin ディレクトリが存在するか確認します。
ls -ld ~/bin
存在する場合は、以下のように表示されます。
drwxr-xr-x 2 ユーザー名 members ... /home/ユーザー名/bin
存在しない場合は、以下のように表示されます。
ls: cannot access '/home/ユーザー名/bin': No such file or directory
今回の環境では ~/bin が存在しなかったため、次の手順で作成しました。
4. ~/bin ディレクトリを作成する
~/bin が存在しない場合は、以下のコマンドで作成します。
mkdir -p ~/bin
作成できたか確認します。
ls -ld ~/bin
表示例です。
drwxr-xr-x 2 ユーザー名 members ... /home/ユーザー名/bin
5. ~/bin/php を PHP 8.3 に向ける
次のコマンドで、~/bin/php という名前のシンボリックリンクを作成し、PHP 8.3 を指すようにします。
ln -sfn /usr/bin/php8.3 ~/bin/php
リンクが作成できたか確認します。
ls -l ~/bin/php
表示例です。
/home/ユーザー名/bin/php -> /usr/bin/php8.3
この時点では、まだ通常の php コマンドが ~/bin/php を優先するとは限りません。
6. 現在のPATHを確認する
次に、現在の PATH を確認します。
echo $PATH
今回の環境では、~/bin はPATHに入っていましたが、/usr/bin より後ろにありました。
そのため、通常の php コマンドはまだ /usr/bin/php を参照していました。
which php
php -v
確認結果は以下です。
which php → /usr/bin/php
php -v → PHP 8.0.30
この状態では、~/bin/php を作成していても、PHP 8.3 は優先されません。
7. ~/bin をPATHの先頭に追加する
~/bin をPATHの先頭に追加するため、~/.bashrc に設定を追記します。
まず、すでに同じ設定が入っていないか確認します。
grep 'HOME/bin' ~/.bashrc
何も表示されなければ、まだ設定は入っていません。
以下のコマンドで ~/.bashrc に追記します。
printf '\nexport PATH=$HOME/bin:$PATH\n' >> ~/.bashrc
今回の検証では、単純に
echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrcで追記したところ、前のコメント行とくっついてしまいました。
そのため、記事では先頭に改行を入れられるprintfを使っています。
そのあと、設定を現在のSSHセッションに反映します。
source ~/.bashrc
8. PHP 8.3 に切り替わったか確認する
最後に、通常の php コマンドが PHP 8.3 を参照するようになったか確認します。
which php
php -v
期待する結果は以下です。
which php → ~/bin/php または /home/ユーザー名/bin/php
php -v → PHP 8.3.30
今回の環境では、最終的に通常の php コマンドで PHP 8.3.30 が使えるようになりました。
躓いたポイント:.bashrc への追記が前の行とくっついた
今回、~/.bashrc にPATH設定を追記したあと、source ~/.bashrc を実行しても php が PHP 8.3 に切り替わりませんでした。
原因を確認するため、~/.bashrc の末尾を確認しました。
tail -n 10 ~/.bashrc
すると、以下のようにコメント行と export PATH... が同じ行にくっついていました。
# User specific aliases and functionsexport PATH=$HOME/bin:$PATH
この状態では、export PATH... もコメント扱いになってしまい、PATH設定が反映されません。
正しくは、以下のように export PATH... を独立した行にします。
# User specific aliases and functions
export PATH=$HOME/bin:$PATH
修正後、再度 source ~/.bashrc を実行し、which php と php -v を確認したところ、PHP 8.3.30 に切り替わりました。
source ~/.bashrc
which php
php -v
which php → ~/bin/php または /home/ユーザー名/bin/php
php -v → PHP 8.3.30
このSTEPで分かったこと
- XServer管理画面のPHPバージョンは、Web実行時のPHPバージョンである
- SSH上の通常の
phpコマンドは、別のPHPバージョンを指している場合がある - 今回の環境では、通常の
phpは PHP 8.0.30 だった -
/usr/bin/php8.3を使うと PHP 8.3.30 が利用できた -
~/bin/phpを/usr/bin/php8.3に向け、~/binをPATHの先頭に追加することで、通常のphpコマンドでも PHP 8.3.30 を使えるようになった
これで、後続の composer install や php artisan コマンドを実行する前準備ができました。
この時点で分かったこと
ここまでの確認で、以下のことが分かりました。
- XServer上でサブドメインは作成済み
- Web実行時のPHPバージョンは Laravel 10 の要件を満たしている
- SSH接続は別記事の手順で確認済み
- XServer上では、ドメイン用ディレクトリ配下に
public_htmlが存在する - サブドメイン用の公開ディレクトリは
public_html配下に作成されている - Laravel本体は
public_htmlの外側に置く方針にした - SSH上の通常の
phpは最初 PHP 8.0.30 を指していた -
~/bin/phpとPATHを設定することで、SSH上のphpを PHP 8.3.30 に切り替えられた
次回以降に確認すること
次回以降は、以下を確認しながら進めます。
- Laravelの
publicディレクトリとXServerのサブドメイン公開ディレクトリの対応方法 - XServer上のComposer利用可否
-
composer install --no-dev --optimize-autoloaderが実行できるか - 本番用
.envの作成 - DB接続情報の設定
-
php artisan migrate --forceが実行できるか -
php artisan storage:linkが使えるか -
storage/bootstrap/cacheのパーミッション - Viteビルド成果物
public/buildの反映方法
躓いたポイント
Web実行時PHPとSSH上のPHPは別に確認する必要があった
XServerのサーバーパネルで確認したPHPバージョンは、ブラウザからアクセスしたときに使われる Web実行時のPHPバージョン でした。
一方で、SSH上で php artisan や composer install を実行するときは、CLI版のPHPが使われます。
今回の環境では、Web実行時PHPは PHP 8.3.30 でしたが、SSH上の通常の php コマンドは最初 PHP 8.0.30 を指していました。
そのため、SSH上でLaravel 10用のコマンドを実行できるように、~/bin/php と PATH を設定しました。
.bashrc への追記が前の行とくっついた
~/.bashrc にPATH設定を追記した際、前のコメント行と export PATH... が同じ行にくっついてしまい、設定が反映されませんでした。
# User specific aliases and functionsexport PATH=$HOME/bin:$PATH
この状態では export PATH... もコメント扱いになってしまいます。
記事では、先頭に改行を入れられるように、以下のように printf を使いました。
printf '
export PATH=$HOME/bin:$PATH
' >> ~/.bashrc
セキュリティ面で注意したこと
-
.envを公開しない - Laravel本体を
public_htmlの中に置かない -
storageやvendorを直接公開しない - Web公開対象はLaravelの
public配下だけにする - スクリーンショットにサーバーIDや秘密情報を含めない
- SSH接続手順は別記事に切り出して整理する
まとめ
この記事では、Laravel 10アプリをXServerのサブドメインへデプロイする前に確認したことを整理しました。
特に重要だったのは、以下の2点です。
- Laravel本体を
public_htmlの外側に置く方針を決めること - Web実行時PHPとSSH上のCLI PHPを別々に確認すること
次回以降は、Laravelの public ディレクトリとXServerのサブドメイン公開ディレクトリをどのように対応させるかを確認していきます。
関連記事
- 【2026年版】WSL UbuntuからXServerにSSH接続する方法
- 【2026年版】Laravel 10をXServerのサブドメインへデプロイする手順(後続記事予定)



