はじめに
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系は、当然動作しなかった。
やってみたこと
/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をそのまま上書きしました。
ログインをしようとすると、自動でアップグレードが始まり。完了!
パッケージは、こういうとき、楽ですね。
おしまい!