sasaring

初期化しても再構築エラーふぁ出ます

0

MovableTypeの4.27を使っています。


再構築をしたところ、「ブログ記事」でエラーが出ました。

以下のような表示が出ました。

----------------------------

エラーが発生しました。

Can't call method "label" on an undefined value

----------------------------

以下が現状です。

●前回、エラーせずに再構築がうまく完了してから、
 今回のエラーが出るまでに、
 「ブログ記事」のテンプレートに変更は加えたという記憶がありません。
 まったくいじっていないと思います。

●「ブログ記事」テンプレートの初期化をした上で、再構築しましたが、
 やはりエラーが出てしまいます。

なぜエラーが出るのでしょうか。

エラーの箇所を特定するには方法があるのでしょうか。

なにとぞアドバイスをよろしくお願いいたします。

返信(24)

| 返信する
  • いきなり自己レスですみません。
    トピックのタイトルは正しくは

    「初期化しても再構築エラーが出ます」です。

    すみません。

  • >sasaringさん
    こんにちは。

    mt-config.cgiファイルに以下の行を追加してから、再構築しなおしてみてください。
    より詳しいエラーメッセージが表示されます。

    DebugMode 1

  • 壱さま

    こんにちは。
    さっそくのアドバイスをいただき本当にありがとうございます。

    いま、mt-config.cgiファイルを開いてみたのですが、

    お教えいただいた

    DebugMode 1

    は、どこに追加すればいいのでしょうか。

    一番最後に、これをこのまま追加すればよろしいでしょうか。

    重ねての質問ですみません。
    よろしくお願いいたします。

  • >sasaringさん
    こんにちは。

    mt-config.cgiファイルの最後に、「DebugMode 1」の行を追加してください。

  • ありがとうございます。

    アドバイスいただいたとおり、のファイルを開けて
    を追記して「ブログ記事」のテンプレートを再構築をしました。


    まず最初に、現在使用中のテンプレートで再構築

    次に、テンプレートを初期化した上で再構築

    その結果

    両方とも、以下の、同じエラーの表示が出ました。

    --------------------------------------------------------

    エラーが発生しました。

    Can't call method "label" on an undefined value at lib/MT/Entry.pm line 315. 

    --------------------------------------------------------

    「lib/MT/Entry.pm line 315」に原因があるということでしょうか。

    「lib」→「MT」とたどっていくと、「Entry.pm」というファイルがありました。

    このファイルの315行目ということでしょうか。


    しかし、ファイルを開くと、行替えがされておらず、
    びっしりとテキストで埋まっていました。

    そこで、これをコピーして、
    MovableTypeの管理画面で「テンプレートを作成」の画面を出して、
    ペーストしたところ、


    308行目から318行目は

    }

    sub categories {
    my $entry = shift;
    $entry->cache_property('categories', sub {
    my $rows = $entry->__load_category_data or return;
    my $cats = MT::Category->lookup_multi([ map { $_->[0] } @$rows ]);
    my @cats = sort { $a->label cmp $b->label } @$cats;
    return \@cats;
    });
    }


    となっていました。


    315行目は

    my @cats = sort { $a->label cmp $b->label } @$cats;

    です。

    ここに原因があるのでしょうか。

    恐れ入ります。

    引き続きのアドバイスを頂けましたら幸いです。

  • すみません、上の文の冒頭、文字【  】が抜けていました。

    正しくは

    ----------------------------

    アドバイスいただいたとおり、【mt-config.cgi】のファイルを開けて
    【DebugMode 1】を追記して「ブログ記事」のテンプレートを再構築をしました。

    ----------------------------

    重ねての文章の不備をお詫びします。

  • すみません、上の文の冒頭、文字【  】が抜けていました。

    正しくは

    ----------------------------

    アドバイスいただいたとおり、【mt-config.cgi】のファイルを開けて
    【DebugMode 1】を追記して「ブログ記事」のテンプレートを再構築をしました。

    ----------------------------

    重ねての文章の不備をお詫びします。

  • すみません、上の文の冒頭、文字【  】が抜けていました。

    正しくは

    ----------------------------

    アドバイスいただいたとおり、【mt-config.cgi】のファイルを開けて
    【DebugMode 1】を追記して「ブログ記事」のテンプレートを再構築をしました。

    ----------------------------

    重ねての文章の不備をお詫びします。

  • すみません、上の文の冒頭、文字【  】が抜けていました。

    正しくは

    ----------------------------

    アドバイスいただいたとおり、mt-config.cgiのファイルを開けて
    DebugMode 1を追記して「ブログ記事」のテンプレートを再構築をしました。

    ----------------------------

    重ねての文章の不備をお詫びします。

  • すみません、上の文の冒頭、文字【  】が抜けていました。

    正しくは

    ----------------------------

    アドバイスいただいたとおり、mt-config.cgiのファイルを開けて
    DebugMode 1を追記して「ブログ記事」のテンプレートを再構築をしました。

    ----------------------------

    重ねての文章の不備をお詫びします。

  • すみません、上の文の冒頭、文字【  】が抜けていました。

    正しくは

    ----------------------------

    アドバイスいただいたとおり、mt-config.cgiのファイルを開けて
    DebugMode 1を追記して「ブログ記事」のテンプレートを再構築をしました。

    ----------------------------

    重ねての文章の不備をお詫びします。

  • すみません、上の文の冒頭、文字【  】が抜けていました。

    正しくは

    ----------------------------

    アドバイスいただいたとおり、mt-config.cgiのファイルを開けて
    DebugMode 1を追記して「ブログ記事」のテンプレートを再構築をしました。

    ----------------------------

    重ねての文章の不備をお詫びします。

  • 重ねてすみません。
    投稿すると、なぜか何度もエラーが出て
    再度投稿したら、文字化けの状態で投稿されています。
    理由が分かりません。

    お詫びいたします。

  • 重ねてすみません。
    投稿すると、なぜか何度もエラーが出て
    再度投稿したら、文字化けの状態で投稿されています。
    理由が分かりません。

    お詫びいたします。

  • 重ねてすみません。
    投稿すると、なぜか何度もエラーが出て
    再度投稿したら、文字化けの状態で投稿されています。
    理由が分かりません。

    お詫びいたします。

  • 重ねてすみません。
    投稿すると、なぜか何度もエラーが出て
    再度投稿したら、文字化けの状態で投稿されています。
    理由が分かりません。

    お詫びいたします。

  • MovableTypeでこのフォーラムにサインインすると、エラーが出てしまうので、
    Yahooからサインしました。
    IDは違いますが、私はスレ主(sasaring)です。

    何度投稿してもエラーが出るので、何度もトライしたら、
    文字化けの投稿でたまってしまいました。
    すみません。


    その後、私は、再構築エラーの原因であると思われる

    my @cats = sort { $a->label cmp $b->label } @$cats;

    で、WEBを検索してみました。

    すると、同じ箇所で再構築のエラーが出ている方がいらっしゃって、
    解決方法が出ていました。
    こちらです。
    http://www.blockmodule.com/archives/17

    私もここで紹介されている文字列をコピーして
    おなじようにEntry.pmの該当箇所を書き換えました。

    ところが、今度は、「ブログ記事」を開けると、
    「テンプレートを編集」の画面にならず、その段階で
    以下のようにエラーが表示されてしまいます。

    --------------------------------------------------------

    エラーが発生しました: Unrecognized character \x81 in column 6 at lib/MT/Entry.pm line 311.
    Compilation failed in require at lib/MT/Compat/v3.pm line 12.
    BEGIN failed--compilation aborted at lib/MT/Compat/v3.pm line 12.
    Compilation failed in require at lib/MT.pm line 1244.

    --------------------------------------------------------

    以上が現状です。

    私の書き換えの方法に誤りがあるのでしょうか。

    やりかたはこうです。

    FTTPのソフトを使って、接続。

    Entry.pmのファイルをダウンロード。

    ファイルを開く。

    文字でびっしり行替えされていない状態なので、
    いったんこれをコピーして、

    MovableTypeの「アーカイブテンプレート アーカイブテンプレートを作成」の横にある「ブログ記事」
    をクリックして、作成の画面にする。

    ここの画面にペーストして、該当箇所を書き換える。

    全部をコピーして、その画面は用が済んだので終了。

    さきほどのファイルを書き換えたものに置き換えてペースト。


    この段階で、気になるのは、最初に開いたときの、行替えされていなかったのとは違って
    行替えされた状態になっていることです。

    この書き換えたファイルをアップロードして、取り替える。

    以上です。

    このやり方は、まちがっているのでしょうか。

  • スレ主(sasaring)です。

    その後、さがしてみると、Entry.pmのファイルで

    my @cats = sort { $a->label cmp $b->label } @$cats;

    のところで同じようにエラーの出る方がいて、

    Entry.pmのファイルの書き換えを行ってエラーが出なくなったことが紹介されていましたが、

    書き換えは2種あるようです。

    ひとつは

    my @cats;
    eval('my @cats = sort { $a->label cmp $b->label } @$cats');

    で、もうひとつは

    my @cats;
    eval(‘my @cats = sort { $a->labelstrong> cmp $b->label } @$cats’);

    です。

    私は、いずれも試みましたが、

    いずれも再構築でエラーが出ました。

    また、たまたま入ろうとしたら、
    MovableTypeの管理画面の、
    テンプレートの作成画面に入る段階でエラーが出て
    入れなくなってしまいます。

    いまはとりあえず、Entry.pmを変更前に戻してあります。


  • 連投すみません。

    特に書きませんでしたが、

    今回、「ブログ記事」の再構築ができなかったため、
    「ブログ記事」を初期化しての再構築を試みたところ、
    再構築がエラーになることのほかに、
    気がつくと、ブログのトップページのカテゴリアーカイブが
    消えていました。

    「カテゴリの管理」を見ると、
    「カテゴリが見つかりませんでした。 」と表示されていました。

    また、さきほど、

    「トップレベルカテゴリを作成」をクリックして
    任意の言葉を入れて「新規作成」のボタンを押すと、

    以下の表示が出ました。

    ----------------------------
    エラーが発生しました。

    categoryを保存できませんでした: Failed to execute INSERT INTO mt_category (category_allow_pings, category_author_id, category_basename, category_blog_id, category_class, category_created_by, category_created_on, category_description, category_label, category_modified_by, category_modified_on, category_order_number, category_parent, category_ping_urls) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) with allow_pings, author_id, basename, blog_id, class, created_by, created_on, description, label, modified_by, modified_on, order_number, parent, ping_urls: DBD::mysql::st execute failed: Incorrect key file for table: 'mt_category'. Try to repair it at /home/kengshow/www/mt/extlib/Data/ObjectDriver/Driver/DBI.pm line 380. 

    ----------------------------

    なお、カテゴリについては、改造した記憶があります。

    ブログの画面でのカテゴリの表示を任意の順番にできるようにする改造です。
    私は知識がありませんので、WEBで紹介されていたものを
    そのまま導入したものです。

    少し、私のMovableTypeは重傷のような気がします。

    ここで旧バージョンである「MovableType4.27」で悪戦苦闘するよりも
    バージョン6に移ったほうがいいように思われますが、
    この場合、
    現在のトラブルを抱えたままだとうまくアップグレード
    できない、
    あるいは、アップグレードをしたあとにトラブルが
    くっついてくるなどの弊害はあるのでしょうか。

  • 追記です。
    
    

    カテゴリの改造は、たしかこれです。
    プラグインを見たらありました。

    Sort Categories And Folders 1.02

    連投すみません。

    どうも重傷のような気がします。

    もしアドバイス頂けたら幸いです。

    なお、このフォーラムはなぜか投稿の際にいろいろエラーが出ます。
    今回は
    「返信に失敗しました: セッションの有効期限が切れています。再度サインインしてください。」と

    出ました。

    また、サインインも何度もエラーが出てしまいます。

  • >sasaringさん
    こんにちは。

    データベースのカテゴリのテーブルがどこかおかしくなっているものと思われます。
    また、今の状態のままでMT6にアップグレードしても、トラブルは解消しないと思います。
    データベースを修復することが先決です。

  • 壱さま

    ありがとうございます。

    データベースの週香港区が先決であること、理解いたしました。

    問題点が多くありそうなので、
    このトピックはここで締めて、
    問題点を整理した上で再度トピックを立て直します。

    ありがとうございました。

  • この期におよんで再度の投稿すみません。
    上の投稿、誤りがありましたので再投稿します。

    壱さま

    ありがとうございます。

    データベースの修復の方が先決であること、理解いたしました。

    問題点が多くありそうなので、
    このトピックはここで締めて、
    問題点を整理した上で再度トピックを立て直します。

    ありがとうございました。

  • その後の結果をお伝えします。

    ファイルを書き換えるとき、Windowsのメモ帳ではなく「TeraPad」で開いて、315行目の

    my @cats = sort { $a->label cmp $b->label } @$cats;

    を、

    my @cats;
    eval('my @cats = sort { $a->label cmp $b->label } @$cats');

    に書き換えたところ、再構築ができました。

    「メモ帳」を使って書き換えたのがダメな原因でした。

    私には理由は分かりません。

    ありがとうございました。

返信する


カテゴリグループ

フォーラムカテゴリー

21 76

最新のトピック: 公開終了日の取り消し (2013年10月18日 gsk)

299 867

最新のトピック: MTログについて (2015年5月15日 kazz)

224 687

最新のトピック: TinyMCEでページ内リンクを設定 (2015年5月 8日 まさみ)

154 453

最新のトピック: MT6.1 のフォルダ管理について (2015年4月 7日 yokota)

333 969

最新のトピック: 初期化しても再構築エラーふぁ出ます (2015年5月 8日 sasaring)

OpenID対応しています OpenIDについて