PHP 7.4のビルド

PHPを7.4に上げたらビルドの勝手が変わってしまって戸惑ったので、メモ。

環境

  • FreeBSD 12.1

ビルド

コンフィグオプション

次のように指定した。

./configure \
 --with-apxs2=/usr/local/sbin/apxs \
 --enable-shared \
 --enable-mbstring \
 --enable-gd \
 --with-zip \
 --with-jpeg \
 --with-freetype \
 --with-curl \
 --with-mysqli \
 --with-pdo-mysql \
 --with-zlib-dir=/usr \
 --with-openssl 

オプションの指定方法が、今まで –enable だったものが –with に変更されたものがいくつかあり、configureのヘルプを参照しながら置き換えた。

しかし、これだけで実行するとOpenSSLおよびGD関係のチェックでコンパイルエラーが出てconfigureが失敗する。オプションに合わせて環境変数を設定する必要があるらしい。

環境変数

次のように設定。OpenSSLはシステムデフォルトのものを使用。

 export OPENSSL_CFLAGS=-I/usr/include/openssl
 export OPENSSL_LIBS=-L/usr/lib
 export JPEG_CFLAGS=-I/usr/local/lib
 export JPEG_LIBS=-L/usr/local/lib
 export FREETYPE2_CFLAGS=-L/usr/local/include/freetype2
 export FREETYPE2_LIBS=-L/usr/local/lib
 export LIBXML_CFLAGS=-I/usr/local/include/libxml2
 export LIBXML_LIBS=-L/usr/local/lib
 export CFLAGS='-I/usr/local/lib -I/usr/local/include/freetype2 -I/usr/local/include/libxml2'
 export LDFLAGS=-L/usr/local/lib
 export LIBS='-lssl -lcrypto -ljpeg -lfreetype -lxml2' 

–with オプションに合わせて XXX_CFLAGS と XXX_LIBS を設定するだけでなく、CFLAGSやLDFLAGSまで設定してやらないといけないのが面倒だった。オプションを増やすたびに、ここも設定し直してやる必要あり。

PHP 7.3まではこんな設定をしなくても普通にビルドできたのにね。

タイトルとURLをコピーしました