CentOS 6.3に「–with-openssl」オプション付きでPHP 5.1/5.2系をインストールしようとするとエラー → 解決

訳あって、CentOS 6.3にPHP 5.1.xを--with-opensslオプション付きでインストールしなければならなくなったのですが、かなりハマったのでメモ。

インストール前の環境は以下のとおり。

  • CentOS release 6.3 (Final)
  • yum updateyum groupinstall "Base" "Development tools"は実施済み

普通にインストールしようとするとコンパイルエラー

PHP 5.1.6をインストールしようと、以下の様な感じでトライ。makeコマンド実行時にコンパイルエラーが発生してしまいました。

ちょっと調べたところ、以下のページに同様のエラー報告を発見。

OpenSSLのバージョンが1.0.0の場合に同様のエラーが発生している模様。

当方で利用しているCentOS上のOpenSSLのバージョンも1.0.0だったので、おそらくOpenSSLの特定バージョンとPHPの相性問題でコンパイルエラーが発生しているのではないかと予想しました。

コンパイルエラーが発生するPHPのバージョン

まず、PHPの複数バージョンをコンパイルしながら、エラーが発生するかどうかを調査。

その結果、

  • PHP 5.1.0 〜 5.1.6で同様のコンパイルエラーが発生
  • PHP 5.2.0 〜 5.2.10で同様のコンパイルエラーが発生
  • PHP 5.2.11, 5.2.12では問題なくコンパイル完了

という感じに。

5.1.x系だけではなく、一部の5.2.x系でも同様の問題が発生するみたいです。

解決方法

OpenSSLのバージョンを一つ古いものに戻せば、きっとコンパイルが通るんじゃないかと予想。

なので、yumコマンドですでにインストールされているOpenSSL 1.0.0を残したまま、新しくバージョン0.9.8のソースコードをダウンロードしてインストールしてみることにしました。

以下、OpenSSL 0.9.8のインストール手順です。

次に気を取り直してPHPのインストール。 --with-opensslオプションに先ほどインストールしたOpenSSLのインストール先パスを設定します。以下、インストール手順です。

これでPHPをなんとかインストールすることができました。
めでたしめでたし。

まとめ

新しいOSにすこし古いソフトウェアをインストールしようとしたらうまくいかなかった、というパターンですね。

「どうしてもそのバージョンじゃないと動かない」という状況だったので、なんとかインストールしようと思って、いろいろ試してみたという感じでした。

誰かのお役に立てばうれしいです。
それではー。