CentOS7.5にanyenvとphpenvでPHP7.2を入れようとした際のエラーと対処まとめ

公開日: : Linux, PHP, Record , ,

Pocket

新しいVPSにanyenvからphpenvを入れようとしたら色々なエラーが出たのでそれぞれの対処メモを残しておきます。phpビルドの話なのでanyenvはあんまり関係ありません。

yum installするパッケージまとめ

以下の各項目で必要なパッケージのまとめです。

色々なエラー

tar (child): bzip2: exec 不能: そのようなファイルやディレクトリはありません

./buildconf: そのようなファイルやディレクトリはありません

上のbzip2を入れてphpenv installをやり直したらなんか謎にこんなエラーが出て止まるようになりました

詳細はよくわからないですがキャッシュ的な何かの問題らしく、/tmp/php-build を削除してやり直したら出なくなりました。

参考:./buildconf: No such file or directory · Issue #80 · phpenv/phpenv

configure: WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: none, min: 204, excluded: ).

configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.

configure: error: xml2-config not found. Please check your libxml2 installation.

configure: WARNING: unrecognized options: –with-mcrypt

phpenvが7.2に無いビルドオプションを指定しているというだけで実害は無いので無視しても良さそう。
気になる場合は
.anyenv/envs/phpenv/plugins/php-build/share/php-build/default_configure_options
から–with-mcryptを削除。

configure: error: Cannot find OpenSSL’s <evp.h>

configure: error: Please reinstall the BZip2 distribution

configure: error: cURL version 7.10.5 or later is required to compile php with cURL support

configure: error: jpeglib.h not found.

configure: error: png.h not found.

configure: error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works.

configure: error: Please reinstall readline – I cannot find readline.h

configure: error: Cannot find libtidy

configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution

configure: WARNING: Use of bundled libzip is deprecated and will be removed.

全文:

libzip-develを入れて前述のdefault_configure_optionsに–with-libzipを追加したところ
configure: error: system libzip must be upgraded to version >= 0.11
とCentOSリポジトリの最新なのにlibzipが古すぎると言われ、めんどくさそうなので放置しました。WARNINGだし…。

WARNINGしかない、もしくはWARNINGすら無くビルドログも空なのにBUILD ERRORになる

phpenv install -v 7.2.10 でmakeの出力を確認したところ、VPSのメモリが少ないためメモリ不足でエラーになっていました。

ファイルシステム上にスワップファイルを作成してメモリ不足を補います。とりあえず1Gのスワップファイルを作成します。
参考:How To Add Swap on CentOS 7 | DigitalOcean

確認

これでビルド通りました!

ちなみに作成したスワップファイルを削除する場合は

でとするようです。(fstabを記入した場合はそれも消す)

関連記事

no image

CentOS 6.5にPHP 5.5をインストール

CentOS 6.5の標準リポジトリだとPHPが5.3なので、5.5をインストールする方法を調べまし

記事を読む

no image

DockerでRailsとMySQLを使った開発用プロジェクトを作成

Dockerの勉強を兼ねてruby:alpineベースのRails用イメージとMySQLイメージを使

記事を読む

no image

[Rails] deviseのサインアップを無効にする

一瞬で終わる簡単な話だけど一応メモ。 シチュエーション ユーザー登録の無いサイトだが運営者のデー

記事を読む

no image

[WordPress]dbDelta()でテーブルが作成できない

WordPressのプラグインの勉強をしていて、テーブルを作成するためdbDelta()を使ったら、

記事を読む

no image

Djangoでエラー「(2019, “Can’t initialize character set utf8mb4 (path: /usr/share/mysql/charsets/)”)」

twitter関連で絵文字も格納するためDBの文字コードをutf8mb4にしたプロジェクトを久々にい

記事を読む

no image

CentOS6.9を7.3にアップグレード

CentOS6系から7系へのアップグレードはアップグレードツールが存在するのですが、このツールは6.

記事を読む

no image

JavaでBase32のデコーダーを実装

今書いてるプログラムでBase32エンコードされた文字列をデコードをする必要があったんですが、Jav

記事を読む

no image

google-code-prettifyテスト

google-code-prettifyテスト

記事を読む

no image

[PHP]メンバ変数に可変関数を入れて呼び出せない

メンバ変数func_nameに関数名を入れた際、$ClassName->func_name()みたい

記事を読む

no image

JavascriptのDateで月が1つズレる

とかやった時になんか現在月より1つズレると思ったら、Dateクラスのmonthは0~11なのでし

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP ↑