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
コメントはまだありません。