はじめに
この記事では以下の環境でLaravel Homesteadの環境構築を行います。
Laravelのバージョンによって異なる部分もでてくるとは思いますので、公式のドキュメントと併用しながら環境構築を行ってください。
動作環境
- Windows 10
- Lenovo
- Laravel 5.8
- Vagrant 2.2.5
- VirtualBox 6.0
参考URL
- Laravel 5.8 日本語 ドキュメント
- Laravel 5.8 Homestead ドキュメント
- 【Laravel超入門】開発環境の構築(VirtualBox + Vagrant + Homestead + Composer)
Composerのインストール
Comporserのダウンロードページへ行き、Composer-Setup.exeをダウンロードしてください。
Comporserのインストール手順は各自調べてみてください。
おそらく、私のときはすでにインストールしていたのですが、あらかじめXAMPPが必要かと思われます。
Vagrantのインストール
Vagrantのダウンロードページよりインストールしてください。
Vagrantは開発環境を簡単に構築できるオープンソースのソフトウェアです。
もし、ご使用中のパソコンのbit数が分からない場合はこちらページを参照してください。
パソコンの OS とビット数の確認方法について知りたい (Windows XP/Vista/7/8/8.1/10)。
VirtualBoxのインストール
VirtualBoxのダウンロードページの「Windows hosts」をクリックしてVirtualBoxをダウンロードしてください。
VirtualBoxは既存のOS上で別のOSを実行できる仮想化ソフトウェアです。
VT-xの有効化とHyper-Vの無効化
まず、VT-xが有効化されているかどうかを確認します。
VirtualCheckerをダウンロードし、起動してください。
左上の「INTEL VT-X/AMD-V」がEnabledで点灯していれば有効化されています。
VT-xが無効だった場合はBIOSを起動し、有効化しなければなりません。
BIOSの起動方法はパソコンのメーカーごとに異なりますので、以下のサイトを参考にしつつ、自分のメーカーのものを検索して設定してください。
Windows 10 「BIOS」を起動させる手順をPCメーカー毎に紹介
Virtualization Technology (VT-X)を有効にするには – ideapad, ideacentre, ThinkPad, ThinkCentre – Windows
Hyper-vの無効化は以下のサイトを参考にしてください。
Homestead Vagrant Boxのインストール
laravel/homestead をVagrantへ追加する必要があります。
コマンドプロンプトを開き、以下のコマンドを実行してください。
ディレクトリはホームディレクトリ(C:\Users\’ユーザー名’)です。
1 |
vagrant box add laravel/homestead |
途中、プロバイダはどれで動かすのかと聞かれるので、3 → Enter と押してください。
Homesteadのインストール
Laravel/HomesteadのGitHubへ行き、Homesteadをクローンしてください。
私は「Laravel_home」というフォルダを作成し、SourceTreeを使ってクローンしました。
もし、クローンがわからない方は右下の「Download ZIP」からダウンロードする方法でもいけるかもしれません(確認してません)。
公式によると、最新の安定バージョンであるreleaseブランチにチェックアウトした方がいいみたいです。
Homesteadをクローンしたら、「Homestead.yaml」ファイルを生成します。
コマンドプロンプトを開き、cd でHomesteadをクローンしたフォルダまで移動して、以下のコードを実行してください。
1 |
init.bat |
これで「Homestead.yaml」が生成されます。
Homestead.yamlの設定
VSCode等のエディタで「Homestead.yaml」ファイルを開いて以下の変更を行ってください。
なお、今回私は「LaravelTest」というフォルダにLaravelのテンプレートをインストールしていきたいと思います。このフォルダ名とユーザー名等は各自変更してください。
また、Windowsでは絶対パスが推奨されておりますので、デフォルトの ~/homeなどは使用しないようにしてください。
共有フォルダの設定
1 2 3 |
folders: - map: C:\Users\ユーザー名\Documents\Github\LaravelTest to: /home/vagrant/LaravelTest |
ここではローカルのフォルダと仮想環境との共有フォルダを設定します。
mapにローカルのフォルダの絶対パスを設定し、toに仮想環境のフォルダを設定してください。ちなみに、仮想環境を立ち上げたときのディレクトリは/home/vagrantです。
仮想環境のLaravelTestにファイルを追加すれば、ローカルにも追加されます。
サイト設定
環境設定が完了すると、http://homestead.test か “192.168.10.10” でページが閲覧できるようになります。その時、公開するディレクトリを設定しなくてはなりません。以下のように書き換えてください。
1 2 3 |
sites: - map: homestead.test to: /home/vagrant/LaravelTest/public |
SSHキーの作成
VirtualBoxへ接続するにはSSHキーが必要です。ホームディレクトリで以下のコマンドを入力し、SSHキーがあるか確認してください。
1 |
ls -la I grep .ssh |
ファイルがなければ、以下のコードを入力して生成してください。途中、パスワードを入力させられるので、任意のキーを入力してください。
1 |
ssh-keygen -t rsa |
完了すると、「id_rsa」と「id_rsa.pub」が生成されます。
ホスト名の追加
C:\Windows/System32/drivers/etc/hostsファイルを開き、以下のコードを追加してください。ここに記入する値は、Homestead.yamlを同値のものを入力してください。
1 2 |
#Laravel Homestead 192.168.10.10 homestead.test |
vagrantの起動
コマンドプロンプトを開き、Homesteadをクローンしたフォルダへ移動して、以下のコードを入力してください。処理には数分かかることがあります。
1 |
vagrant up |
完了後、以下のコードを実行し、仮想マシンにログインしてください。これで、仮想マシン上のディレクトリに切り替わります。
1 |
vagrant ssh |
Laravelのテンプレートをダウンロードしてください。以下のコマンドを入力すると、現在のディレクトリにLaravelTestフォルダが生成されます。こうしてHomestead.yamlで記載した共有フォルダとパスを合わせます。
1 |
composer create-project laravel/laravel LaravelTest --prefer-dist |
Laravelページの表示
ブラウザを立ち上げて、「http://homestead.test 」か「192.168.10.10″」と入力してください。
Laravelのアプリケーショントップが表示されます。
Laravelのページが表示されない場合
No input file specified.と表示される
Homestead.yamlの「folders」か「sites」のパスが間違っている可能性があります。
デフォルトで記載されている”Code”はパスに含ませてはいけません。ここには自分で命名したLaravelのフォルダ名が入ります。
または、キャッシュが残っていて更新されていない場合があるので、「Shift + F5」でスーパーリロードしてください。
おまけ
VirtualBoxのターミナルへのログイン方法
VirtualBoxのターミナルを起動すると、ログインIDとパスワードを求められます。デフォルトは以下になります。
login:vagrant
pass:vagrant
VirtualBoxを使用しているとマウスカーソルが消滅した時の対処法
キーボードの右側にある「Ctrl」キーを押すとカーソルが表示されます。左側では表示されないので注意してください。
Vagrantの終了方法
1 2 |
vagrant up vagrant ssh |
で起動した後、終了するときは、
1 |
exit |
か
1 |
logout |
を実行してログアウトしてください。
その後、VirtualBoxを起動して、右クリック>閉じる>電源オフにしてください。
もしくは、細切れでhomesteadをインストールしたフォルダ(ここではLaravel_home)のディレクトリに移動し、
1 |
vagrant halt |
を実行してください。
これで仮想マシンがシャットダウンします。
Laravelアプリケーションの起動
VirtualBoxのHomesteadが起動していれば、ブラウザでアプリケーションは起動するので、
1 |
vagrant ssh |
をする必要はありません。sshはファイルを操作したいときなどに使用します。