1. livejam_db
Changes in body
Source | HTML | Preview

Homebrew での開発環境構築も少し慣れてきたので、Apache, PHP, MySQL, Composer をインストールして、Yii Framework を動かすところまで書きたいと思います。

実行環境

  • Mac OS X: 10.9.1 (Mavericks)
  • Homebrew: 0.9.5

Homebrew のインストール

ターミナルを起動して、以下のコマンドを実行

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
  • Mac 本体のパスワードを聞かれるので入力
  • 「... コマンドラインデベロッパーツールをインストールしますか?」みたいなことを聞かれるのでインストールをクリック
  • インストール後、Enter で Homebrew のインストールが開始されます

パスを通す ( bash なら .bash_profile に追加)

.bash_profile
export PATH=/usr/local/bin:$PATH
export PATH=/usr/local/sbin:$PATH

Java for OS X 2013-005 をダウンロード
以下からダウンロードして、ダブルクリック。
http://support.apple.com/kb/DL1572?viewlocale=en_US

Git のインストール
Mac OS X に元々入っているけど、最新のものを。

brew install git

Homebrew 本体のチェック
とりあえずここで Homebrew がおかしくないかチェック。
「Your system is ready to brew.」と出れば OK。警告などが出たらその都度メッセージを読み解きながら対処。

brew doctor

MySQL のインストールと設定

brew install mysql

MySQL の起動

mysql.server start

root パスワードの変更

mysqladmin -u root password 'new-password'

MySQL のセキュリティ設定
( ルートパスワード項目以外はすべてデフォルトでOK )

mysql_secure_installation

MySQL の停止

mysql.server stop

Apache のインストールと設定

homebrew/dupes を追加

brew tap homebrew/dupes

外部 formula がインストール可になっているか確認

brew search httpd

Apache のインストール

brew install httpd

http.conf の設定
( 場所は /usr/local/etc/apache2/ 、ルートのパス、起動ユーザ名などは任意 )

httpd.conf
# DocumentRoot の変更
DocumentRoot "/Users/jamband/Dropbox/htdocs"

# 起動ユーザの変更
User jamband

# php5 のモジュールの追加
LoadModule php5_module /usr/local/opt/php54/libexec/apache2/libphp5.so

# .php で php を実行できるように MIME タイプの追加 ( IfModule mime_module 内 )
AddType application/x-httpd-php .php

# indexファイルにindex.phpを使えるように修正 ( IfModule dir_module 内 )
DirectoryIndex index.php index.html

# .htaccessでURLのoverwriteを許可 ( Directory "/Users/jamband/Dropbox/htdocs" 内 )
AllowOverride All

# Virtual hosts のコメントアウトを解除
# httpd-vhosts.conf には dummy があるので削除し、適当に任意のホスト追加し
# /etc/hosts も書き換えておく
Include /usr/local/etc/apache2/extra/httpd-vhosts.conf
httpd.conf
# DocumentRoot の変更
DocumentRoot "/Users/jamband/Dropbox/htdocs"

# 起動ユーザの変更
User jamband

# php5 のモジュールの追加
LoadModule php5_module /usr/local/opt/php54/libexec/apache2/libphp5.so

# .php で php を実行できるように MIME タイプの追加 ( IfModule mime_module 内 )
AddType application/x-httpd-php .php

# indexファイルにindex.phpを使えるように修正 ( IfModule dir_module 内 )
DirectoryIndex index.php index.html

# .htaccessでURLのoverwriteを許可 ( Directory "/Users/jamband/Dropbox/htdocs" 内 )
AllowOverride All

# Virtual hosts のコメントアウトを解除
Include /usr/local/etc/apache2/extra/httpd-vhosts.conf

# httpd-vhosts.conf には dummy があるので削除し、適当に任意のホスト追加し
# /etc/hosts も書き換えておく

変更後は Apache の再起動

sudo apachectl stop
sudo apachectl start

あと、Mac に元々入ってる Apache ではなく、
Hombrew でインストールしたものか確認してみたり。
( 多分 Mavericks では /usr/sbin/ に httpd, apachectl などが置いてある )

which httpd
httpd -v

access_log, error_log の場所は /usr/local/var/apache2/log/ です

PHP のインストールと設定

homebrew/dupes, josegonzalez/homebrew-php を追加
( homebrew/dupes は Apache をインストール時に追加しましたが PHP 単体でインストールする場合は追加します )

brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php

外部 formula がインストール可になっているか確認

brew search php

PHP54 のインストール
( APC も入れたかったので今回は php54 にしました )

brew install php54

インストール後は Caveats を見ながら、またいろいろ修正、設定していきます

PEAR の権限を修正
( パスのバージョンはインストールしたものによって変わってきます )

chmod -R ug+w /usr/local/Cellar/php54/5.4.16/lib/php
pear config-set php_ini /usr/local/etc/php/5.4/php.ini

php.ini の設定
( 場所は /usr/local/etc/php/5.4/ )

php.ini
date.timezone = Asia/Tokyo
default_charset = "UTF-8"
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII

APC, Xdebug のインストール

brew install php54-apc
brew install php54-xdebug

設定ファイルが /usr/local/etc/php/5.4/conf.d/ に置かれるので、php.ini には書き足さなくてよい

Composer のインストールと設定

外部 formula がインストール可になっているか確認

brew search composer

Composer のインストール

brew install composer

Yii Framework でユニットテスト及び機能テストを実行

これは読み手が限定されるので、必要な方だけどうぞ。

アプリケーションのひな形を作成し /protected まで移動後、composer.json を作成

composer.json
{
    "require": {
        "yiisoft/yii": "1.1.*"
    },
    "require-dev": {
        "phpunit/phpunit": "3.7.*",
        "phpunit/phpunit-selenium": "*",
        "phpunit/phpunit-story": "*",
        "phpunit/dbunit": "*",
        "phpunit/php-invoker": "*"
    }
}

ライブラリのインストール
( protected/vendor/ が作成され、そこにいろいろ置かれる )

composer install --dev

ユニットテストの実行

cd tests
../vendor/bin/phpunit unit

Selenium RC のインストール

brew install selenium-server-standalone

selenium-server-standalone を起動

selenium-server -p 4444

機能テストを実行

../vendor/bin/phpunit functional

各パッケージの削除方法

MySQL

brew uninstall mysql
rm -rf /usr/local/var/mysql

Apache

brew uninstall httpd
rm -rf /usr/local/etc/apache2
rm -rf /usr/local/var/apache2

PHP

brew uninstall php54
brew uninstall php54-apc
brew uninstall php54-xdebug
rm -rf /usr/local/etc/php
rm -rf /usr/local/opt/php54/

Homebrew本体

インストールしたパッケージなどがすべて削除されるので注意して行なってください。
また、.bash_profile などに追加したパスは手動で削除します。

curl -O https://gist.githubusercontent.com/mxcl/1173223/raw/a833ba44e7be8428d877e58640720ff43c59dbad/uninstall_homebrew.sh
sh uninstall_homebrew.sh

まとめ

これで MAMP などは使わずに開発環境の構築ができそうです。
今年後半は Vagrant, Chef あたりを触っていきたいと思っています。