LoginSignup
14
15

More than 3 years have passed since last update.

anyenv+phpenv+php-buildでphp管理

Last updated at Posted at 2019-01-25

はじめに

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だけこんなにエラーが多いんですかね?(自分が使っている言語で一番インストールに時間がかかりました。)

14
15
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
14
15