2018/10/12
Laravel5.2をそのままインストールしてプロジェクトを作成するとドキュメントルートは
http://localhost/{プロジェクト名}/public/
となります。
これを
http://localhost/プロジェクト名
このようにしたいと思っています。
publicディレクトリの外し方
publicディレクトリの外し方は簡単です。
Laravelのプロジェクトを作成するとプロジェクトフォルダ直下にpublicフォルダができます。
1 publicフォルダの中身を全部1つ上の階層(プロジェクトフォルダのルート)に移動させます。
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/プロジェクト名
でアクセス可能になります。
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にシンボリックリンクします。
実現したいこと
- Laravelのプロジェクトを C:\xampp\htdocs ではなく C:\xampp 直下に作成
- C:\xampp\htdocsにLaravelのpublicフォルダをシンボリックリンク
手順
1. Laravelのプロジェクトを作成
Laravelのプロジェクトを今回はxampp直下に作成します。
WindowsのコマンドプロンプトでXAMPP直下へ移動します。
cd C:\xampp
Composerを使ってLaravelのプロジェクトを新規に作成
composer create-project "laravel/laravel=5.2.*" laravel
2. シンボリックリンクの作成
コマンドプロンプトでのシンボリックリンクの書式は
mklink /d <リンク> <ターゲット>
になります。
xampp直下にあるlaravelのプロジェクトのpublicフォルダを
xamppのhtdocsにシンボリックリンクを置くには
C:\>mklink /D "C:\xampp\htdocs\laravel" "C:\xampp\laravel\public"
でOKです。
3. 動作確認
WEBブラウザで
http://localhost/laravel/
にアクセスして下の画面が出たらOKです。
このあと先ほど紹介したxamppのhttpd.confとwindowsのhostsファイルを修正して
http://laravel/
でアクセスできるようになればルートパスでローカル・本番と使えるので完璧ですね。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。