はじめに
phpenvでphp管理をしたいと思って手を出したはいいものの、いろいろ躓いたことがあったので、メモとして残しておきます。
追記:書いた手順とは別に思い通りにすることができたので一部書き直しました。
2020/03/06 追記:PHP7.4系のインストール対応
前提
OS:CentOS 7.5
anyenvのインストール
gitからもってきます。
$ git clone https://github.com/riywo/anyenv ~/.anyenv
パスを通します。
$ echo 'export PATH=$HOME/.anyenv/bin:$PATH' >> ~/.bash_profile
$ echo 'eval "$(anyenv init -)"' >> ~/.bash_profile
シェルのリフレッシュ
$ exec $SHELL -l
バージョンが新しくなり、anyenv install --init
を実行しないと使えないようになりました。
phpenv+php-buildのインストール
$ anyenv install phpenv
anyenvでインストールするとphp-buildも一緒にインストールしてくれます。
シェルのリフレッシュ
$ exec $SHELL -l
phpのインストールと設定
インストールする。
$ phpenv install 'バージョン'
設定する
$ phpenv global 'バージョン'
$ phpenv local 'バージョン'
エラー集
re2c
エラーメッセージ
WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
対処法
バージョンがどうのこうの言ってますが、私の場合ほかに必要なライブラリと一緒にre2cをインストールしたらメッセージは出なくなりました。
EPELリポジトリに要求バージョン以上のものがあるみたいなので、まずはEPELをインストールします。
$ yum install epel-release
$ yum install re2c
libxml2
エラーメッセージ
error: libxml2 not found. Please check your libxml2 installation.
対処法
$ yum install libxml2-devel
openssl
エラーメッセージ
error: Cannot find OpenSSL's <evp.h>
対処法
$ yum install openssl-devel
curl
エラーメッセージ
error: cURL version 7.15.5 or later is required to compile php with cURL support
対処法
$ yum install curl-devel
bzip2
エラーメッセージ
error: Please reinstall the BZip2 distribution
対処法
$ yum install bzip2-devel
libjpeg
エラーメッセージ
error: jpeglib.h not found.
対処法
$ yum install libjpeg-devel
libpng
エラーメッセージ
error: png.h not found.
対処法
$ yum install libpng-devel
libicu
エラーメッセージ
error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works.
$ yum install libicu-devel
gcc-c++
エラーメッセージ
error : C++ preprocessor "/lib/cpp" fails sanity check
対処法
$ yum install gcc-c++
readline
エラーメッセージ
error: Please reinstall readline - I cannot find readline.h
対処法
$ yum install readline-devel
libtidy
エラーメッセージ
error: Cannot find libtidy
対処法
$ yum install libtidy libtidy-devel
libxslt
エラーメッセージ
error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
対処法
$ yum install libxslt-devel
libzip
エラーメッセージ
error: Please reinstall the libzip distribution
対処法
$ yum install libzip-devel
めっちゃ詰まったところ
エラーメッセージ
error: system libzip must be upgraded to version >= 0.11
対処法
centos7系で標準リポジトリだとバージョンアップが古いみたいです。
Psychotic Ninjaというリポジトリに要求バージョン以上のものがあるのでそれを使います。
psychoticリポジトリをインストール
$ yum install http://packages.psychotic.ninja/7/base/x86_64/RPMS/psychotic-release-1.0.0-1.el7.psychotic.noarch.rpm
libzipの0.11以下が入っている場合削除し、その後psychoticからインストールしなおす。
$ yum remove libzip libzip-devel
$ yum --enablerepo=psychotic-plus install libzip libzip-devel
$ yum remove libzip libzip-devel
$ yum --enablerepo=remi,remi-php73 install libzip-devel
oniguruma
PHP7.4系をインストールしようとしたところ下記のエラーメッセージが表示されました。
$ yum install oniguruma oniguruma-devel
参考
yumリポジトリ追加リスト 完全版
psychoticリポジトリ
さいごに
最後のエラーにてこずりましたが、なんとかPHPのインストールに成功しました。
なんでPHPだけこんなにエラーが多いんですかね?(自分が使っている言語で一番インストールに時間がかかりました。)