tanaka's Programming Memo

プログラミングについてのメモ。

Laravel5.4の開発環境をHomesteadでmacにインストール

注意:メインメモリー容量が 8GByte 以上ないと、動作が遅くて実用的ではないかもしれません。

Laravel5.4 の開発環境を mac に構築します。必要なソフトを全て揃える方法以外に、 Laravel HomesteadLaravel Valet の2種類の簡単に構築する方法が公式ホームページで紹介されています。

Homestead は、VirtualBox などの仮想 PC 上に開発環境を構築します。そのため、macWindowsLinuxのいずれでも利用できますが、少し手間が多いです。

Valet は、mac 専用の環境構築ツールですが、より簡単に構築ができます。また、メモリーサイズが足りない場合は選択肢になるようです。

ここでは他の OS でも使えるように Homestead での構築方法をまとめます。

前提条件

  • PHP がインストールされていること
  • composer がインストールされていること
  • メインメモリーが 8GByte 以上あること(4GByte でも動きますが、遅いです)

VirtualBox のインストール

VirtualBox5.1以降や、VMWareParallels などの仮想PCのソフトが必要です。ここでは VirtualBoxで進めます。

  • Downloads – Oracle VM VirtualBox を開く
  • インストールしたい環境の platform packages を選択してダウンロード(今回は mac) f:id:am1tanaka:20170218221952p:plain
  • ダウンロードしたファイルを起動
  • ウィンドウが表示されたら、VirtualBox.pkg アイコンをダブルクリック
  • しばらく待って、画面が表示されずに f:id:am1tanaka:20170214200238p:plain が跳ね始めたらそれをクリック
  • [続ける]>[続ける]>[インストール]をクリック
  • 管理者パスワードを要求されたら入力して[ソフトウェアをインストール]をクリック
  • インストールが完了するまで待つ
  • インストールが完了して、インストーラーをゴミ箱に入れるかが表示されたら[ゴミ箱に入れる]をクリック

続けて、拡張パックをインストールしておきます。

  • Downloads – Oracle VM VirtualBox を開く
  • エクステンションパックをダウンロードする f:id:am1tanaka:20170218222116p:plain
  • ダウンロードしたファイルを起動する
  • VirtualBoxが起動して、インストールするか質問が表示されるので、[インストール]をクリック
  • [同意します]をクリック
  • パスワード画面が表示されたら入力して[OK]
  • インストールが完了したら[OK]を押す

以上で、 VIrtualBoxのインストールが完了しました。次は Vagrant をインストールします。

VAGRANT のインストール

  • Download - Vagrant by HashiCorp を開いて、自分の環境のものをダウンロード
  • ダウンロードしたファイルを起動する
  • Vagrant.pkg をダブルクリックして起動する f:id:am1tanaka:20170214202507p:plain
  • インストーラーが起動したら、[続ける]>[インストール]をクリック
  • パスワード画面が表示されたら、入力して、[ソフトウェアをインストール]をクリック
  • インストールが完了したら[閉じる]をクリック
  • インストーラーをゴミ箱に入れるかを聞かれたら[ゴミ箱に入れる]をクリック

以上で Vagrant のインストール完了です。

Laravel Homestead のインストールとセットアップ

端末を起動して、以下を実行してください。 laravel/homestead ボックスが Vagrant にインストールされます。

vagrant box add laravel/homestead

以下のような選択肢が表示されたら、今回は VirtualBox で進めているので 2 を入力して[Enter]キーを押します。 f:id:am1tanaka:20170214212929p:plain

時間がかかるので完了するまで待ってください。

Laravel Installer のインストール

Laravel の動作環境は仮想PC にインストールしますが、 Laravel プロジェクトを作成するための環境は、 mac にもインストールしておきます。端末から以下を実行してください。

composer global require "laravel/installer"

インストールが完了すれば、基本的なインストールは完了です。

hosts 情報の設定

mac から仮想PC 内の Webサーバーにアクセスしやすくするために、homestead.app というドメインを、仮想PC の Web サーバーとして設定される 192.168.10.10 に割り当てておきましょう。

  • 端末から以下を入力
sudo vi /etc/hosts
  • パスワードを要求されたら入力
  • [i] キーを押して、入力モードにする
  • 下キーを繰り返し押して、カーソルを移動できるところまで下に移動させる
  • 右キーを繰り返し押して、カーソルを移動できるところまで右に移動させる
  • [Enter]キーを押して、新しい行を入力
  • 以下の行を追加する
192.168.10.10   homestead.app

f:id:am1tanaka:20170214221417p:plain

  • [ESC]キーを押してから、[:][w][q][Enter]キーの順に入力して、保存して、 vi を終了

これで環境構築が完了です。ここまでの作業は、一度やれば次からは不要です。

Laravel プロジェクトを作成

Laravel のプロジェクトを開始したい時はこの作業から始めます。

mac 上で Laravel プロジェクトを作成します。以下は、ユーザーフォルダー内に laravel5-4-test という名前の Laravelのプロジェクトフォルダーを作成する例です。

  • 端末を起動するか、起動中の端末に切り替える
  • 以下で、 Laravel プロジェクトを作成
cd ~
laravel new laravel5-4-test

これで Laravel プロジェクトが作成できます。次は Laravel Homestead の設定です。

Laravel Homestead の設定を生成

引き続き、端末で操作します

  • 以下を実行して、Laravel Homestead の設定を生成
cd ~/laravel5-4-test
composer require laravel/homestead --dev

画面に変化がなくても、数分間は待ってください。少し時間がかかります。

インストールが完了して、プロンプトが表示されたら、以下で設定ファイルを生成します。これはすぐに終わります。

php vendor/bin/homestead make

[Homestead Installed!]と表示されたら完了です。 f:id:am1tanaka:20170219000820p:plain

Vagrant で仮想 PC に開発環境を立ち上げる

端末で、以下のコマンドを実行すると、仮想PC に開発環境を作成して、起動します。

vagrant up

途中で、セキュリティーの確認が表示されたら[許可する]などで通信できるようにしてください。以下のようになれば完了です。f:id:am1tanaka:20170218230136p:plain

最終行にエラーっぽい行が表示されても、「すでに composer がインストールされている」という表示なので気にしなくて結構です。

Webブラウザーで、 http://homestead.app にアクセスしてください。 Laravel のデフォルトページが表示されます。 f:id:am1tanaka:20170218233735p:plain

Laravel をビルド可能にする

Laravel でプロジェクトをビルドできるようにします。端末から以下を実行してください。仮想PC に端末から接続します。

vagrant ssh

以下のように、最下段が[vagrant@laravel5-4-test]から始まっていれば成功です。 f:id:am1tanaka:20170218230732p:plain

仮想PC に端末がログインしたので、ここからの指示は 仮想 PC へのものになります。プロジェクトフォルダーに移動して、 node 環境と composer 環境を揃えます。

cd laravel5-4-test
sudo npm upgrade --global yarn
yarn install
composer install

自動ビルドを開始します。

yarn watch

しばらく待つと、緑色の字で[emitted]という字が並んで、変更の監視状態になります。あとは、 Laravel のファイルを変更すれば、自動的にビルドされます。 f:id:am1tanaka:20170219001911p:plain

開発を開始

Laravel のプロジェクトフォルダーは、 mac と仮想PC で共有されているので、作業は mac 側で行うことができます。

Atom などのエディターで、作成した Laravelプロジェクトを開きます。

  • プロジェクトフォルダー内の resources/views/welcome.blade.php を開く
  • 82行目にある Laravel を書き換える。例えば、 Homestead を追加するなど f:id:am1tanaka:20170219003604p:plain
  • 上書き保存する

ファイルが変更されたら、それを仮想PC の環境が検出してプロジェクトがリビルドされます。mac の Webブラウザーhttp://homestead.app を表示したり、再読み込みをしていると、そのうちに変更が反映されます。

f:id:am1tanaka:20170219003915p:plain

いつビルドが完了するか分からないのは不便です。 macBrowserSync をインストールして、プロジェクトフォルダー内の public フォルダーの変更をトリガーにして、ブラウザーをリロードする設定をすると良いでしょう。やり方はここでは割愛しますので、インターネットで調べてみてください。

以上で、開発が整いました。あとは、開発を進めていってください。

停止方法

仮想PC の停止方法です。

  • 仮想PC に接続した端末で、[Ctrl]+[C]キーを押して、監視を停止する
  • コマンドが入力できるようになるので、以下で仮想PCをシャットダウンする
sudo shutdown -h now
  • exit を入力して [Enter]キーを押すと、端末が終了する
  • 終了した端末の[x]をクリックして閉じる

以上で停止完了です。

再開方法

開発を再開したい時の手順です。

  • VirtualBoxをランチャーなどから起動
  • プロジェクト名の仮想マシン(laravel5-4-testなど)を選択して、[起動]ボタンで起動 f:id:am1tanaka:20170219005301p:plain
  • 端末を開いて以下のように プロジェクトフォルダー に移動 > 仮想PCにログイン > ファイルの変更を監視する
cd laravel5-4-test
vagrant ssh
yarn watch

仮想PC の削除方法

テストなどで作成した仮想PC を削除したい場合の操作です。

  • 仮想PC が起動していたら停止する
  • 端末を起動する
  • 以下のコマンドで、プロジェクトフォルダーに移動 > 仮想PC を削除する
cd ~/laravel5-4-test
vagrant destroy --force
  • プロジェクトフォルダーが不要ならば、以下でフォルダーを削除
cd ..
rm -rf laravel5-4-test

まとめ

macPHP, Composer, VirtualBox, Vagrant, Laravel Installer がインストールされていれば、あとは仮想PC 上に、Webサーバーやデータベースサーバーなどの Laravel を開発する環境を構築することができました。

mac の Webブラウザーで、 http://homestead.app にアクセスすると、 Laravel のページが表示されました。また、ファイルの変更があったらリビルドする設定をして、表示されるページの文字を変更してみました。

最後に、仮想PC の停止方法や、作業の再開方法、仮想PC の削除方法をまとめました。

やってみると手順がわからない部分がいくつかあって、公式サイトに書いてあるほど手軽ではありませんでした。とはいえ、依存関係やバージョンによるトラブルが発生しないのはやはり楽です。

最大のネックは、メインメモリーでしょう。公式サイトにも書いてありますが、(Laravelは7MByteで動作する、という文言を読み間違えてました。2017/2/19 修正)8GByte 以上欲しいです。4GByte の MacBook Air だと遅くて開発は厳しいと感じました。その場合は、 mac なら Laravel Valet を検討するか、必要な環境を揃えて手順通りにインストールしてください。処理速度はそちらの方が有利でしょう。

参考URL