2006年08月15日(火)
MT 3.151 から 3.31 へ移行(MovableType)
コメント/トラックバックスパムが相当に酷い事になってきたので、デフォルトで対策機能が入っているとAYano氏から聞いたもので最新版へと移行作業を行いました。
とりあえず現状、コメントがつけられない様子です。
エラー原因を調べてみてはいるんだけれど全く手がかりが無い状態。
コメントを投稿すると
” データベース接続の設定に誤りがあります: ファイル/path/to/sqlite/database/fileを開けません: No such file or directory”
のエラーログを返すんだけれど、そもそもSQLiteのデータベースなんて使ってもいないのに。
どうなってんのよ?
それらしい文字列をMTのlibから検索してはみたものの、mt-config.cgi-original にその文字列があるのみ。
データベースのインポートは正常に行われたっぽい様子だったんだがなあ。
コメントスパム対策でコメント投稿できなくなったら全く意味無いよな。
謎のコメント投稿でエラーになる原因は、修正する必要のあったモジュールを変更し忘れていたため、古い mt-comments.cgi を呼び出してしまっていたのが原因。
データベース本体が3.31にバージョンアップしているのでそりゃ変なエラーも出るわな。
ファイルのアップロードとデータベースの更新を全部やりなおしたところ、コメントの送信で cgi の呼び出しエラーに変わったので原因が分かった。
以下引っかかった点など。
・3.151の時点ではアプリケーションファイル(libフォルダなど)を cgi-bin のフォルダに置かないほうが良いみたいな事がマニュアルに書いてあったのでそうしていたのだが、3.31ではむしろcgi-binに置いて公開用のフォルダと分けた方がいいというような感じに変わっている。
これをやると MT???.cgi ファイルのパスが変更になるので、テンプレートやモジュールの変更が発生する。また古いバージョンのlibフォルダを(念のために)残しておくと変なcgi呼び出しをしてしまって妙な現象が起こる。(自分のパターン)
・バックアップに関しては基本的にデータベース(デフォルトならばdbフォルダ、MySQLとか使っていたら応じたバックアップ)さえバックアップしてあれば、対応したバージョンのMTのライブラリファイルをアップロードしなおせば(恐らく)完全に元に戻せる。
モジュールやテンプレートの事はあまり気にしなくても良いという事。自分は全てローカルにも保存してあったもので。
・調べるとすぐに出てくるがバックアップに関して。MT管理画面からの読み込み/書き出しを使う時にIE(のブラウザエンジン)だとうまくできないらしい。FireFoxとか使わないとダメらしい。
これでバックアップしたつもりのエントリ(これ)が消えた(笑)。そもそもこの機能をあまりアテにしない方がいいような気がする。
・マニュアルにもある通り、データベース以外のフォルダとファイルは全て削除してから新しいバージョンをアップロードした方が良さげ。
・マニュアルにもあるが、FTPソフトのモードをPASVモードにしておく。
.151の時点では特にエラーは起こらなかったのだが、ファイル数が増えたのかやたらと転送エラーが起こりまくっていた。PASVモードに設定すると転送エラーが無くなる。 <常識?
・データベースを cgi-bin ではないフォルダに置く場合(マニュアルでは推奨ニュアンス?)、mt-config.cgi にてパスを指定するが、これはURLではないので ”/public/pub/home/username/???” みたいなので始まるサーバー上のパスで指定しなければならない。
アプリケーション、スタティック、ブログディレクトリはURL指定も可能だが、データベースのみサーバーパス指定が必須なので自分は引っかかった。
・”BigPAPIを利用するプラグインは、Movable Type 3.3では動作しない場合があるため、注意してください。”
マニュアルのこちらより引用。使用している人はご注意を。
・今回初めて個別エントリの全再構築を行なったが、タイムアウトでロクに構築しないでサーバーエラーになるので、mt-config.cgi に
EntriesPerRebuild 4
など適当な小さい数値を設定する必要があった。これも調べればすぐに出てくるけど。
てっきり何か別の事が原因でエラーが起こっているんじゃないかと思ったもんで。
個別エントリの作成って何であそこまで時間がかかるんだろうな。
全体的にブログやエントリー管理のインターフェースが強化されていて、かなり良い感じだと思う。
スパムブロックに関しては2,3日間コメント投稿/トラックバックができなかった為か、不具合前にブロックが一件あった後はまだ発生せず。
投稿・送信を不可能の状態に一定期間すればスパムロボットエンジンが多少は諦めるのかね。