結果
phpenvで5.6のインストールでopcacheが有効になっていたようで、5.6のビルトインサーバーを起動しブラウザでアクセスすると、segmentation faultが発生しました。
opcacheを無効化する方法を記事の最後に記載しました。
環境情報
- MacOS High Sierra 10.13.6
- zsh 5.7.1
- Homebrew 2.1.12
- phpenv v0.9.0-rc.1
手順
phpenvのインストール
・ Gitでクローン
git clone https://github.com/madumlao/phpenv.git ~/.phpenv
・ パスを通す(zsh)
vi ~/.zprofile
・ zshrcに追加
export PHPENV_ROOT="$HOME/.phpenv"
export PATH="$PHPENV_ROOT/bin:$PATH"
eval "$(phpenv init - zsh)"
※ bashの場合は、 eval "$(phpenv init -)"
で設定。
php-buildをインストール
・ Gitでクローン
git clone https://github.com/php-build/php-build.git ~/.phpenv/plugins/php-build
・ PostgreSQL用の設定をデフォルトに (オプション)
echo '--with-pgsql' >> ~/.phpenv/plugins/php-build/share/php-build/default_configure_options
echo '--with-pdo-pgsql' >> ~/.phpenv/plugins/php-build/share/php-build/default_configure_options
phpのインストール
・ brewで必要なライブラリをインストール
brew install re2c openssl bison libxml2 autoconf automake icu4c libjpeg libpng libmcrypt
・ インストールするバージョンを確認
phpenv install -l
・ 7.2のインストール (以下は、7.2.20)
phpenv install 7.2.20;
・ 5.6のインストール (以下は、5.6.40)
export CONFIGURE_OPTS="--disable-opcache"
phpenv install 5.6.40
unset CONFIGURE_OPTS
※ opcacheが有効になってしまい、5.6のビルトインサーバーを起動してブラウザでアクセスすると、segmentation faultで落ちたので、disableにしています。
※ opcacheは、iniファイルにzend_extensionで最終行に追加されるようなので、コメントアウトでも問題ないようです。
・ 5.6.40のphp.ini
vi /Users/kazumi_watanabe/.phpenv/versions/5.6.40/etc/php.ini