読者です 読者をやめる 読者になる 読者になる

かまずにまるのみ。

文鳥とかビールとか

BEAR.Sunday 環境構築のメモ(Mac OS X版)

mac BEAR.Sunday

Mountain Lion 初期状態から BEAR.Sunday が動作する環境を構築するまでの記録。

作業開始時の各バージョン

 

やりたいこと

最終目標は BEAR.Sunday の Sandbox アプリが動く状態にすること。
パッケージ管理として Homebrew を利用。
PHPphp-build + phpenv でインストール、管理できるようにしたい。
Web サーバはとりあえずデフォルトの Apache 2.2.22 を利用することにする。

  1. Xcode インストール
  2. Homebrew インストール
  3. Homebrew から phpenv, php-build インストール
  4. php-build と phpenv を利用して PHP を使えるようにする
  5. MySQL をセットアップ
  6. BEAR.Sunday Sandbox アプリケーションの動作確認

 

やったこと

git インストール

2013/05/03 追記:
git はここでインストールしなくてもよかった気がする。
必要に応じて後から Homebrew で入れればよいはず。

 

Xcode インストール

App Store から Xcode 本体をインストールする。
Mac App Store - Xcode

続けて Xcode を起動し、 Command Line Tools をインストールする。

  1. Xcode を起動
  2. メニューから Preferences を選択
  3. Downloads タブを選択
  4. Components にある Command Line Tools を選択してインストール

 

Homebrew インストール

Homebrew — MacPorts driving you to drink? Try Homebrew!

上記サイトにあるとおりインストールコマンドを実行。

 ==> Installation successful!
 You should run `brew doctor' *before* you install anything.
 Now type: brew help

メッセージに従い brew doctor を実行してみる。
問題なさそう。

$ brew doctor
Your system is ready to brew.

 

phpenv インストール

brew install しようしても formula が見当たらない…
brew tap でリポジトリを追加する。

$ brew install phpenv
Error: No available formula for phpenv
$ brew tap josegonzalez/php
Cloning into '/usr/local/Library/Taps/josegonzalez-php'...
remote: Counting objects: 3066, done.
remote: Compressing objects: 100% (1598/1598), done.
remote: Total 3066 (delta 1731), reused 2658 (delta 1362)
Receiving objects: 100% (3066/3066), 537.07 KiB | 200 KiB/s, done.
Resolving deltas: 100% (1731/1731), done.
Tapped 116 formula

もう一度 install 実行。

$ brew install phpenv
Error: phpenv is a head-only formula
Install with `brew install --HEAD phpenv

オプション --HEAD をつけてもう一度実行。

$ brew install --HEAD phpenv
==> Cloning https://github.com/CHH/phpenv.git
Cloning into '/Library/Caches/Homebrew/phpenv--git'...
remote: Counting objects: 18, done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 18 (delta 3), reused 14 (delta 2)
Unpacking objects: 100% (18/18), done.
==> /usr/local/Cellar/phpenv/HEAD/bin/phpenv-install.sh
==> Caveats
To finish installing phpenv:
 * Add ~/.phpenv/bin to your $PATH
 * Add "eval $(phpenv init -)" at the end of your ~/.bashrc
 * Restart your shell
==> Summary
🍺  /usr/local/Cellar/phpenv/HEAD: 6 files, 24K, built in 9 seconds

メッセージにある通り、設定を .bashrc に追加して反映させておく。

$ source ~/.bashrc

phpenv は rbenv に依存しているので、phpenv と一緒に rbenv も追加されている。

$ ls -la ~
...
drwxr-xr-x  14 username   groupname     476  5  1 18:00 .phpenv
drwxr-xr-x   3 username   groupname     102  5  1 16:42 .rbenv
...


 

php-build インストール

phpenv と同様に brew install。

$ brew install php-build
==> Installing php-build dependency: autoconf
==> Downloading http://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz
...
==> Checking out tag v0.9.0
==> Caveats
Tidy is enabled by default which will only work
on 10.7. Be sure to disable or patch Tidy for
earlier versions of OS X.
==> Summary
🍺  /usr/local/Cellar/php-build/0.9.0: 65 files, 276K, built in 4 seconds

php-build --definitions でインストール可能なバージョンが確認できる。

$ php-build --definitions
5.2.17
5.3.10
5.3.11
...
5.5.0alpha1
5.5.0alpha2
5.5snapshot

 

PHP 5.4 インストール

php-build を利用してインストールする。
環境に合わせて configure option の設定を変更。

$ vi /usr/local/Cellar/php-build/0.9.0/share/php-build/default_configure_options

5.4.10 をインストール。
ビルドに必要なモジュールが足りなくて何度かエラーが出て中断した。
都度エラーメッセージを参考にモジュールを brew install し、再度ビルドする。

$ php-build 5.4.10 ~/.phpenv/versions/5.4.10
[Info]: Loaded apc Plugin.
[Info]: Loaded pyrus Plugin.
[Info]: Loaded xdebug Plugin.
[Info]: Loaded xhprof Plugin.
...
[Success]: Built 5.4.10 successfully.

ここで追加された libphp5.so は ~/.phpenv/versions/ 以下などにコピーしておく。
phpenv で PHP のバージョンを切り替えたとき、 libphp5.so も併せて置き換えるようにするときっとしあわせになれる。

 

phpenv でバージョンを切り替える

現在適用されているバージョンを確認してみる。

$ phpenv rehash
$ phpenv versions
* system (set by /Users/username/.phpenv/version)
  5.4.10
$ php -v
PHP 5.3.15 with Suhosin-Patch (cli) (built: Dec  9 2012 19:32:02)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

5.4.10 に切り替えてみる。

$ phpenv global 5.4.10
$ phpenv versions
  system
* 5.4.10 (set by /Users/username/.phpenv/version)
$ php -v
PHP 5.4.10 (cli) (built: May  1 2013 18:14:44)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
    with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans

$ which php
/Users/username/.phpenv/shims/php

phpenv versions と php -v で表示されるバージョンが異なっている場合、パスが通ってない可能性も。そういうときは phpenv インストール後に設定した .bashrc の見直して反映してみる。

 

php.ini の変更

2013/05/03 id:futurista999 さんからツッコミが入ったので追記:
タイムゾーンの設定をデフォルトのままにしておくと BEAR.Sunday の動作確認時にエラーが出るので、ここは設定しておく。

$ vi ~/.phpenv/versions/5.4.10/etc/php.ini
...
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Tokyo
...

 

MySQL インストール

特にこだわりもないのでさくっと brew install で入れる。

$ brew install mysql
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/mysql-5.6.1
...
To connect:
    mysql -uroot

To have launchd start mysql at login:
    ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Then to load mysql now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Or, if you don't want/need launchctl, you can just run:
    mysql.server start
==> Summary
🍺  /usr/local/Cellar/mysql/5.6.10: 9245 files, 351M

MySQL Server を起動して接続確認。

$ mysql.server start
$ mysql -uroot

PHP から接続できるか確認。
エラーが返ってこなければよし(たぶん)
BEAR.Sunday - PHP5.4構築(OSX) - mysql接続確認

php -r 'new PDO("mysql:host=localhost;dbname=mysql", "root", "");'

 

BEAR.Sunday インストール

BEAR.Sunday - インストール に書いてあるとおりやってみる。
今回は install.bear-project.net からインストールする方法で入れた。
コマンドを叩いたら、しばらくはライブラリが次々と入っていくのを見守るだけ。

== Required ==
 OK PHP:5.4.10
 OK Vendor install
== Optional ==
 NG APC:
 OK DB connect(root/)
== Develop ===
 NG xhprof: ()
 OK Xdebug: 2.2.1
 OK PDO-Sqlite: 1.0.1

BEAR.Sunday env check:  OK

環境確認(bin/env.php)まで実行してくれる。
APC は必須から推奨へ変更となったようなので、とりあえずなくても動くっぽい。

続いて DB 接続の準備。
必要な DB の作成はシェルスクリプトひとつ実行するだけでできる。
インストールから DB 作成まで、ふたつのコマンドを叩くだけ。らくちん。

Sandbox アプリケーションの動作確認までできたらひとまずおしまい。

f:id:tdakak:20130502002536p:plain