0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

phpenvで5.6と7.2の開発環境を準備する

Last updated at Posted at 2019-10-08

結果

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

関連

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?