Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
9
Help us understand the problem. What is going on with this article?
@sayuprc

anyenv+phpenv+php-buildでphp管理

はじめに

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

9
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
sayuprc
PHPでwebアプリ作ってます。 いろいろやりたいことが多い

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
9
Help us understand the problem. What is going on with this article?