この記事は、「【連載】初めてのWindows用Laravel 5.7開発環境構築入門」の孫記事です。環境などの条件は、親記事をご覧ください。
この記事は、「XAMPP上にLaravel 5.7をインストールする 2018年12月版」の子記事です。
今回は、XAMPP環境でLaravelを動作させます。XAMPP環境ではApacheがWebサーバーなので、LaravelはApache上で動作することになります。
前回の最後でLaravelの簡易サーバー上で動作確認しているところまでできているので、その状態からスタートします。簡易サーバーは動作したままでも大丈夫ですが、自分がどっちを見てるかわからなくなると面倒なので、念の為止めておいたほうがいいかもです。
前提
フォルダ構成は前回同様以下のようになっているものとします。
C:
+ xampp
+ htdocs ← これが通常のドキュメントルート。http://localhost/で見える
+ laravelexample ← 今回新しく作ったテストプロジェクトフォルダ
+ public ← テスト用URL http://example.com で見せるドキュメントルート
そしてApache上のLaravelをテスト用URL http://example.com で動作させることを目指します。
Visual Studio Code上でプロジェクトを見ると、ここにあるpublicフォルダを http://example.com で見せるドキュメントルートにしたいわけです。
なので、Apacheは http://localhost/ などで見えるデフォルトのドキュメントルート(C:\xampp\htdocs)と、 http://example.com 用のドキュメントルート(C:\xampp\htdocs\laravelexample\public)の2つがあることを知っておかなければいけません。デフォルトじゃない方(example.com)を、バーチャルホストとしてApacheに登録することで、これを実現します。
バーチャルホスト(Virtual host)を設定
Apacheにバーチャルホストを設定する方法はいくつかありますが、今回はバーチャルホスト専用の登録場所 httpd-vhosts.conf という設定ファイルに登録することにします。
以下のように、 c:\xampp\apache\conf\extra フォルダにある httpd-vhosts.conf をテキストエディタで開きます。
このファイル、初期状態だと中身はすべて # でコメントアウトされています。最終行に、以下を追加しましょう。
<VirtualHost example.com:80>
DocumentRoot "C:\xampp\htdocs\laravelexample\public"
ServerName example.com
<Directory "C:\xampp\htdocs\laravelexample\public">
AllowOverride All
Options All
Require all granted
</Directory>
</VirtualHost>
VirtualHost に example.com (http://はいらない)を登録し、:80 はポート番号です。ちなみにLaravelの簡易サーバーは8000番でしたね。複数のサーバーで同じ番号は使えません。
DocumentRoot が今回バーチャルホストで見せたいフォルダです。Directory のところでセキュリティ設定してます。
ServerName はホストドメイン名と同じで良いです。
変更したら、保存します。
Windowsにhostsの例外を登録する
次に、Windows 10に「example.comは、ローカルPC(自分自身=IPアドレス 127.0.0.1)と思ってね」と教えます。これをしないと、ブラウザで http://example.com を開こうとしたとき、インターネットのどこかにあるexample.comを探しに行ってしまいます。
この「example.comは、[IP]と思ってね」を登録するファイルは、C:\Windows\System32\drivers\etc\hosts
です。ただ、このファイルは保護されているので、管理者権限で編集しなくてはいけません。
管理者権限でhostsファイルを編集するために、まずは管理者権限でメモ帳を開きます。スタートメニューからメモ帳を探し、右クリックして、「管理者として実行」します。
拡張子がテキストじゃないので、開くダイアログの右下のファイルタイプを「すべてのファイル」にします。
最終行に以下を追記します。
127.0.0.1 example.com
これで、「example.comと言われればIPアドレス127.0.0.1(ローカルPC)」とWindowsが思ってくれるようになります。
LaravelのAPP_URLを再設定する
LaravelのプロジェクトをVisual Studio Codeで開き、.envファイルを開きます。APP_URLはexample.comにしたいので、以下の部分を編集します。
APP_URL=http://example.com
編集したら保存します。
これで、XAMPPのApacheでLaravelを動作させる設定が完了しました。
example.comで動作確認
では動作確認をしましょう。
まず、XAMPPでApacheが動作していることを確認します。(Virtual host編集後一度もApacheを再起動してなければ、一度再起動して設定を反映します。)
次にブラウザを開いて、アドレスバーに example.com
と入力して移動します。
動作OKですね!