Laravelのドキュメントルートを変更する

2018/10/12

Laravel5.2をそのままインストールしてプロジェクトを作成するとドキュメントルートは

http://localhost/{プロジェクト名}/public/

となります。

これを

http://localhost/プロジェクト名

このようにしたいと思っています。

 

publicディレクトリの外し方

publicディレクトリの外し方は簡単です。

Laravelのプロジェクトを作成するとプロジェクトフォルダ直下にpublicフォルダができます。
1 publicフォルダの中身を全部1つ上の階層(プロジェクトフォルダのルート)に移動させます。

img001
2 publicフォルダに入っていたindex.phpを編集します。

#変更前
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';

#変更後
require __DIR__.'/./bootstrap/autoload.php';
$app = require_once __DIR__.'/./bootstrap/app.php';

これで

http://localhost/プロジェクト名

でアクセス可能になります。

img002

 

xamppでルートパスを使えるようにする

上記のようにpublicを外してもURLに "プロジェクト名" と余計なものがついています。

画像のパスや内部リンクのパスをルートパスで記述すると "/プロジェクト名/~" となります。

本番環境では多くの場合、ドメイン直下をルートにすると思います。

これだとパスがおかしくなりますよね。。

http://localhost/プロジェクト名

これを

http://プロジェクト名

このように表示できるようになればルートパスで記述しても本番環境でもパスが通ります。

http://プロジェクト名 で表示するためにはhttpd.confファイルとhostsファイルを修正すればOKです。

例として以下の環境として手順を説明します。

・xamppをCドライブ直下にインストール
・laravelのプロジェクト名がmylaravel

 

httpd.confファイルの修正

xamppをCドライブ直下にインストールしているならhttpd.confファイルは

C:\xampp\apache\conf

にあります。

httpd.confファイルに以下を追加します。

<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs"
ServerName localhost
</VirtualHost>
 
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/mylaravel"
ServerName mylaravel
</VirtualHost>

 

hostsファイルに追加

hostsファイルは以下のところにあります。

C:\Windows\System32\drivers\etc\hosts

hostsファイルの末尾に以下のように1行追加します。

127.0.0.1 mylaravel

これで

http://mylaravel

とアクセスして以下のような画面が出たらOKです。

 

チュートリアル

僕の場合xamppのhtdocsフォルダにlaravelのプロジェクトを置いています。

しかしこれはよくありません。

Laravelではpublic以外の全てのファイルとフォルダはweb root(C:\xampp\htdocs)ではない場所に置くことが推奨されているからです。

つまりLaravelのプロジェクトはhtdocs以外に作りpublicのフォルダだけhtdocsに置くのが理想です。

これを実現するためにはpublicフォルダをターゲットにしてhtdocsにシンボリックリンクします。

実現したいこと

  1. Laravelのプロジェクトを C:\xampp\htdocs ではなく C:\xampp 直下に作成
  2. C:\xampp\htdocsにLaravelのpublicフォルダをシンボリックリンク

 

手順

1. Laravelのプロジェクトを作成

Laravelのプロジェクトを今回はxampp直下に作成します。

WindowsのコマンドプロンプトでXAMPP直下へ移動します。

cd C:\xampp

Composerを使ってLaravelのプロジェクトを新規に作成

composer create-project "laravel/laravel=5.2.*" laravel

【参考】 XAMPPでLaravelの開発環境を構築する

 

2. シンボリックリンクの作成

コマンドプロンプトでのシンボリックリンクの書式は

mklink /d <リンク> <ターゲット>

になります。

xampp直下にあるlaravelのプロジェクトのpublicフォルダを

xamppのhtdocsにシンボリックリンクを置くには

C:\>mklink /D "C:\xampp\htdocs\laravel" "C:\xampp\laravel\public"

でOKです。

img004

 

3. 動作確認

WEBブラウザで

http://localhost/laravel/

にアクセスして下の画面が出たらOKです。

img003

このあと先ほど紹介したxamppのhttpd.confとwindowsのhostsファイルを修正して

http://laravel/

でアクセスできるようになればルートパスでローカル・本番と使えるので完璧ですね。

本庄マサノリ

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-環境構築