mac上にsymfony2の開発環境を作る

symfony2を使うプロジェクトが複数あるのでセットアップする。
他のメンバーも同じ環境を作って貰うので、手順をメモメモ。

mariaDB

流行にのって(?)mysqlじゃなくてこっちを。

brew install mariadb

Apache

2.2.27を使います。

brew tap homebrew/apache
brew install httpd22 

ちなみに、最初

httpd22 --with-brewed-apr --with-brewed-openssl --with-privileged-ports

でインストールしたら、php5のso読み込まるとapacheが起動できなくなった。 (どれが問題なのかは切り分けできていない)

redis

今回のプロジェクトではmysqlのキャッシュとして使います。
次のプロジェクトはredisをメインDBにするかも?

brew install redis

php

いよいよphpインストール。
でもその前にlibyamlを。必須では無いが、プロジェクト内でphpからyamlをいじるので。

brew install libyaml

続いてphp本体、バージョンは5.4。

brew tap homebrew/homebrew-php
brew install php54 --with-apache
brew install php54-apc php54-intl php54-xdebug php54-yaml php54-redis php54-lz4 php54-msgpack
brew install phpunit

が、ここでzlibインストール時にエラー発生

==> Downloading http://zlib.net/zlib-1.2.8.tar.gz
Already downloaded: /Library/Caches/Homebrew/zlib-1.2.8.tar.gz
Error: SHA1 mismatch
Expected: a4d316c404ff54ca545ea71a27af7dbc29817088
Actual: 269234641aa81d39d88c58df9fb41f5bafb6153e
Archive: /Library/Caches/Homebrew/zlib-1.2.8.tar.gz
To retry an incomplete download, remove the file above.

brew SHA1 mismatchでググると、brew updateすると直るよ、というのが出てくるものの
homebrewインストールしたばかりなのでbrew updateしても「最新だよ」と言われてしまう。

/Library/Caches/Homebrew/zlib-1.2.8.tar.gzのダウンロードが上手くいってないのかな?
と思って見てみると、サイズがやたら小さい上に中身がhtmlになっている??

…外部から社内に接続する際のVPNクライアントに付属している
ファイアウォール機能がダウンロードをブロックしていたというオチでした。 ファイアウォール機能をオフにして/Library/Caches/Homebrew/zlib-1.2.8.tar.gzを削除し、再実行。

homebrewでphp54-yamlとかを入れると、pecl install YAMLとかやらなくていいのね。

composer

symfony2で使うので。
もうちょっと軽くなったらいいのになあ。

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

phing

ビルド用にphingをインストールする。これはhomebrewでは入らないぽい。

pear channel-discover pear.phing.info
pear install phing/phing

なお、最初に実行した時は以下のようなエラーが出た。

could not create lock file: fopen(/usr/local/Cellar/php54/5.4.31/lib/php/.lock): failed to open stream: Permission denied

と怒られたので見てみると、権限が

r--r--r--

こんな感じの.lockファイルが既に居座っていた…削除して再実行したらうまくいった。

symfony2

最後にsymfony2の登場。 シンプルに使うだけならここまで色々いらないのだろうけど、 必要なものを順序立てて入れていったらこんなに長くなってしまった。

公式の手順に従って、

composer create-project symfony/framework-standard-edition path/ "2.3.*"

これでようやくおしまい。