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