LoginSignup
8
11

More than 5 years have passed since last update.

Laravel5.7: 本番に合わせてバーチャルホストを設定する

Last updated at Posted at 2017-10-02

親記事

Laravel5.7で基本的なCRUDを作る - Qiita

バーチャルホストが必要な理由

環境 URL
ローカル http://localhost/laravel/5.7/public
Travis CI http://localhost:8000
本番 https://sutara79-laravel.herokuapp.com

上のように、Travis CIではドメイン直下ですが、ローカルでは直下ではなくサブディレクトリの中にあります。
このようなズレがあると、PHPUnitのテストが通りません。
Laravelの環境設定(.env)のAPP_URLでは、このズレの辻褄を合わせることはできません。
素直にバーチャルホストを設定して、ローカルもドメイン直下にするのが一番楽です。
ServerNameは本番に合わせて「local.sutara79-laravel.herokuapp.com」とします。

バーチャルホストを設定する

:page_facing_up: C:\xampp\apache\conf\extra\httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "C:\xampp-htdocs\laravel\5.7\public"
    ServerName local.sutara79-laravel.herokuapp.com
    <Directory "C:\xampp-htdocs\laravel\5.7\public">
        AllowOverride All
        Options All
        Require all granted
    </Directory>
</VirtualHost>

管理者として起動したメモ帳でhostsファイルに設定を追加します。
:page_facing_up: C:\Windows\System32\drivers\etc\hosts

127.0.0.1 localhost
127.0.0.1 local.sutara79-laravel.herokuapp.com

以上で、http://local.sutara79-laravel.herokuapp.comでLaravelアプリへアクセスできるようになりました。

HTTPSで接続したい場合

HTTPSで接続したい場合は、さらに設定が必要です。
別の記事で解説しているので御覧ください。
:link: XAMPP for WindowsでSSLを有効にする - Qiita

APP_URLを変更する

以上で、バーチャルホストの設定は完了です。
最後に、Laravelの環境設定ファイルの中にあるAPP_URLを変更します。

.env
-APP_URL=http://localhost
+APP_URL=https://local.sutara79-laravel.herokuapp.com

これで、前回の記事のようにビルトインウェブサーバーを起動することなく、正式にページを表示できます。

001.png


(余談)シンボリックリンク

XAMPPのApacheのドキュメントルートの初期設定はC:\xampp\htdocsですが、私はDropbox内のフォルダを指定しています。
ただ、DropboxのパスはC:\Users\%USERNAME%\Dropboxのようにユーザーフォルダの中にあるので、ユーザー名が異なる複数のPCでXAMPPの設定を統一する場合に支障をきたします。
そこで、各PCでシンボリックリンクを作ることで、パスが完全に同一になるようにしています。
コマンドプロンプトでもPowerShellでも、必ず管理者として起動してください。

(コマンドプロンプトの場合)
> mklink /d C:\xampp-htdocs C:\Users\%USERNAME%\Dropbox\server

(PowerShellの場合)
> New-Item `
    -ItemType SymbolicLink `
    -Path     C:\ `
    -Name     xampp-htdocs `
    -Value    C:\Users\$($env:UserName)\Dropbox\server

:link: PowerShell v5 でシンボリックリンクを作る - 倭マン's BLOG hatena bookmark

上のコマンドでC:\xampp-htdocs = C:\Users\%USERNAME%\Dropbox\serverとなりました。
Apacheの設定ファイルでは下記のように指定します。

xampp\apache\conf\httpd.conf
DocumentRoot "C:\xampp-htdocs"
<Directory "C:\xampp-htdocs">

ソースコードはDropboxを通じて保管し、共通化します。
Apacheの設定はGitで管理して共通化します。
今回のバーチャルホストの設定も共通化できますし、新バージョンのXAMPPへ移行する場合のバックアップにもなります。
:link: XAMPPの設定ファイルをGitで管理する - Qiita

8
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
11