Mac に phpbrew で PHP7 をインストールした時のメモです。私の環境ではマニュアルの通りにやってもインストールできなかったので、遭遇した問題と、その解決方法も書いておきます。
動作確認環境
- OS X El Capitan
- phpbrew 1.21.6
目次
phpbrew をインストールする
公式ドキュメント に従い、phpbrew をインストールしておきます。このブログで以前書いた記事も参考にどうぞ
-
MacでのPHP開発はphpbrewが非常に良い
Mac で PHP のバージョンを複数管理する必要が出てきたので phpbrew をインストールしました。この手のツール ...
続きを見る
PHP7 をインストールする
以下のコマンドで PHP7 をインストールします。MySQL や PHP-FPM も利用するので variants も指定します。
$ phpbrew install 7.0.6 +default +mysql +fpm +opcache +intl +iconv
エラー発生
tail -F ~/.phpbrew/build/php-7.0.6/build.log
で configure の結果をぼんやり眺めていると、途中でエラーが出て止まってしまいました。
エラー内容は以下の通り。なにこれ。
configure: error: invalid readline installation detected. Try --with-libedit instead.
ググってみても、同じ問題に遭遇している人が見当たりません。Homebrew を最新版にしたり、readline や libedit、その他インストールされているパッケージを全部最新版に更新しても効果なし。ちなみに 5.6 でも同じエラーで止まりました。
オプションを設定してみたら動いた
ふとエラーメッセージをよく見てみると、Try --with-libedit instead.
の文字。with なんとかって configure オプションっぽいので、phpbrew で configure オプションを設定する方法を調べました。
phpbrew/README.md -Extra Configure Options-
ここを見ながら以下のように --with-libedit
オプションを指定してみると、Configure が通り、ビルドに成功しました。
$ phpbrew install 7.0.6 +default +mysql +pdo +fpm +opcache +intl +iconv -- --with-libedit
PHP-FPM を設定
あとやったことは基本的には以前書いた記事と同じです。
-
MacでのPHP開発はphpbrewが非常に良い
Mac で PHP のバージョンを複数管理する必要が出てきたので phpbrew をインストールしました。この手のツール ...
続きを見る
PHP 拡張いくつか入れて、Nginx, PHP-FPM 設定して。PHP のバージョンを 5.6 から 7 に置き換えれば大丈夫です。PHP 拡張は PHP7 に対応していないものがあるみたいなので配布元を確認しましょう。
なお PHP-FPM の設定ファイルの場所が ~/.phpbrew/php/php-7.0.6/etc/php-fpm.d
に変わってたので、そこだけ書いておきます。以下のようにデフォルトのファイルのバックアップを取っておいて、内容を書き換えました。
$ cd ~/.phpbrew/php/php-7.0.6/etc/php-fpm.d
$ cp www.conf.default www.conf
$ vi www.conf
www.conf の変更点は以下のとおり。
- 実行ユーザはログインユーザにしたいので、user, group の設定をコメントアウト
- unix ソケットの PATH は nginx に書いたものと同じ
- 子プロセスは 1 個
- メモリリーク対策に pm.max_requests を設定
- catch_workers_output = yes を設定し、php.ini で指定した error_log にエラーが出力されるように
;user = nobody
;group = nobody
listen = /Users/karasawa/.phpbrew/php/php-7.0.6/var/run/php-fpm.sock
listen.mode = 0664
listen.allowed_clients = 127.0.0.1
pm = static
pm.max_children = 1
pm.max_requests = 500
catch_workers_output = yes
まとめ
Mac に PHP7 をインストールする方法を紹介しました。半年前に PHP5.6 をインストールしたときはこんなエラー出なかったのですが、何か変わったんでしょうか。マニュアルにはこのエラーと解決方法は載っていなかったので、特定の環境でしか発生しないかもしれません。ちなみに PHP5.6.21 のインストールでも同じエラーで止まりました。同様の現象に悩んでいる方の参考になれば。