【PHP】Fatal error: Call to undefined function imageftbbox()

TrueTypeフォント用のライブラリが存在しない

PHPでエラー「Fatal error: Call to undefined function imageftbbox()」が発生したときのメモ。

環境:PHP 5.6.4

エラーの原因:
imageftbbox関数の実行に必要なTrueTypeフォント操作及び、レンダリング用ライブラリが環境に存在していない。

解決方法:
「libfreetype6-dev」ライブラリをPHPの実行環境にインストールする。

インストール方法について、Linux系OSの場合はディストリビューションの種類など、PHPの実行環境ごとに異なる。

以下はdebian系をベースとしたDockerイメージからPHPの実行環境を作成する場合のDockerfileの例。

(libfreetype6-devをapt-getでインストール、gdコマンドでパスを設定)

FROM php:5.6-apache
ADD php.ini /usr/local/etc/php/php.ini

RUN echo "deb http://archive.debian.org/debian/ stretch main contrib non-free" > /etc/apt/sources.list && \
    echo "deb-src http://archive.debian.org/debian/ stretch main contrib non-free" >> /etc/apt/sources.list && \
    echo "Acquire::Check-Valid-Until false;" > /etc/apt/apt.conf

RUN apt-get update && \
    apt-get install -y \
        libpng-dev \
        libjpeg-dev \
        libxml2-dev \
        libfreetype6-dev

RUN docker-php-ext-configure \
    gd --with-jpeg-dir=/usr/include/ --with-freetype-dir=/usr/include/ && \
    docker-php-ext-install gd xmlrpc mysqli pdo_mysql

Follow me!