Help us understand the problem. What is going on with this article?

エックスサーバー(Xserver)でMovable Typeの公開予約を利用すると大量のエラーが出る問題の対処

More than 1 year has passed since last update.

エックスサーバー(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行目付近にある、以下のコードを探してください。

mt6_Asset.pm
    if ( !$args->{force} ) {
        delete $arg{Width}  if $arg{Width} > $a->image_width;
        delete $arg{Height} if $arg{Height} > $a->image_height;
    }

これをコメントアウトして、以下の通り修正してください。

mt6_Asset_editted.pm
#    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のメール通知を停止するしか、現状は回避策がないようです。

webbingstudio@github
フリーランスのWebエンジニアです。HTML5/CSS3/jQuery/PHP/Movable Type/WordPress/a-blog cms/baserCMS
https://webbingstudio.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした