====== 【Amazon Linux 2】imagecreatefromjpeg() や imagejpeg() で Call to undefined function が発生する ====== 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 を入れる * amazon-linux-extras を使わず、Remi リポジトリ で PHP7.4 を入れる 今回は 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」有効になりました。\\ 再度サイトにアクセスして、画像処理が正常に動作するのを確認して完了です。