エックスサーバー(Xserver)の比較的新しいサーバーで、Movable Type6の「公開キュー」を利用して記事の公開予約をすると、チェック用のメールアドレスに、以下のようなエラーが大量に送信されることがあります。
公開処理自体は正しく行われているようです。
Use of uninitialized value in numeric gt (>) at /home/path/to/mt/tools/../lib/MT/Template/Tags/Asset.pm line 1179.
libpng warning: Interlace handling should be turned on when using png_read_image
それぞれに対する対応についてまとめます。
Use of uninitialized value in numeric... について
Perlの文法チェックが厳格になったことによるエラーです。数値比較を行う場合、必ず初期値を指定する必要があるようです。
予約投稿時にPerlの文法エラーが表示される - MTQ | Movable Type ユーザーコミュニティ
http://communities.movabletype.jp/2017/11/perl-2.html
Movable Typeコアの、以下のファイルをテキストエディタで開き
/lib/MT/Template/Tags/Asset.pm
の、1177行目付近にある、以下のコードを探してください。
if ( !$args->{force} ) {
delete $arg{Width} if $arg{Width} > $a->image_width;
delete $arg{Height} if $arg{Height} > $a->image_height;
}
これをコメントアウトして、以下の通り修正してください。
# if ( !$args->{force} ) {
# delete $arg{Width} if $arg{Width} > $a->image_width;
# delete $arg{Height} if $arg{Height} > $a->image_height;
# }
if ( !$args->{force} ) {
delete $arg{Width} if (defined($arg{Width}) && $arg{Width} > $a->image_width);
delete $arg{Height} if (defined($arg{Height}) && $arg{Height} > $a->image_height);
}
libpng warning: Interlace handling... について
Movable Typeの画像ライブラリをGDに変更していると発生するようです。
下記の記事の通り、ライブラリをGD以外に変更すると発生しなくなりますが…
エックスサーバー(Xserver)でMovable Typeに画像をアップロードできない場合の対処
https://qiita.com/webbingstudio@github/items/c374a4856411f48d7a2c
いくつかのプラグインで大量の文法エラーが出るようになってしまいます。
私の環境では、以下でエラーを確認しています。
- GetQueryParam(MailFormの関連プラグイン)
- PageBute
Argument "" isn't numeric in numeric eq (==) at /path/to/mt/plugins/GetQueryParam/GetQueryParam.pl line 213.
Use of uninitialized value $value_str[0] in numeric eq (==) at /path/to/mt/plugins/GetQueryParam/GetQueryParam.pl line 213.
Use of uninitialized value $value_str[1] in string eq at /path/to/mt/plugins/GetQueryParam/GetQueryParam.pl line 213.
Argument "" isn't numeric in numeric eq (==) at /path/to/mt/plugins/GetQueryParam/GetQueryParam.pl line 213.
Argument "\x{4ed5}\x{4e8b}..." isn't numeric in numeric eq (==) at /path/to/mt/plugins/GetQueryParam/GetQueryParam.pl line 213.
・・・
Use of uninitialized value in join or string at /path/to/mt/plugins/GetQueryParam/GetQueryParam.pl line 260.
Use of uninitialized value in numeric eq (==) at /path/to/mt/plugins/MailForm/MailForm.pl line 366.
・・・
Use of uninitialized value in concatenation (.) or string at /path/to/mt/plugins/PageBute.pl line 500.
Use of uninitialized value in concatenation (.) or string at /path/to/mt/plugins/PageBute.pl line 506.
Use of uninitialized value $delim in concatenation (.) or string at /path/to/mt/plugins/PageBute.pl line 499.
Use of uninitialized value in concatenation (.) or string at /path/to/mt/plugins/PageBute.pl line 500.
Use of uninitialized value in concatenation (.) or string at /path/to/mt/plugins/PageBute.pl line 506.
・・・
結論
ライブラリをGD以外にする対応は難しいため、「Use of uninitialized value in numeric...」エラーだけを修正し、Cronのメール通知を停止するしか、現状は回避策がないようです。