📑
GAE/SE php7.3でGDが存在しないと怒られる
現象
ちょっと前まで問題なくデプロイできてたのに、突然↓のエラーが発生するようになった。
Problem 1
- setasign/fpdf is locked to version 1.8.4 and an update of this package was not requested.
- setasign/fpdf 1.8.4 requires ext-gd * -> it is missing from your system. Install or enable PHP's gd extension.
※composer installのタイミングでext-gd
が存在しない旨のエラーが発生。
CloudBuildの履歴を確認すると、builderのバージョンが変わってた。
- 成功してた頃
asia.gcr.io/gae-runtimes/buildpacks/php73/builder:php73_20220620_7_3_33_RC00
- 現在
asia.gcr.io/gae-runtimes/buildpacks/php/builder:php81_20220711_8_1_6_RC00
gdが無効になったのかと思ったけど、phpinfo()出力させてみたら有効になっている。
対応内容
対応1. PHPのバージョンアップ
結果:OK
以前からphp7.3はサポート切れてるよと警告が出ていたので、php7.4に上げてみる。
エラーが発生しなくなった。
ただ、それなりに動作確認が必要なので、もう少し影響範囲を狭めたい。
対応2. composer.jsonからgdを除外
結果:OK
setasign/fpdf
でgd
を必要としていたため、エラーが発生していた。
setasign/fpdf
は、setasign/fpdi
に付随して入れていたけど直接使用していなかったため、削除したところエラーが発生しなくなった。
影響箇所の動作確認も問題なし。
phpのバージョンアップよりは影響範囲が狭いので、今回はこちらを採用。
対応3. php.iniにgdの定義を追加
結果:NG
デプロイ時に↓のphp.iniを読み込ませてみたが、解消せず。
extension=gd.so
デプロイ時に↓のメッセージが表示されたので、読み込み自体はできているはず。
To enable extensions, verify that they are enabled in your .ini files:
-
- /workspace/php.ini
そもそもphpinfo()したときにGDが有効にはなっているので、対応としてふさわしくなさそう。
さいごに
取り急ぎ確認したことを書いたので、追加で確認したら更新する。
同じ現象でハマった人がいたら参考になれば幸い。
9/15追記
composer.jsonにgdを戻してデプロイしてみたらエラーが発生しなくなっていました。
単純にバグだったのかもしれない。。。
Discussion