CentOS Stream 8にLibGD2.3.3をソースインストール
篠原 隆司
アフィリエイト広告を利用しています
このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です
覚書です。
ところどころ省いています。
実践環境で使う場合はご注意ください。
注意
PHP8.0.11 と LibGD2.3.3 の組合せでは、PHPの configure は通りますが、make で次のようなエラーが発生します。
In file included from /usr/local/src/php-8.0.11-mysqlc-mysqlnd/php-8.0.11/main/php.h:439,
from /usr/local/src/php-8.0.11-mysqlc-mysqlnd/php-8.0.11/ext/gd/gd.c:28:
/usr/local/src/php-8.0.11-mysqlc-mysqlnd/php-8.0.11/ext/gd/gd.c: In function ‘zm_startup_gd’:
/usr/local/src/php-8.0.11-mysqlc-mysqlnd/php-8.0.11/ext/gd/gd.c:353:48: error: ‘GD_FLIP_HORIZONTAL’ undeclared (first use in this function); did you mean ‘GD_AFFINE_SHEAR_HORIZONTAL ’?
REGISTER_LONG_CONSTANT("IMG_FLIP_HORIZONTAL", GD_FLIP_HORIZONTAL, CONST_CS | CONST_PERSISTENT);
今回 PHP8.0.11 で発覚しましたが、 PHP8.0.11 周辺のバージョンは同様かなと思います。
解決方法は、LibGD2.3.3 ではなく LibGD 2.3.2 を使うことです。
LibGD2.3.2をCentOS Stream 8にソースインストール
ということで、ここ以降は読まずに▲のリンク先にお進みください。
目的
PHP8.0.11をCentOS Stream 8にインストールしようとしたところ configure で次のエラーが発生しました。
checking whether to enable JIS-mapped Japanese font support in GD... no
checking for gdlib >= 2.1.0... no
configure: error: Package requirements (gdlib >= 2.1.0) were not met:
Package 'gdlib', required by 'virtual:world', not found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
PHP7.4.0 からLibGDは同梱されなくなりました。
ということでLibGDをインストールすることにします。
ちなみにテストサーバ用途の複数バージョン同居環境の場合、下手にdnfするよりソースからバージョン指定でインストールしておいたほうが将来的にメリットがあります。
特徴
- ソースコードからのインストール
- 複数バージョンの共存
特定バージョンでの開発や動作確認など開発環境での用途を目的としています。
環境
実施日 | 2021-09-25 |
サーバ | さくらのVPS 2G |
OS | CentOS Stream 8 |
cat /etc/redhat-release
CentOS Stream release 8
事前準備
ダウンロードURLの確認
Githubから入手します。
https://github.com/libgd/libgd/tags
2021-09-25時点では「2.3.3」が最新のようですのでこちらをインストールしていきます。
https://github.com/libgd/libgd/releases/tag/gd-2.3.3
こちらのページの一番下「Source code (tar.gz)」がお目当てです。
URLを控えておきます。
https://github.com/libgd/libgd/archive/refs/tags/gd-2.3.3.tar.gz
インストール
LIBGD_VERSION=2.3.3
ls -la /usr/local/src
ls -la /usr/local/lib
mkdir /usr/local/src/gd-$LIBGD_VERSION
cd /usr/local/src/gd-$LIBGD_VERSION
wget https://github.com/libgd/libgd/releases/download/gd-$LIBGD_VERSION/libgd-$LIBGD_VERSION.tar.gz
tar xvzf libgd-$LIBGD_VERSION.tar.gz
cd libgd-$LIBGD_VERSION
./configure --prefix=/usr/local/lib/libgd-$LIBGD_VERSION
configure の最後のほうに▼の表示が出てきます。
** Configuration summary for libgd 2.3.3:
Support for gd/gd2 images: no
Support for Zlib: yes
Support for PNG library: no
Support for JPEG library: yes
Support for WebP library: no
Support for HEIF library: no
Support for AVIF library: no
Support for TIFF library: no
Support for Freetype 2.x library: no
Support for Fontconfig library: no
Support for Xpm library: no
Support for liq library: no
Support for complex text: no
Support for pthreads: yes
「no」が付いてるところはサポートされないので、このままでは PNG も使えないことになります。
PHPのGDにはPNGサポートは必須です。
他にも、WebPとかも欲しいところです。
# 必要なものだけでOK
dnf install libpng-devel
dnf install libwebp-devel
dnf install libXpm-devel
dnf install freetype-devel
# 追加したのでもう一度
./configure --prefix=/usr/local/lib/libgd-$LIBGD_VERSION
次のようになりました。
** Configuration summary for libgd 2.3.3:
Support for gd/gd2 images: no
Support for Zlib: yes
Support for PNG library: yes
Support for JPEG library: yes
Support for WebP library: yes
Support for HEIF library: no
Support for AVIF library: no
Support for TIFF library: no
Support for Freetype 2.x library: yes
Support for Fontconfig library: no
Support for Xpm library: yes
Support for liq library: no
Support for complex text: no
Support for pthreads: yes
make
make install
PHPのconfigureの前に
PHPのconfigureエラーで次のように出ていると思いますが、ここに書かれているとおり PKG_CONFIG_PATH の設定が必要です。
checking whether to enable JIS-mapped Japanese font support in GD... no
checking for gdlib >= 2.1.0... no
configure: error: Package requirements (gdlib >= 2.1.0) were not met:
Package 'gdlib', required by 'virtual:world', not found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
下記を実行してから、PHPのconfigureを再開します。
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/libgd-2.3.3/lib/pkgconfig"