Windows10でLaravel Homesteadを利用した開発環境を構築(コマンドプロンプト編)

メモ:

Windows 上に Laravel の開発に必要な環境をパッケージにした仮想マシンの Laravel Homestead を作成します。環境構築について検索すると Git bash を使った作成方法を多く見かけますがコマンドプロンプトを使ったインストールを実施してみます。 Git bash を使った方法は、後日試したいと思います。どちらが便利でしょうかね?

作業にするにあたり vagrant , VatualBox , Git for Windows が必要となります。

laravel/homestead box の取得

laravel/homestead box を Vagrant へ追加するため、コマンドプロンプトを起動し次のコマンドを実行します。

C:\Users\(ユーザー名)>vagrant box add laravel/homestead

仮想環境を聞かれるので、「3」の virtualbox を選択します。

==> box: Loading metadata for box 'laravel/homestead'
    box: URL: https://vagrantcloud.com/laravel/homestead
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.

1) hyperv
2) parallels
3) virtualbox
4) vmware_desktop

Enter your choice: 3
==> box: Adding box 'laravel/homestead' (v6.3.0) for provider: virtualbox
    box: Downloading: https://vagrantcloud.com/laravel/boxes/homestead/versions/6.3.0/providers/virtualbox.box
    box: Download redirected to host: vagrantcloud-files-production.s3.amazonaws.com
    box:
==> box: Successfully added box 'laravel/homestead' (v6.3.0) for 'virtualbox'!

ダウンロードが終わるまでしばらく待ちます。

ちなみに、ダウンロードしたファイルは「C:\Users(ユーザー名).vagrant.d\boxes」に保存されます。

boxの保存場所

Homestead 環境を作るのに必要なファイルを取得します。Vagrantfile や Homestead の設定ファイルなどが含まれています。

C:\Users\(ユーザー名)>git clone https://github.com/laravel/homesteas.git Homestead

環境構築に必要なファイルをダウンロードしたフォルダーに移動します。

C:\Users\(ユーザー名)>cd Homestead

設定ファイルを作成します。 init.bat を実行すると3つのファイルがコピーされます。

  • Homestead.yaml
  • after.sh
  • aliases
C:\Users\(ユーザー名)\Homestead>init.bat

SSH で使用する鍵の生成

「C:\Users(ユーザー名).ssh」フォルダーに移動し鍵を生成します。既に存在している場合は、作業を行いません。

保存するファイルを聞かれるので、そのまま Enter を押します。

パスフレーズを求められるので、任意のパスフレーズを入力します。

もう一度パスフレーズを求められるので、同じパスフレーズを入力します。

C:\Users\(ユーザー名)\>cd ..\.ssh
C:\Users\(ユーザー名)\.ssh>ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\(ユーザー名)/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\(ユーザー名)/.ssh/id_rsa.
Your public key has been saved in C:\Users\(ユーザー名)/.ssh/id_rsa.pub.
.....

.ssh フォルダーに id_rsa と id_rsa.pub の2つのファイルが作成されます。

Homestead の設定

init.bat で作成された Homestead.yaml の内容を確認していきます。

Homestead.yaml テキストエディタで開きます。まず、仮想マシン(開発環境)の IPアドレス の設定があります。次にメモリーのサイズ、CPUの数、仮想マシンの種類が設定されています。

ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

次に先ほど作成した SSH で使用する鍵ファイルと設定があっているか確認します。

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

次の設定は、開発環境とホストOSのフォルダー共有設定になります。次の設定では、「C:\Users(ユーザー名)\code」フォルダーが共有フォルダーとして設定されており、仮想マシンの開発環境では「/home/vagrant/code」にマッピングされます。

folders:
    - map: ~/code
      to: /home/vagrant/code

共有フォルダーが存在していないので、事前に作成しておきます。

C:\Users\(ユーザー名)>mkdir code

sites 設定は、 nginx のサイト設定になります。デフォルトでは、 nginx が採用されており Apache はオプションとなるようです。

sites:
    - map: homestead.test
      to: /home/vagrant/code/public

to の部分がエントリポイントとなるので、とりあえずドキュメントに従って変更しておきます。

sites:
    - map: homestead.test
      to: /home/vagrant/code/Laravel/public

名前で解決できるよう、 hosts ファイルを修正します。次の設定をすることで、ブラウザーから「homestead.test」でアクセスできるようになります。

「C:\Windows\System32\drivers\etc\hosts」ファイルをテキストエディタで開き次の行を追加します。

192.168.10.10 homestead.test

仮想マシン(Homestead)の実行

Homestead フォルダーで vagrant up コマンドを実行し、仮想マシンを起動します。

C:\Users\(ユーザー名)\Homestead>vagrant up

仮想マシンの起動確認

仮想マシンが起動できたか次のコマンドで確認します。

C:\Users\(ユーザー名)\Homestead>vagrant status
Current machine states:

homestead-7               running (virtualbox)

running と表示されれば、起動しています。

ブラウザーから確認

ブラウザーを起動し、 homestead.test へ接続してみます。

表示するものが何もないので、「No input file specified.」と表示されます。

No input file specified. の表示

Laravel のプロジェクトを作成

ssh を使って開発環境へ接続します。

C:\Users\(ユーザー名)\Homestead>vagrant ssh

作業用の共有ディレクトリへ移動し、 Laravel のプロジェクトを作成します。

vagrant@homestead:~$ cd code
vagrant@homestead:~/code$ composer create-project laravel/laravel Laravel --prefer-dist

code ディレクトリに Laravel ディレクトリが作成されその配下にプロジェクトが作成されます。

code
  |- Laravel
    |- app
    |- public

ブラウザーから homestead.test へ接続し次の画面が表示されることを確認します。

初期ページの表示

以上で開発環境が構築されました。

仮想マシンの停止

仮想マシンを停止するには、 Vagrantfile ファイルのある Homestead フォルダーへ移動し次のコマンドで停止します。

C:\Users\(ユーザー名)\Homestead>vagrant halt