つい先日WordpressのセキュリティプラグインsiteGuard WP Pluginで、
ログイン時の画像認証でエラーがでました。
その時のバージョンはWordpress4.9.8–ja、siteGuard WP Pluginが1.4.3。
目次
Warning: imagepng():gd-png: fatal libpng error:Incompatible libpng version in application and library in.. というエラー
特にプラグインやWordpressのバージョンアップをした直後でもなかったのですが、Warnigがでてしまいました。
ぱっと見る限り認証画像を出力する箇所で出ているエラーのようです。
Warning: imagepng(): gd-png: fatal libpng error: Incompatible libping version in application and library in ********/siteguard/reallu-simple-captcha/siteguard-reallu-simple-captcha.php on line 221
エラー内容を和訳してみると、
「アプリケーションとライブラリの互換性のないバージョンのlibping」
との事。
バージョンの互換性がないよ、という事のようですね。
siteguard-reallu-simple-captcha.phpファイルの221行目のimagepng()をimagejpg()に差し替える
imagepng()を使ってpng形式で出力しているわけですが、
libpngライブラリでエラーが出てしまうので、
imagejpg()に差し替えてjpeg形式で出力する事で、
一旦このエラーはクリアにできました。
根本的な解決ではないですが。
//siteguard-reallu-simple-captcha.phpの221行目あたり switch ( $this->img_type ) { case 'jpeg': $filename = sanitize_file_name( $prefix . '.jpeg' ); $file = $this->normalize_path( $dir . $filename ); imagejpeg( $im, $file ); break; case 'gif': $filename = sanitize_file_name( $prefix . '.gif' ); $file = $this->normalize_path( $dir . $filename ); imagegif( $im, $file ); break; case 'png': default: $filename = sanitize_file_name( $prefix . '.png' ); $file = $this->normalize_path( $dir . $filename ); ////////////ここをimagepng()から差し替え////////////// imagejpeg( $im, $file ); //////////////////ここを差し替え//////////////////////// }