tmegos blog

Web developer

PHP4.4.9でopenssl1.0.0以上が入らない

PHP4系でしか動かないプロジェクトがあったので、PHP4.4.9をビルドしました。
SSLの動作検証も必要だったので、OpenSSLも追加しました。
しかし、makeした時に下のようなopenssl.cでエラーが大量に出てOpenSSLを有効にすることができません。

/usr/local/src/php-4.4.9/ext/openssl/openssl.c:1955: error: 'struct php_x509_request' has no member named 'priv_key_encrypt'
/usr/local/src/php-4.4.9/ext/openssl/openssl.c: In function 'zif_openssl_pkey_export':
/usr/local/src/php-4.4.9/ext/openssl/openssl.c:2006: error: 'struct php_x509_request' has no member named 'priv_key_encrypt'
make: *** [openssl.lo] Error


調べてみると、PHP4.4.9とOpenSSLが1.0.0以上だと、OpenSSLが入らないようです。

X Info Line - OpenSSL module for PHP 4.4.9 and OpenSSL version 1.0.0 and greater

親切なことにopenssl.cのパッチが作成されていたので、無事にビルドすることができました。

以下手順です。

 

  1. opensslのディレクトリで、phpizeを実行(私の環境では実行しなくてもよかったです)
    phpizeは、PHPを解凍した時の/scripts/phpizeにあります。
    #cd /ext/openssl
    #../../scripts/phpize
  2. もとのopenssl.cを移動します。
    #mv openssl.c openssl.c.bk

  3. パッチをダウンロードします。
    #wget http://www.xinfoline.com/wp-content/files/openssl.c

  4. openssl.cの入れ替えが終わったので、通常通りmake→installです。
    #cd ../../  ソースディレクトリの上まで戻る
    #make
    #make install

無事インストールまで終わり、OpenSSLを有効にすることができました!

f:id:tmegos:20160507094447p:plain