イントロダクション

Laravelはローカルでの開発環境を含め、PHP開発全体の経験を愉快なものにしようと努めています。Vagrantは、仮想マシーンの管理と事前設定を行う、簡単でエレガントな方法を提供しています。

Laravel Homestead(入植農地、「ホームステード」)は、事前にパッケージされた公式の"box"で、PHPやHHVM、Webサーバー、その他のサーバーソフトウェアをローカルマシンにインストールする必要なく、素晴らしい開発環境を準備します。オペレーティングシステムに関して、ごちゃごちゃになる心配は、もうありません! Vagrantのboxは、完全に使い捨て可能です。何かの調子が悪くなれば壊して、数分のうちにそのboxを再生成できます!

Homesteadは、Windows、Mac、Linuxシステムで実行でき、Nginx Webサーバー、PHP5.6、MySQL、Postgres、Redis、Memcachedやその他、素晴らしいLaravelアプリケーションを開発するために必要な全てのクールなツールを含んでいます。

注意: Windowsを使用している場合は、ハードウェア仮想化(VT-x)を有効にする必要があります。通常、BIOSにより有効にできます。

Homesteadは現在、Vagrant1.6上で構築・テストされています。

パッケージされているソフトウェア

  • Ubuntu 14.04
  • PHP 5.6
  • HHVM
  • Nginx
  • MySQL
  • Postgres
  • Node(BowerとGrunt、Gulpも含む)
  • Redis
  • Memcached
  • Beanstalkd
  • Laravel Envoy
  • Fabric+HipChat拡張

インストールと準備

VirtualBoxとVagrantのインストール

Homestead環境を起動する前に、VirtualBoxVagrantをインストールする必要があります。両ソフトウェア共に、簡単に使用できるビジュアルなインストーラーが、人気のあるオペレーティングシステム全部に用意されています。

Vagrant Boxの追加

VirtualBoxとVagrantをインストールし終えたら、laravel/homestead boxをVagrantへ追加するために、以下のコマンドを端末で実行する必要があります。boxをダウンロードし終えるまで、接続速度にもよりますが、数分かかるでしょう。

vagrant box add laravel/homestead

失敗する場合、ボックスのURLを指定する必要のある、古いバージョンのVagrantを使用していると思われます。次のコマンドなら動作するでしょう。

vagrant box add laravel/homestead https://atlas.hashicorp.com/laravel/boxes/homestead

Homesteadのインストール

ComposerとPHPツールの利用

Vagrantへboxを追加し終えたら、ComposerのglobalコマンドでHomestead CLIツールをインストールする準備が整いました。

composer global require "laravel/homestead=~2.0"

端末からhomesteadコマンドを実行するときに、実行形式ファイルが見つかるように、~/.composer/vendor/binディレクトリーへ実行パスを確実に通してください。

Homestead CLIツールをインストールし終えたら、initコマンドを実行し、Homestead.yaml設定ファイルを生成します。

homestead init

Homestead.yamlファイルは~/.homesteadディレクトリーに設置されています。MacかLinuxシステムを使用している場合、homestead editコマンドを端末で実行すれば、編集が行えます。

homestead edit

Gitから入手(ローカルにPHP無し)

ローカルマシーンにPHPをインストールしたくなければ、リポジトリーをcloneし、Homesteadを自分でインストールする方法も取れます。全Laravel(とPHP)プロジェクトのホスト先としてHomestead boxを動作させるため、プロジェクトを保存する中心入植地(Homestead)ディレクトリーへ、リポジトリーをcloneするのだと考えてください。

git clone https://github.com/laravel/homestead.git Homestead

Homesteadコマンドラインツールがインストール済みであれば、bash init.shコマンドでHomestead.yaml設定ファイルを生成できます。

bash init.sh

Homestead.yamlファイルは、~/.homesteadディレクトリーへ設置されます。

SSHキーの設定

次に、Homestead.yamlファイルを編集します。このファイルで、publicのSSHキーへのパスを設定でき、またメインマシーンと、Homestead仮想マシーンとの間で共有するフォルダーも指定できます。

SSHキーを持っていない? 一般的にMacとLinuxでは、以下のコマンドを使用し、SSHキーペアを生成できます。

ssh-keygen -t rsa -C "you@homestead"

Windowsでは、Gitをインストールし、Gitコマンドを実行するためのGit Bashシェルを使用します。別の方法として、PuTTYPuTTYgenを使うこともできます。

SSHキーを作成したら、Homestead.yamlファイルの、authorizeプロパティーへ、キーのパスを指定してください。

共有フォルダーの設定

Homestead.yamlファイルのfoldersプロパティーには、Homestead環境と共有したい全フォルダーがリストされています。これらのフォルダーの中のファイルが変更されると、ローカルマシーンとHomestead環境との間で同期されます。必要なだけ共有フォルダーを設定してください!

Nginxサイトの設定

Nginxには詳しくない? 問題ありません。sitesプロパティーで、Homestead環境上のフォルダーと「ドメイン」を簡単にマップできます。サイト設定のサンプルは、Homestead.yamlファイルに含まれています。ここでも必要に応じ、Homestead環境中のサイトを好きなだけ追加してください。便利なように、Homesteadは皆さんが作業を行う、全てのLaravelプロジェクトの仮想環境を提供します!

hhvmオプションをtrueに設定すれば、簡単にHomesteadサイトでHHVMが使えるようになります。

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public
      hhvm: true

Bashエイリアス

BashエイリアスをHomestead boxに追加するには、~/.homesteadディレクトリーのルートに、aliasesファイルを追加するだけです。

Vagrant boxを起動する

Homestead.yamlでリンクを編集終えたら、端末でhomestead upコマンドを実行してください。HomesteadをComposerとPHPツールを利用せずにインストールした場合、homesteadツールは利用できませんので、HomesteadのGitリポジトリーをcloneしたディレクトリーで、vagrant upを実行してください。

Vagrantは仮想マシーンを起動し、共有フォルダーとNginxサイトを自動的に設定します!仮想マシーンを破壊するには、homestead destroyコマンドを使用してください。使用可能なHomesteadの全コマンドを確認するには、homestead listを実行してください。

Nginxサイトの「ドメイン」をメインマシーンのhostsファイルに追加するのを忘れないでください! hostsファイルは、ローカルドメインへのリクエストをHomestead環境へリダイレクトしてくれます。MacとLinuxでは、このファイルは/etc/hostsにあります。Windowsでは、C:\Windows\System32\drivers\etc\hostsにあります。以下のような行をファイルへ追加してください。

192.168.10.10  homestead.app

このIPアドレスを確実にHomestead.yamlファイルで指定してください。hostsファイルへドメインを追加したら、Webサーバーからサイトへアクセスできます!

http://homestead.app

データベースに接続する方法を学ぶには、続けて読んでください!

使用方法

SSHによる接続

SSHでHomestead環境へ接続するには、端末でhomestead sshコマンドを実行してください。

データベースへの接続

homesteadのデータベースは、最初からMySQLとPostgresのために設定されています。より便利にするために、Laravelのlocalデータベース設定がデフォルトで使用できるように設定されています。

MySQLかPostgresデータベースに接続するには、メインマシーンからNavicatかSequel Proを使い、127.0.0.1の33060(MySQL)番ポートか、54320(Postgres)番ポートへ接続してください。ユーザー名とパスワードは、両方共にhomestead/secretです。

注意:メインマシーンから、データベースへ接続するには、標準的ではないポートだけを使用してください。Laravelのデータベース設定ファイル中では、デフォルトの3306と5432ポートを使用することができます。Laravelは仮想マシーンの内部で動作しているからです。

サイトを追加する

Homestead環境が準備され、実働した後に、LaravelアプリケーションをNginxサイトへ追加したいこともあるでしょう。希望するだけの数のNginxサイトをLaravelアプリケーションに追加し、一つのHomestead環境上で実行することができます。これには2つの方法があります。最初の方法は、シンプルにHomestead.yamlファイルへサイトを追加し、それからvagrant provisionを実行してください。

別の方法は、Homestead環境で使用できる、serveスクリプトを使用します。serveスクリプトを使用するには、Homestead環境へSSHで接続し、以下のコマンドを実行してください。

serve domain.app /home/vagrant/Code/path/to/public/directory

注目: serveコマンドを実行した後は、新しいサイトをメインマシーンのhostsファイルへ追加するのを忘れずに!

ポート

以下のポートが、Homestead環境へポートフォアードされています。

  • SSH: 2222 -> フォワード先22
  • HTTP: 8000 -> フォワード先80
  • MySQL: 33060 -> フォワード先3306
  • Postgres: 54320 -> フォワード先5432