エックスサーバーのサブドメインにLaravelを設置する方法
2024.09.04.水
今回はエックスサーバー上のサブドメインにPHPのLaravelを設置する方法についてご紹介します。
使用ドメインとサーバー
- 使用ドメイン: app.example.com
- 使用サーバー: エックスサーバー
システム構築の流れ
サブドメイン「app.example.com」へのアクセスで、Laravelフレームワークを使ったWebシステムにアクセスできるようにします。
エックスサーバーでは、使用したいドメインを登録すると、サブドメインも自由に設定可能になります。
(ネームサーバーをエックスサーバーにする必要あり)
例えば、今回使用する「app.example.com」というサブドメインも簡単に作成できます。
サブドメインの設定
エックスサーバー上でサブドメインを作成すると、メインドメインのディレクトリ内にサブドメイン用の公開ディレクトリが自動で生成されます。
ドメインの選択
エックスサーバー管理画面の「サブドメイン設定」をクリックしドメイン選択の画面を開きます。
事前にドメインをエックスサーバーで管理していることが前提です。
※他社で取得している場合はネームサーバーをエックスサーバーのものにしておく必要があります。
サブドメインの設定
赤枠エリアでにサブドメイン名を入力し、公開パスとなるドキュメントルートのタイプを選びます。 今回は/example.com/public_html/app.example.com/ を選んだことにします。
このディレクトリにファイルを配置すれば、指定のURLでWebシステムにアクセスできるようになります。
ただし、Laravelフレームワークでは、プログラムファイルと公開用ディレクトリが事前に用意されています。
publicディレクトリがLaravel指定の公開パスになるため、エックスサーバーの公開パスとは異なってしまいます。
このままサーバーに配置すると、URLが「https://app.example.com/public」のようになってしまい、見栄えも悪く、public以外のLaravelのプログラムファイルもアクセスできる状態となりセキュリティ上の懸念が発生します。
セキュリティ対策とディレクトリ構成の調整
セキュリティを考慮して、プログラムファイルを公開ディレクトリに置かないようにするため、シンボリックリンクを利用して公開ディレクトリを調整します。
シンボリックリンクの作成手順
サブドメイン用の公開ディレクトリが自動で作成されるため、このディレクトリを削除し、同じ名前でシンボリックリンクを作成します。
SSHでサーバーにログインし、次のコマンドを実行します。
ln -s /home/{XサーバーのプロジェクトID}/{Laravelのディレクトリ}/public /home/{XサーバーのプロジェクトID}/example.com/public_html/app.example.com
これにより、Laravelの公開用ディレクトリだけが正しく公開され、プログラムファイルは安全に保護されます。