イントロダクション
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環境を起動する前に、VirtualBoxとVagrantをインストールする必要があります。両ソフトウェア共に、簡単に使用できるビジュアルなインストーラーが、人気のあるオペレーティングシステム全部に用意されています。
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
シェルを使用します。別の方法として、PuTTYとPuTTYgenを使うこともできます。
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