Laravel 5.0 Laravel Homestead

イントロダクション

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

Laravel Homestead(入植農地、「ホームステード」)はパッケージを事前に済ませた、Laravel公式の"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.7上で構築・テストされています。

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

インストールと準備

VirtualBox/VMwareとVagrantのインストール

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

VMware

VirtualBoxに付け加え、VMwareもHomesteadはサポートしています。VMwareプロバイダーを使用するには、VMware Fusion/DesktopとVMware Vagrantプラグインを購入する必要があります。VMwareは最初からより早い共有フォルダーを提供しています。

Vagrant Boxの追加

VirtualBox/VMwareと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のインストール

シンプルにリポジトリーをクローンし、Homesteadをインストールできます。自分の「ホーム」ディレクトリーの中のHomesteadフォルダーへリポジトリーをクローンするのは、自分のLaravel(とPHP)の全プロジェクトをホストしておくための、Homestead Boxを用意するのだと考えてください。

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

HomesteadリポジトリをCloneできたら、Homestead.yaml設定ファイルを作成するため、Homesteadディレクトリでbash init.shコマンドを実行してください。

bash init.sh

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

プロバイダーの設定

Homestead.yamlファイルのproviderキーはvirtualboxvmware_fusion(Mac OS X)、vmware_workstation(Windows)のどれかです。使用するプロバイダーの値を指定してください。

   provider: virtualbox

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環境との間で同期されます。必要なだけ共有フォルダーを設定してください!

NFSを有効にするには、同期するフォルダーにフラッグを指定するだけです。

   folders:
       - map: ~/Code
         to: /home/vagrant/Code
         type: "nfs"

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

それぞれのサイトはHTTPならば8000番ポートから、HTTPSなら44300ポートからアクセスできます。

Bashエイリアス

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

Vagrant boxを起動する

Homestead.yamlのリンクを編集終えたら、Homesteadディレクトリーでvagrant upコマンドを実行してください。

Vagrantは仮想マシーンを起動し、共有フォルダーとNginxサイトを自動的に設定します!仮想マシーンを破壊するには、vagrant destroy --forceコマンドを使用します。

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による接続

Homesteadマシンへ頻繁に接続するでしょうから、Boxに簡単に接続できるように、ホストマシンで「エイリアス」を作成することを考えましょう。

alias vm="ssh vagrant@127.0.0.1 -p 2222"

このエイリアスを設定すると、システムのどこにいようと、"vm"コマンドを使ってHomesteadマシンへSSH接続できます。

そうでなければ、Homesteadディレクトリでvagrant 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ディレクトリーで実行してください。

注意: この方法は破壊的です。provisionコマンドを実行すると、存在しているデータベースは破棄され、作成し直されます。

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

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

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

ポート

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

追加のポート

ご希望でしたら追加のポートをVagrant Boxへフォワードすることもできます。プロトコルを指定することもできます。

   ports:
       - send: 93000
         to: 9300
       - send: 7777
         to: 777
         protocol: udp

Blackfireプロファイラー

SensioLabsのBlackfireプロファイラーはRAM、CPU時間、ディスクI/Oなどのコード実行情報を自動的に集めてくれます。Homesteadでは、皆さんのアプリケーションでとても簡単に使用できます。

必要なパッケージは確実にHomestead Boxへインストールされていますので、Homestead.yamlファイルにBlackfireのサーバーIDとトークンをセットするだけです。

   blackfire:
       - id: your-server-id
         token: your-server-token
         client-id: your-client-id
         client-token: your-client-token

Blackfireの認証情報を設定し終えたら、vagrant provisionをHomesteadディレクトリーで実行し、Boxの設定準備を再実行してください。もちろん、WebブラウザにBlackfireを使いやすくする拡張をインストールするために、Blackfireのドキュメントをしっかり読んでおきましょう。

ドキュメント章別ページ

Artisan CLI

ヘッダー項目移動

注目:アイコン:ページ内リンク設置(リンクがないヘッダーへの移動では、リンクがある以前のヘッダーのハッシュをURLへ付加します。

移動

クリックで即時移動します。

バージョン

設定

適用ボタンクリック後に、全項目まとめて適用されます。

カラーテーマ
和文指定 Pagination
和文指定 Scaffold
Largeスクリーン表示幅
インデント
本文フォント
コードフォント
フォント適用確認

フォントの指定フィールドから、フォーカスが外れると、当ブロックの内容に反映されます。EnglishのDisplayもPreviewしてください。

フォント設定時、表示に不具合が出た場合、当サイトのクッキーを削除してください。

バックスラッシュを含むインライン\Code\Blockの例です。

以下はコードブロックの例です。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * ユーザに関連する電話レコードを取得
     */
    public function phone()
    {
        return $this->hasOne('App\Phone');
    }
}

設定を保存する前に、表示が乱れないか必ず確認してください。CSSによるフォントファミリー指定の知識がない場合は、フォントを変更しないほうが良いでしょう。

キーボード・ショートカット

オープン操作

PDC

ページ(章)移動の左オフキャンバスオープン

HA

ヘッダー移動モーダルオープン

MS

移動/設定の右オフキャンバスオープン

ヘッダー移動

T

最初のヘッダーへ移動

E

最後のヘッダーへ移動

NJ

次ヘッダー(H2〜H4)へ移動

BK

前ヘッダー(H2〜H4)へ移動

その他

?

このヘルプページ表示
閉じる