2014-02 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

2014-02-09 (日)

HomebrewのphpenvでPHPをインストールしたメモ [Homebrew][OSX][PHP]

Vagrant使ってたから、OSXでPHP使う必要なかっただけだから..(震え声)

そういうわけでphpenvでPHP環境を作ってみました。まずは基礎知識。


- phpenv
Rubyのrbenv、Perlのplenvに相当。複数バージョンのPHPをHOMEにインストー
ルし、切り替えて使うツール。というよりシステムを汚さないために使う感じ。

- pecl, pear
Rubyのgem、Perlのcpanmに相当。peclはCで書かれ、pearはPHPで書かれて
いる。PHPはCで書かれたライブラリ(要は*.so)を動的にロードできないた
め、このように分かれているそう。

- composer
Rubyのbundler、Perlのcartonに相当。アプリごとにライブラリを切り替え
ることが出来る。

Homebrewのphpenvをインストール


普通にbrewコマンドでインストールします。
(実際はbrew bundle[2014-01-25-1]でインストールしてます。)

$ brew install phpenv
==> Downloading https://github.com/CHH/phpenv/archive/01a2c1e25096f8ff10f2f781428a5d470e1ecaba.tar.gz
Already downloaded: /Library/Caches/Homebrew/phpenv-01a2c1e.tar.gz
==> /usr/local/Cellar/phpenv/01a2c1e/bin/phpenv-install.sh
==> Caveats
To finish installing phpenv:
 * Add ~/.phpenv/bin to your $PATH
 * Add "eval $(phpenv init -)" at the end of your ~/.bashrc
 * Restart your shell
==> Summary
�  /usr/local/Cellar/phpenv/01a2c1e: 6 files, 24K, built in 7 seconds



上の説明のとおり、~/.zshenvに以下を追加。

export PATH=$PATH:$HOME/.phpenv/bin
eval "$(phpenv init -)"


ここで一点注意。phpenvはrbenvを自前で持っているため、元々のrbenvの
パス(brewでインストールしていれば/usr/local/bin)を優先させる必要が
あります。そのため、上では$PATHの最後に追加しています。うーん。

https://github.com/CHH/phpenv#important-notes

php-buildをインストール


rbenvやplenvと同じように[2014-01-25-1]、pluginとしてインストールし
ます。

$ git clone git@github.com:CHH/php-build.git ~/.phpenv/plugins/php-build


cloneが終わるとインストール可能なバージョンを表示できます。

$ phpenv install -l


とりあえず最新の5.5.9をインストールしてみます。

$ CONFIGURE_OPTS="--with-pear" phpenv install 5.5.9
$ phpenv global 5.5.9 && phpenv rehash && rehash


CONFIGURE_OPTSに`--with-pear`を指定しているのは、pearがデフォルト無
効だからです。
~/.phpenv/plugins/php-build/share/php-build/default_configure_options

他のブログでは、default_configure_optionsの`--without-pear`を書き換
えているケースばかりでしたが、こうすれば書き換える必要はありません。

ruby-buildではRUBY_CONFIGURE_OPTSが使えたのに、php-buildでは
CONFIGURE_OPTSなのも注意です。PHP_CONFIGURE_OPTSは使えませんでした。

~/.phpenv/plugins/php-build/bin/php-buildによると
PHP_BUILD_CONFIGURE_OPTSも使えるようです(試してません)。

phpenvとphp-buildを作ったCHH氏はCONFIGURE_OPTSをどうぞと言っている
ので、今回はそれに従いました。

How to use CONFIGURE_OPTS in php-build - Asciinema

実際configureにどんなオプションが渡されたかは、
/var/tmp/php-build/source/5.5.9/config.niceを見ればよいと思います。

とにかくインストール出来ました。

$ php --version
PHP 5.5.9 (cli) (built: Feb 9 2014 02:22:41)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans


peclで何かインストール


とりあえずimagickをインストールしました。予めimagemagickはbrewでイ
ンストールしてあります。

$ pecl install imagick
$ echo extension=imagick.so > ~/.phpenv/versions/5.5.9/etc/conf.d/imagick.ini


pecl helpでヘルプを見られます。list-allの結果少ないですね。Rubyと違っ
て適宜channelを追加するようです。面倒くさい。。

pearで何かインストール


しようと思いましたが、面倒になったので止めました。
composerは今度試します。


Thanks!
phpenv と php-build で複数の PHP を Mac のローカルで管理する - もじばけおなう
PHP拡張でPEARとPECLの2グループがあるのはなぜですか? Perlな.. - 人力検索はてな
Mountain LionでPHPのビルド - ぱせらんメモ

2014-02 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

最終更新時間: 2020-01-20 18:32 JST

検索


最近の話題
- 2020-01-12
  『私はどのようにしてLinuxカーネルを学んだか』を読んだ
- 2019-12-20
  circleci/orb-tools を使った Orb のリリースフローが良く出来ていたので紹介する
- 2019-12-17
  Heroku 上での bundler version の決められ方
- 2019-11-17
  3ヶ月間、総務省の家計調査に協力していた
- 2019-10-28
  『Clean Architecture』を読んだ
- 2019-10-10
  terraform-provider-healthchecksio を Terraform Plugin SDK に移行した
- 2019-09-20
  本番環境で heroku run する時の tips
最近追記された記事
- 2019-02-11-1 (119日前)
- 2019-02-03-1 (119日前)
- 2019-01-28-1 (119日前)
- 2019-02-03-1 (161日前)
- 2018-11-28-1 (175日前)
- 2019-05-07-1 (255日前)
- 2018-04-30-1 (270日前)
- 2018-01-28-1 (282日前)
- 2019-02-11-1 (342日前)
- 2019-01-20-1 (360日前)
カテゴリ
- Anthy (3)
- Apache (11)
- Apple (1)
- ATOK (4)
- au (3)
- AWS (23)
- Bazaar (1)
- Berkshelf (2)
- BigQuery (1)
- BitBar (4)
- Book (108)
- Boxen (2)
- Bugsnag (1)
- capistrano (4)
- chalow (57)
- ChatWork (1)
- Chef (17)
- Chrome (3)
- Chromecast (1)
- CircleCI (11)
- clang (26)
- Comics (2)
- Cooking (10)
- cvs (15)
- cygwin (12)
- D3.js (1)
- Debian (55)
- Docker (4)
- E-mail (9)
- elasticsearch (4)
- Emacs (223)
- Emacs講座 (10)
- English (4)
- feedforce (7)
- fetchmail (3)
- Firefox (20)
- Fluentd (4)
- ftp (2)
- Game (21)
- GCP (1)
- Gem (5)
- Git (9)
- GitHub (23)
- golang (11)
- Google (1)
- gpg (4)
- GrowthForecast (7)
- Health (6)
- Heroku (21)
- Homebrew (10)
- HTML (6)
- iBook (1)
- iPad (1)
- iPhone (17)
- IRC (1)
- Jenkins (8)
- JS (1)
- Karabiner (1)
- KeySnail (3)
- Kibana (1)
- Kindle (1)
- Kubernetes (2)
- Langrich (7)
- LDAP (6)
- Life (24)
- Linux (7)
- Mackerel (1)
- macOS (1)
- Mew (18)
- MongoDB (1)
- Mozilla (19)
- Music (1)
- MySQL (1)
- NAS (4)
- nginx (6)
- NHK (1)
- Node (1)
- ntp (4)
- OOP (2)
- OpenID (2)
- openssl (1)
- Opera (2)
- OSX (41)
- Perl (14)
- PHP (19)
- PostgreSQL (1)
- procmail (4)
- Programing (3)
- Puppet (1)
- Python (2)
- Rails (13)
- Rake (2)
- RaspberryPi (2)
- Redash (1)
- RedHat (29)
- Redmine (3)
- RSpec (2)
- Ruby (53)
- samba (3)
- screen (7)
- sed (5)
- serverspec (6)
- sh (8)
- Slack (2)
- Solaris9 (22)
- Spring (2)
- ssh (4)
- StatusNet (21)
- svn (12)
- Swift (1)
- Tablet (1)
- tdiary (3)
- Terraform (2)
- Twitter (15)
- Twmode (6)
- Ubuntu (5)
- UNIX (102)
- vagrant (8)
- Video (21)
- vim (1)
- Wercker (9)
- Windows (29)
- Wine (3)
- XML (11)
- XP (1)
- zsh (26)
- インストールメモ (33)
- クイックシェイプ (12)
- ネタ (15)
- 勉強会 (17)
- 携帯 (6)
- 正規表現 (4)
過去ログ
2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
2001 : 01 02 03 04 05 06 07 08 09 10 11 12