かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

Mac OSX 開発環境セットアップのメモ (5) phpbrewでPHPをインストール

フリーランスのお仕事だとレンタルサーバーにWordPressでホームページ作りたいってのがまだまだ多いのです。 MAMPやXAMPPはサーバーもセットで簡単にインストールできるのですが、稀にお客さんの用意しているレンタルサーバーのPHPMySQLのバージョンが違っていて(古くて)バグを出してしまうということがあるので、自分でバージョンを指定した環境が用意できるようにしておいた方が安全な事が多いです。(本番リリース後、環境依存のバグ辛い!)

PHPのバージョンを管理できるphpenvはrbenvとバッティングするらしくメンドそうだったので、phpbrewを使ってPHPの環境を作ることにしました。

  • homebrew, x-code インストール済み

PHPのビルドに必要なパッケージのインストール

先にhomebrewでPHPのビルドに必要なパッケージをインストールしておきます。
参照: Requirement · phpbrew/phpbrew Wiki · GitHub

$ brew install automake autoconf curl pcre bison re2c mhash libtool icu4c gettext jpeg openssl libxml2 mcrypt gmp libevent
$ brew link icu4c
$ brew link --force openssl
$ brew link --force libxml2

phpbrewのインストール

以前はhomebrewでインストールできたようですが、curlで直接ダウンロードする方法に変わっていたので、公式のドキュメントを参考にインストールしていきます。

$ curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
$ chmod +x phpbrew
$ sudo mv phpbrew /usr/local/bin/phpbrew
$ phpbrew init

ダウンロードして、アクセス権を変えて、/usr/local/binに移動させて初期化。

~/.bashrcにを開き下記のphpbrewのパスを追記して保存

# phpbrew
source ~/.phpbrew/bashrc

ターミナルにもパスを反映

$ source ~/.bashrc

phpbrewでパッケージを探すプレフィックスを設定

macports, homebrew, debian, ubuntu, またはカスタムパスが使える。phpbrewがパッケージを探す時にどれを使うかみたいな感じだと思います。
※ ターミナルにphpbrewのパスが反映されてない状態で実行するとphpbrewコマンドでエラーが出るようになるので注意が必要です。

homebrewをlookup prefixに設定

$ phpbrew lookup-prefix homebrew

PHPのインストール

phpbrewでインストールできるバージョンの一覧を表示
$ phpbrew known
phpをインストール
$ phpbrew install <version> +default

+defaultオプションをつけると、もっともよく使用されているバリアント(Variants)をまとめてインストールしてくれるようです。

バリアントの種類を確認する

$ phpbrew variants

バリアントを指定してインストールする場合はPHPのバージョンに続けて+キーワードを付けて+mysqlのように指定すればOKなようです。

$ phpbrew install <version> +<variant_name>

追記: +defaultにはmysqlapacheに関するものが含まれていないっぽいので、WordPressなどでの使用する場合は+mysql, +apxs2, +opensslのバリアントも指定したほうが良さそうです

$ phpbrew install <version> +default +mysql +apxs2 +openssl
インストールしたPHPを使う

PHPの切り替え (switch version temporarily)

$ phpbrew use <version>

デフォルトで使用するPHPを指定 (switch default version)

$ phpbrew switch <version>

別のターミナルを開いてPHPのバージョンを確認

$ php -v

切り替えたバージョンが表示されていればOKです。

php.iniの設定

php.iniの場所を調べる

$ php --ini

phpbrewでPHPをインストールした際のphp.iniの場所は~/.phpbrew/php/php-<version>/etc/php.iniのようです。

timezoneの設定

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "Asia/Tokyo"

mysql.sockの設定

[Pdo_mysql]
; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
pdo_mysql.default_socket= /usr/local/var/mysql/mysql.sock

[MySQLi]
; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
; http://php.net/mysqli.default-socket
mysqli.default_socket = /usr/local/var/mysql/mysql.sock

※ PHP56はmysql.default_socketmysqli.default_socketpdo_mysql.default_socketmysql.sockのパスを追加しました。

composerのインストール

homebrewでcomposerをインストールしておきます。

パッケージのチェック

$ brew search composer
==> Formulae
composer

インストール

$ brew install composer

 

この後apcheの環境を作ってlocalhostphpMySQLが使えるようにしたいと思います。


[参考]

phpbrewとphpenvの比較