My開発メモ

DockerのphpにGDモジュールを追加する(Ubuntu 24.04)

DockerでLAMP環境を作成し、そこに WordPress6.8.2をインストールして Webサイトを作成していた。

“設定” — “一般” で、サイトアイコンを作成できるので、(そういう機能ができたのか)と感動し、さっそく適当な画像をアップロードした。

ところが、”画像の切り抜き” でエラーがでた。

ネットで調べてみると、どうやら GDライブラリ がPHPの拡張モジュールとして組込まれていないのが原因らしい。

参考サイトを参考にして、Dockerfile を以下のようにして再ビルドしたら、GDライブラリの組込みができた。

php.Dockerfile
FROM php:8.4-apache

# 必要なツール類
RUN apt-get update
RUN apt-get -y install wget \
                       unzip \
                       vim  \
                       less \
                       tzdata \
                       libpng-dev \
                       libjpeg-dev \
                       libfreetype-dev 

RUN docker-php-ext-configure gd --with-freetype --with-jpeg 
RUN docker-php-ext-install mysqli pdo pdo_mysql gd

COPY ./conf.php/php.ini /usr/local/etc/php/

RUN a2enmod rewrite

RUN apt-get clean

RUN echo "alias ll='ls -lF'" >> /root/.bashrc

–with-freetype と –with-jpeg の2つを指定して、–with-png を指定していないのは、–with-png を指定したらエラーがでたからである。

このあたりは、参考サイトの指定どおりにおこなっている。
なぜそうなのかについては調べていない。

サイトの中には sudo apt install php-gd を実行しろとか、php8.1-gd などとphpのバージョンを指定したほうがいいとか、そういう記述もみかけたが、実行してみたところ、うまくいかなかった。

やはり、phpの拡張モジュールとして組込むのが正解だろうと思う。

参考サイト

docker環境でPHPのGDを有効にして、PHPで画像にテキストを追加する

カテゴリー: Docker, memo, php, wordpress

タグ: Docker, Dockerfile, gd, gdモジュール, php, php8.4, wordpress

カウント: 20