親記事
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」とします。
バーチャルホストを設定する
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ファイルに設定を追加します。
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で接続したい場合は、さらに設定が必要です。
別の記事で解説しているので御覧ください。
XAMPP for WindowsでSSLを有効にする - Qiita
APP_URLを変更する
以上で、バーチャルホストの設定は完了です。
最後に、Laravelの環境設定ファイルの中にあるAPP_URL
を変更します。
-APP_URL=http://localhost
+APP_URL=https://local.sutara79-laravel.herokuapp.com
これで、前回の記事のようにビルトインウェブサーバーを起動することなく、正式にページを表示できます。
(余談)シンボリックリンク
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
PowerShell v5 でシンボリックリンクを作る - 倭マン's BLOG
上のコマンドでC:\xampp-htdocs
= C:\Users\%USERNAME%\Dropbox\server
となりました。
Apacheの設定ファイルでは下記のように指定します。
DocumentRoot "C:\xampp-htdocs"
<Directory "C:\xampp-htdocs">
ソースコードはDropboxを通じて保管し、共通化します。
Apacheの設定はGitで管理して共通化します。
今回のバーチャルホストの設定も共通化できますし、新バージョンのXAMPPへ移行する場合のバックアップにもなります。
XAMPPの設定ファイルをGitで管理する - Qiita