mt-upgrade.cgiはCGIPathの値が優先されるらしい

いいたいのはタイトルだけなのですが、備忘録としても残します。Movable Type 6.3.5へアップデートを行った時に困惑したので書いておきます。

対象

Movable Typeの管理画面のURLと検索やコメント投稿用のURLをディレクトリで分けているユーザ。

mt-config.cgiに以下のように記述してMovable Typeを使っていると発生する可能性があります。

AdminCGIPath         /admin/
CGIPath              /cgi-files/

なにがあったのか

Movable Typeのバージョンアップをする時にデータベースのアップデートを行う必要があるが、その場合においてmt-upgrade.cgiのファイルがない、という表示になる。(PSGI版だとNot foundですね)

解決方法

CGIPathに書かれているフォルダ名に書き換えてアクセスする。例えば、上記のようにmt-config.cgiに記述があれば、以下のようになります。

https://example.com/admin/mt-upgrade.cgi    # システムがリダイレクトするURL
https://example.com/cgi-files/mt-upgrade.cgi # 書き換えたURL

ただし、mt-upgrade.cgiが実行あとに『Movable Typeへ戻る』をクリックすると管理画面に戻るため、別ドメインで管理している場合は注意が必要です。(例: 検索機能を使うために表側のサイトで検索は動かしているが、管理画面は裏の別ドメインのサイトで動かしていて、ディレクトリをコピーしてない…など。)

AdminCGIPathはmt.cgiの指定のみ

管理用プログラム(mt.cgi)への URL を指定します。管理プログラムへのリンクを生成するために使われます (CGIPath はその他すべての CGI スクリプトへリンクを生成するために使われます)。AdminCGIPath を使用しない場合、デフォルトで CGIPath の値が使用されます。

AdminCGIPath | 環境変数リファレンス - CMSプラットフォーム Movable Type -

ファイル名がきっちり記述されていますね、躓いた時はファイルを削除する前にCGIPathで指定されているディレクトリへ書き換えてアクセスしましょう。ちなみに私はAWS版を使っていて、yumを用いてMovable Typeのシステムを3回入れ替えました。(mt-upgrade.cgiが消えていることを確認済)

## upgradeスクリプトも管理用プログラムだと思うのですが…。