Laravel Homestead 使ってLaravelを起動してみる

いまや大人気(らしい)Laravelなるフレームワーク。存在は知っていたものの、全く触っていなかったので…
とりあえずハローワールドしてみました。

実行環境

  • OS X 10.9.3 Mavericks
  • Vagrant 1.6.2
  • Virtualbox 4.3.12

PHP環境を整理 (php55,composer)

composerをグローバルにインストールしていなかったので、インストール。

また、Homebrewを使いはじめた際、phpenvを使ってバージョンの切り替えができるように管理するつもりだったのですが、Vagrantを使うようになってからはローカルのPHPバージョンを気にする事がほとんどなくなったのでPHPもインストールしなおしました。

$ brew rm php-build
$ brew rm phpenv
$ rm -rf ~/.phpenv
$ brew update
$ brew tap homebrew/homebrew-php
$ brew tap homebrew/dupes
$ brew tap homebrew/versions
$ brew install php55-intl
$ brew install php55-mcrypt
$ . ~/.zshrc
$ brew install homebrew/php/composer
$ php -v
 PHP 5.5.13 (cli) (built: Jun 25 2014 17:25:25)
 Copyright (c) 1997-2014 The PHP Group
  Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
$ composer --version
  Composer version 1.0.0-alpha8 2014-01-06 18:39:59

homestead環境を構築

Laravelには、Homesteadという、Vagrantを使った開発環境が公式で提供されています。

これは、「とりあえずLaravelを触ってみよう」と言う僕の要件にピッタリあった使い捨て可能な開発環境が簡単に手に入ります。

HomesteadをGithubから取得

$ cd ~/Dev
$ git clone https://github.com/laravel/homestead.git Homestead
$ cd Homestead

Homestead.yamlを編集

ここで最低限設定する必要があるのは下記4つだけ。

  • authorize に有効なssh公開鍵
  • keys にVagrant環境にコピーしたい秘密鍵 (なければ何かダミーでも)
  • folders にVagrant共有フォルダーの設定
  • sitesNginxがリッスンするドメインとDocumentroot

/Users/me/.ss/...などと、既にサンプルが記述されているので、該当箇所を編集するだけでOK。
僕の場合の設定は下記のようになりました(ほとんどデフォルトのまま)。

---
ip: "192.168.10.10"
memory: 2048
cpus: 1

authorize: /Users/senta/.ssh/my.id_rsa.pub

keys:
    - /Users/senta/.ssh/my.id_rsa

folders:
    - map: /Users/senta/Dev/homestead/Code
      to: /home/vagrant/Code

sites:
    - map: homestead.dev
      to: /home/vagrant/Code/Laravel/public

variables:
    - key: APP_ENV
      value: local

homestead.devというドメインはpowを入れているので、powを使って設定しました。

$ echo '8000' > ~/.pow/homestead

また、Laravelアプリケーションのコードは、homesteadディレクトリ下にCodeディレクトリを作成しました。

$ cd ~/Dev/homestead/Code
$ composer create-project laravel/laravel Laravel --prefer-dist

Vagrant Up !!

$ vagrant up

yamlファイルによる設定、アプリケーションの作成が完了すれば、あとは vagrant upするだけでとりあえず起動することができました!

無事起動アクセスできるとこんな画面が表示されます。

Laravel Arrvied

注意点?

Laravel Homesteadでは、Vagrantのport forward機能により、下記3つのポートが利用されています。

  • 8000 (Nginx)
  • 33060 (MySQL)
  • 54320 (Postgres)

このポート番号については、yamlファイルからの設定が行えないため、既に使用している場合競合する事がありますが、scripts/homestead.rbにて定義されているので、このファイルを変更する事で回避可能です。

さて、とりあずQuickstartしてみよう。

SHOTA

I'm WEB developer

Tokyo, Japan http://senta.me/