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まではこんな設定をしなくても普通にビルドできたのにね。