CentOS8環境Movable Type6でエラー発生

らら
らら

はじめに

CentOS6の開発環境をCentOS8にあげて、OSアップデートしたらMovable Type6.1.1がエラーになった。

UPDATEは、tarでWEBサイトデータバックアップして、SQLダンプでバックアップ・リストアした。

調べてみた

アップデート後のperlのバージョン

This is perl 5, version 26, subversion 3 (v5.26.3)

Movable Typeのperl5.26の対応はバージョン6.2.4ぐらいから

エラーの内容


Got an error: Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/{{ <-- HERE support}}/?/

とうとう、perlのバージョンアップするとPHPみたいに動かなくなる問題が発生。

ECCUBE3,ECCUBE4のPHP系は、当然動作しなかったのでSQL,PHPファイル消しました。

やってみたこと

/ib/MT/App/CMS.pm

setup_editor_param関数の正規表現

MT-6.7.3で確認しましたが、下記の対応がされていました。


s#{{の部分をs#\{\{エスケープする。

sub setup_editor_param {
    my $app = shift;
    my ($param) = @_;
    if ( my $blog = $app->blog ) {
        if ( my $css = $blog->content_css ) {
            $css =~ s#\{\{support}}/?#$app->support_directory_url#ie;
            if ( my $theme = $blog->theme ) {
                $css =~ s#\{\{theme_static}}/?#$theme->static_file_url#ie;
            }
            if ( $css !~ m#\A(https?:)?/# ) {
                $css = MT::Util::caturl( $blog->site_url, $css );
            }
            $param->{content_css} = $css;
        }
    }

上記修正でログインでたー終わったと思いきや。。下記のエラー


Can't locate object method "is_ready" via package "GoogleAnalytics::Provider"

MT-6.7.3のアドオンGoogleAnalyticsを上書きしてみだめだった。。

mt-upgrade.cgiを叩いてみる。下記のエラー


Got an error: \C no longer supported in regex; marked by <-- HERE in m/(\ <-- HERE C)/

んー、ソース直すのあきらめ・・・

対応方法

とりあえず開発環境で外部プラグインなどいれていなかったので、MT-6.7.3をそのまま上書きしました。

ログインをしようとすると、自動でアップグレードが始まり。完了!

注意)上書きアップデートは公式では、非推奨です。別途MT用のフォルダーを作成して運用をするのが正解です。

他社プラグインを入れてない場合は、パッケージは、こういうとき、楽ですね。

本番サイトでは、きちんと、プラグインの整合性、OSの整合性を確認してから行ってくださいね。

その他の動かないシステムは、ソースだけバックアップ取り、削除。。。

おしまい!

関連記事