Help us understand the problem. What is going on with this article?

phpbrew でPHP7 をインストールする。

More than 1 year has passed since last update.

PHP 7のアプリケーション開発をするために、PHPをインストールしようとしたところ、以前はphpenvがhomebrewでインストールできたのですが、今では消えていました。
その代わりに、phpbrewが入っていたので、それを使ってインストール。

前提

  • macOS Sierra 10.12.4
  • homebrew はインストール済み
  • phpenvはインストールしてない

手順

$ brew tap homebrew/php
$ brew install phpbrew
$ phpbrew init

その後、利用してるシェルに合わせて、.bashrc などに下記の一行を追加。

 source /Users/hogehoge/.phpbrew/bashrc

その後、再度端末を開くか、シェルを起動し直しして、phpbrewが使えることを確認しましょう。

それが終わったら、現在インストール可能なPHPのバージョンをphpbrew known で取得し、実際に必要なバージョンをphpbrew install でインストールします。

$ phpbrew known
$ phpbrew install 7.0.18

という至って簡単なもの。のはずなんですが、最後のPHPのインストールで、次の2つの問題ではまりました。

インストールでハマったところ

BZip2 に必要なものがない

初回インストール時、下記のようなエラーが出ました。

checking if the location of ZLIB install directory is defined... no

checking whether to enable bc style precision math functions... yes

checking for BZip2 support... yes

checking for BZ2_bzerror in -lbz2... no

configure: error: bz2 module requires libbz2 >= 1.0.0

要するに、bzip2 ライブラリが無いというこなので、それをインストールする必要があります。
bzip2はもともとmacOSに入っているものなので、homebrewでは入れず、下記のように

$ xcode-select --install

その後、phpbrew install を再実行することでエラーが出なくなりました。

fatal error: 'openssl/evp.h' file not found

bzip2の問題の後、再度インストールを試したところ、次のエラーにが出ました。

/Users/hogehoge/.phpbrew/build/php-7.0.18/ext/openssl/openssl.c:44:10: fatal error: 'openssl/evp.h' file not found

#include <openssl/evp.h>

         ^

330 warnings and 1 error generated.

make: *** [ext/openssl/openssl.lo] Error 1

これも似たようなもので、エラーメッセージが示しているように、opensslのヘッダが見つからないという状態のため発生していました。
そこで、下記のようにopensslのヘッダファイルへのパスをphpbrew に渡すことで解決しました。

$ brew install openssl # Optional
$ phpbrew install 7.0.18 +default +openssl=$(brew --prefix openssl)

インストール完了!

$ phpbrew use php-7.0.18
$ php -v
PHP 7.0.18 (cli) (built: Apr 22 2017 23:17:46) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
$ phpbrew switch php-7.0.18
$ phpbrew list
* php-7.0.18

まだ使い始めたばかりではありますが、phpenvと少し違うところがありました。
以前にphpenvを利用した時はrbenvと共存させるために少し手間が必要だったのですが(phpenvとrbenvをMac共存させる - Qiita)、phpbrewだとそれが必要ありません。

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした