macでPHP環境構築の続き。

以前の記述の追加で。

こことかこことかここを参考にさせて頂いて、macで複数バージョンのPHPを入れるということでがんばってみた。

◆事前準備

brew tap Homebrew/dupes
brew tap josegonzalez/php

◆ついでなのでapacheもbrewから入れておく

brew install httpd

うちの環境ではhttpd.confは/usr/local/etc/apache2/httpd.confにありました。

◆phpenv

brew install –HEAD phpenv

その後、.bashrcに

# phpenv
export PATH=”$HOME/.phpenv/bin:$PATH”
eval “$(phpenv init -)”

と追記して、

source ~/.bashrc

と叩いて読み込み直しして完了、だと思う。

◆php-build

brew install php-build

# php-buildのPATHを追加

$ vi ~/.bashrc
export PATH=/usr/local/bin:$PATH
# 設定したPATHの設定を有効にする
$ source ~/.bashrc

上記を入れて、その後php-buildから各バージョンのPHPを入れる。

php-build X.X.X ~/.phpenv/versions/X.X.X
mv (生成したlibphp5.soのパス) ~/.phpenv/versions/X.X.X

っていう感じで。

php-build –definitions
で出てくるリストは、
/usr/local/share/php-build/definitions
内に追記すれば自分で追加できる。
最新のものとか、ベータ版とか入れる時には自分でここに入れると良いかも。

で、最終的にいろいろやってインストールできたら、

phpenv versions

でインストールされているものが確認できて、

phpenv global X.X.X

でCLI側のPHPが切り替えできる。
CLI側で使用しているPHPのバージョンを調べるのは簡単で、

php -v

って叩けば出てきてくれる。

けど、apache側は上記では切り替えできないので、それ用のスクリプトを用意する。

~/.phpenv/libexec/rbenv-apache-version

#!/usr/bin/env bash

set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
  echo system
  exec rbenv-versions --bare
fi
RBENV_VERSION="$1"
RBENV_ON_FILE="${RBENV_ROOT}/versions"
APACHE_ROOT="/usr/local/Cellar/httpd/2.2.22"
APACHE_MODULE_PATH="${APACHE_ROOT}/libexec"
# Make sure the specified version is installed.
RBENV_PREFIX_PATH="${RBENV_ROOT}/versions/${RBENV_VERSION}"
if [ ! -d "$RBENV_PREFIX_PATH" ]; then
  echo "rbenv: version \`${RBENV_VERSION}' not installed" >&2
  exit 1
fi
PHP_MODULE_PATH="$RBENV_PREFIX_PATH/libphp5.so"
if [ ! -f "$PHP_MODULE_PATH" ]; then
  echo "apache module not found \'${PHP_MODULE_PATH}'" >&2
  exit 1
fi
if [ ! -d "$APACHE_MODULE_PATH" ]; then
  echo "Directory not found \'${APACHE_MODULE_PATH}'" >&2
  exit 1
fi
echo "copy ${PHP_MODULE_PATH} to ${APACHE_MODULE_PATH}"
cp "$PHP_MODULE_PATH" "$APACHE_MODULE_PATH"
echo "Restarting apache..."
sudo apachectl restart

上記ファイル生成後、

chmod 755 /Users/***/.phpenv/libexec/rbenv-apache-version

で実行権限をつけてやる。
上記が終われば、
phpenv apache-version X.X.X
でapache側のPHPが切り替えできる。
apacheの再起動がかかるのと、sudoするからパスワードを聞かれることがあるのはお忘れなく。

とりあえず、入れられること、切り替えができることまでは確認できたので
本当に入れたいバージョンやら、入れたいオプションやらを追求して
改めて開発環境が整うのは…いつだろw

  1. コメントはまだありません。

  1. 2013年 4月 3日