Amazon Linux 2 に amazon-linux-extras を使用して PHP7.4 をインストールしたところ、以下のエラーが発生しました。
staging.ERROR: Call to undefined function Intervention\Image\Gd\imagecreatefromjpeg() at /var/www/XXX/vendor/intervention/image/src/Intervention/Image/Gd/Decoder.php:38)
staging.ERROR: Call to undefined function Intervention\Image\Gd\imagejpeg() at /var/www/XXX/vendor/intervention/image/src/Intervention/Image/Gd/Encoder.php:17)
GD ライブラリはインストールしたのですが、なぜか imagecreatefromjpeg() や imagejpeg() が見つからないとエラーが出ます。
そこで以下のコマンドを流し、GD ライブラリの情報を確認したところ「JPEG Support」が有効になっていませんでした。
# GD ライブラリの情報を確認 $ php -r 'print_r(gd_info());' Array ( [GD Version] => bundled (2.1.0 compatible) [FreeType Support] => 1 [FreeType Linkage] => with freetype [GIF Read Support] => 1 [GIF Create Support] => 1 [JPEG Support] => [PNG Support] => 1 [WBMP Support] => 1 [XPM Support] => 1 [XBM Support] => 1 [WebP Support] => [BMP Support] => 1 [JIS-mapped Japanese Font Support] => )
色々と原因を調べたところ、2020/05/26 現在 Amazon の Extras library から PHP7.4 をインストールした場合、yum install で php-gd をインストールしても「JPEG Support」が有効にならないようです。
簡単な対処法としては、以下の2つになります。
今回は amazon-linux-extras で PHP7.3 を入れることにしました。
# Extras library に PHP7.3 があることを確認 amazon-linux-extras list | grep php # PHP7.4 がインストール済みなのを確認 yum list installed | grep php # インストール済みの PHP7.4 を削除 sudo yum remove $(yum list installed | grep php | awk '{ print $1 }') # 削除されたことを確認 yum list installed | grep php # Extras library を使って PHP7.3 のインストール sudo amazon-linux-extras install -y php7.3 # インストールされたパッケージの確認 yum list installed | grep php # 足りないパッケージを必要に応じて yum でインストール sudo yum install -y php-gd php-mbstring php-pecl-zip php-xml # インストールされたパッケージの確認 yum list installed | grep php # 一応サーバを再起動 sudo reboot # PHP バージョンの確認 php -v # GD ライブラリの情報を確認 php -r 'print_r(gd_info());' Array ( [GD Version] => bundled (2.1.0 compatible) [FreeType Support] => 1 [FreeType Linkage] => with freetype [GIF Read Support] => 1 [GIF Create Support] => 1 [JPEG Support] => 1 [PNG Support] => 1 [WBMP Support] => 1 [XPM Support] => 1 [XBM Support] => 1 [WebP Support] => [BMP Support] => 1 [JIS-mapped Japanese Font Support] => )
「JPEG Support」が「1」有効になりました。
再度サイトにアクセスして、画像処理が正常に動作するのを確認して完了です。
コメント