XSERVERでLaravelを動かす

XSERVERでLaravelを動かす

複数ドメイン利用可、複数DB利用可、無料SSL利用可、そこそこ高速、管理画面が使いやすい、、、などで人気の「エックスサーバー」。私もいくつかのレンタルサーバーを使った経験がありますが、「XSERVER」は一番お気に入りのレンタルサーバーです。

エックスサーバーでは、WordPressなどを利用した個人のブログ、サイトはもちろん、大きな転送量が必要でなければ、企業サイトも十分運用に耐えられます。

その一方、共有サーバーという性質上、サーバーの設定を全て自由に変更することはできません。「ドキュメント・ルート」もその一つ。エックスサーバーでは、ドキュメント・ルートを任意のディレクトリに移すことは許可されていません。

先日、Laravelを使って個人的に開発したシステムをエックスサーバーで動かそうとした時、その点でちょっと引っかかりました。結果的に、エックスサーバーでLaravelを動かすことができたので、そのための設定をメモがてら解説したいと思います。

問題点の整理

  • XSERVERのドキュメントルートは、「domain/public_html」
  • Laravelのデフォルトのドキュメントルートは、「laravel/public」
  • ウェブサイトのドキュメントルートを、Laravelのそれにしたいが、XSERVERではドキュメントルートの移動は許可されていない。

解決策

  1. 「domain/public_html/laravel/」 ← このフォルダに、Laravelを一式入れる。
  2. 「domain/public_html/」 ← ここに、Laravelの「public」下を一式移動する。
  3. 「domain/public_html/index.php」 ← このファイルの2箇所を修正する。

上記1と2を実施した後の構成のイメージは以下のようになります。

XSERVER上のLaravelのフォルダ構成イメージ

ドメイン直下の「public_html」直下に、Laravelの「public」が入っています。つまり、「public_html」直下の「JS」「CSS」は、デフォルトではLaravelの「public」の下にあったものです。

上記3の「index.php」の修正箇所は、以下の2箇所です。

SERVERでLaravelを動かすためのindex.phpの修正箇所

(コピペ用のソースを提供するほどの修正ではないので画像のみで。)

以上の修正で動作しました。ドキュメントルートにアクセスがあると、上で修正した「index.php」が動き、Laravel本体に処理が引き継がれます。