macにphpenv,php-build,apacheで開発環境を構築したのでメモ
macの開発環境をmacportからhomebrewに変更したので以下その作業ログ
macのバージョンは osx 10.8.2
apache のinstall
$ brew tap Homebrew/dupes
Cloning into '/usr/local/Library/Taps/homebrew-dupes'...
remote: Counting objects: 856, done.
remote: Compressing objects: 100% (366/366), done.
remote: Total 856 (delta 537), reused 797 (delta 490)
Receiving objects: 100% (856/856), 126.70 KiB | 110 KiB/s, done.
Resolving deltas: 100% (537/537), done.
Tapped 41 formula
$ brew install httpd
Warning: Your Xcode (4.6) is outdated
Please install Xcode 4.6.1.
Warning: It appears you have MacPorts or Fink installed.
Software installed with other package managers causes known problems for
Homebrew. If a formula fails to build, uninstall MacPorts/Fink and try again.
==> Downloading http://www.apache.org/dist/httpd/httpd-2.2.23.tar.bz2
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/httpd/2.2.23 --mandir=/usr/local/Cellar/httpd/2.2.23/share/man --localstatedir=/usr/local/var/apache2 --sysconfdir=/usr/lo
==> make
==> make install
==> Caveats
To have launchd start httpd at login:
ln -sfv /usr/local/opt/httpd/*.plist ~/Library/LaunchAgents
Then to load httpd now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.httpd.plist
Warning: /usr/local/sbin is not in your PATH
You can amend this by altering your ~/.bashrc file
==> Summary
🍺 /usr/local/Cellar/httpd/2.2.23: 1316 files, 21M, built in 9.3 minutes
apacheの起動/停止/再起動
sudo apachectl start
sudo apachectl stop
sudo apachectl restart
httpd.confの編集
$ vim /usr/local/etc/apache2/httpd.conf
document root の変更
.htaccess の許可
vim /usr/local/etc/apache2/conf.d/php.conf ServerName localhost:80 AddType application/x-httpd-php .php DirectoryIndex index.html index.php
path の編集
$ /Users/box406/.zshrc
export PATH=/opt/local/bin:/opt/local/sbin:/opt/local/lib/postgresql83/bin:$PATH
export MANPATH=/opt/local/man:$MANPATH
### Added by the Heroku Toolbelt
export PATH="/usr/local/heroku/bin:$PATH"
phpenv のinstall
$ git clone https://github.com/CHH/phpenv.git
$ cd phpenv/bin
$ sh phpenv-install.sh
Installing phpenv in /Users/box406/.phpenv
remote: Counting objects: 1562, done.
remote: Compressing objects: 100% (658/658), done.
remote: Total 1562 (delta 1006), reused 1404 (delta 872)
Receiving objects: 100% (1562/1562), 223.84 KiB | 92 KiB/s, done.
Resolving deltas: 100% (1006/1006), done.
Success.
export PATH="/Users/box406/.phpenv/bin:$PATH"
eval "$(phpenv init -)"
Add above line at the end of your ~/.bashrc and restart your shell to use phpenv.
.zshrc に設定を追加
$ vim /Users/box406/.zshrc
export PATH="/Users/box406/.phpenv/bin:$PATH"
eval "$(phpenv init -)"
.zshrc を反映
$ source ~/.zshrc
php-build のinstall
$ git clone https://github.com/CHH/php-build.git
$ cd php-build/
$ sh install.sh
Installing php-build in /usr/local
-n - Creating Directories...
Done.
-n - Copying files...
Done.
php のintall
install できるバージョンの確認
$ php-build --definitions
5.2.17
5.3.10
5.3.11
5.3.11RC1
5.3.11RC2
5.3.12
5.3.13
5.3.14
5.3.15
5.3.16
5.3.17
5.3.18
5.3.19
5.3.19RC1
5.3.2
5.3.20
5.3.20RC1
5.3.21
5.3.22
5.3.23
5.3.3
5.3.6
5.3.8
5.3.9
5.3.9RC3
5.3.9RC4
5.3snapshot
5.4.0
5.4.0RC1
5.4.0RC2
5.4.0RC3
5.4.0RC4
5.4.0RC5
5.4.0RC6
5.4.0RC7
5.4.0RC8
5.4.0alpha3
5.4.0beta1
5.4.0beta2
5.4.1
5.4.10
5.4.10RC1
5.4.11
5.4.12
5.4.13
5.4.1RC1
5.4.1RC2
5.4.2
5.4.3
5.4.4
5.4.5
5.4.6
5.4.7
5.4.8
5.4.9
5.4.9RC1
5.4snapshot
5.5.0alpha1
5.5.0alpha2
5.5.0alpha3
5.5.0alpha4
5.5.0alpha5
5.5.0alpha6
5.5.0beta1
5.5snapshot
php 5.3.20 のinstall
php-buildはapacheのモジュールを生成しないので以下を追加/削除
$ sudo vim /usr/local/share/php-build/default_configure_options -- --enable-fpm ++ --with-apxs2=/usr/local/sbin/apxs
install
$ php-build 5.3.20 ~/.phpenv/versions/5.3.20 [Info]: Loaded apc Plugin. [Info]: Loaded pyrus Plugin. [Info]: Loaded xdebug Plugin. [Info]: Loaded xhprof Plugin. [Info]: php.ini-production gets used as php.ini [Info]: Building 5.3.20 into /Users/box406/.phpenv/versions/5.3.20 [Downloading]: http://php.net/distributions/php-5.3.20.tar.bz2 [Preparing]: /var/tmp/php-build/source/5.3.20 ----------------- | BUILD ERROR | ----------------- Here are the last 10 lines from the log: ----------------------------------------- configure: warning: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers. configure: error: jpeglib.h not found. ----------------------------------------- The full Log is available at '/tmp/php-build.5.3.20.20130401134148.log'. [Warn]: Aborting build.
errorが表示されたので必要なライブラリを追加
brew install re2c brew install jpeg brew install libpng brew install libmcrypt brew install libiconv
「_php_iconv_string in iconv.o」とかが一杯でた場合の対処方法
$ cd /var/tmp/php-build/source/[version]/ext/iconv/ $ cp iconv.c iconv.c.back $ vim iconv.c iconv_open を libiconv_open に変更 iconv_close を libiconv_close に変更 :%s/iconv_open/libiconv_open/g :%s/iconv_close/libiconv_close/g
モジョールの退避
mv /usr/local/Cellar/httpd/2.2.23/libexec/libphp5.so ~/.phpenv/versions/5.3.20
同じ要領でphp 5.4のinstallを行う
phpenv でバージョンの切換え
現在のバージョンを確認
$ phpenv versions
* system
5.3.20
5.4.13
5.4.13に切り替える
$ phpenv global 5.4.13
バージョンが5.4.13に変わっているか確認
$ php -v
PHP 5.4.13 (cli) (built: Apr 1 2013 17:39:20)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans
apache のモージョルの切換え
本当は「phpenv-apache-version」を使いたいがsoファイルが「/usr/local/opt/httpd/libexec」にコピーされてしまうのでとりあえず手動でコピする
退避しているsoファイルを以下のコマンドでコピーする
php 5.4.13
cp .phpenv/versions/5.4.13/libphp5.so /usr/local/Cellar/httpd/2.2.23/libexec
php 5.3.20
cp .phpenv/versions/5.3.20/libphp5.so /usr/local/Cellar/httpd/2.2.23/libexec
これでとりあえずapacheと連携して動作する環境ができたと思います
phpinfo();でバージョンが切り替わってるいるか確認を行って下さい