スポンサーサイト

2013.09.14 Saturday by スポンサードリンク|-|-|-

一定期間更新がないため広告を表示しています

MTに脆弱性が確認されたそうだ

2006.09.27 Wednesday 00:40 by abetomoMovableType|-|-

メールチェックしたら、ロリポからこんなお知らせが。

シックス・アパート株式会社(以下、シックス・アパート)が提供するブログシステム「Movable Type」のプログラムにおきまして、クロスサイトスクリプティングによる脆弱性が発見されました。

「Movable Type」をご利用のお客様はバージョンアップを行ってください。バージョンアップの方法につきましてはシックス・アパートのニュースをご参照ください。

【重要】 Movable Type 新バージョンとパッチの提供について


ええ〜、面倒くさい。でも対応しないわけにはいかないので、とりあえず3.2用のパッチを適用しておいた。本当はバージョンアップしたほうがいいんだけど、それはさすがに時間がかかるので、また今度にしよう。

ていうか、いつの間に個人ライセンス無償版のダウンロードはECバイヤーズ経由になったんだ?バージョン3.33のダウンロードだけでも先にしておこうと思ったら、まずダウンロードの申し込みとやらをしなくてはならなくて、その準備完了メールがきてからでないとダウンロードできないらしい。あああ面倒だな。とか書いてる間にメールがきたけど。

MovableType 3.2へアップグレード

2006.05.14 Sunday 10:05 by abetomoMovableType|-|-

久しぶりに暇ができたので、ふと思い立ってMovableTypeを3.171から3.2へアップグレードした。

MovableType3.2へのアップグレード方法」などを参考に、実行。3.2の管理画面に入り、データベースを移行、再構築・・・まではうまくいったのだが、ブログの個別記事や月別アーカイブページを開くと、次のようなエラーがでてしまった。

MT復旧!再構築エラーの原因は・・・

2005.07.27 Wednesday 06:07 by abetomoMovableType|-|-


MySQL移行失敗、そしてMT再構築エラー」の続き。



データ量を減らそうと思って、いったんインポートした記事を100件ほど削除したところ、次のようなエラーが出て再構築ができなくなってしまった。




Can't use an undefined value as a SCALAR reference at lib/MT/Template/Context.pm line 780




この Context.pm というのがperlのファイルだということはすぐ分かった。だけど、何を直したら良いのかが分からない。



そこで、同僚のエンジニアさんに聞いてみた。すると、エラーそのものの意味は分からないが、記事を削除したことで該当記事が0になったカテゴリがあって、それがエラーを起こしているのでは?とのこと。



なので、まずはテンプレートからサイドメニューのカテゴリの記述を抜いて、再構築してみたらどうか、というアドバイスをもらった。



なるほど。そういえばデータベースの移行に失敗したのはカテゴリ絡みのエラーらしいし、確かにカテゴリがくさい気がしてきた。



ということで、さっそく全てのテンプレートからサイドメニューの「最近の記事」「最近のコメント」「カテゴリ」のリストを外した。それから、カテゴリ設定ページで「エントリー」が0になっているカテゴリを全て削除した。ついでにサブカテゴリもなくしておいた(後のMySQL移行のため)。



そしたら、難なく再構築できてしまった。おぉ、やっぱりカテゴリのせいだったのか?エンジニアさんのご指摘はビンゴだったのだ。お礼に“イケメン・エンジニア”の称号をあげよう!(いらない)



さらに原因を突き止めるため、外したリストを1つずつテンプレートに戻して再構築してみることに。すると「カテゴリ」だけでなく、「最近のコメント」のリストがあるときもエラーが出ることが分かった。



カテゴリはともかく、なんでコメントまで??



なんだかよく分からないが、とりあえず考えられるのは、カテゴリやコメントを呼び出す記述が間違っているということ。そこでまずはカテゴリの記述をよーく見てみると・・・あらら?



<$MTCategoryLabel$>となるはずのところが、なぜか<MTCategoryLabel>になっていた。



たぶんコレが原因だろう。でもなんで「$」が抜けているのかよく分からないが・・・。たぶん、どこかからコピペしたときに間違っていたんだろう。(だとしたら、よく今までエラーが起きなかったなあ)



ということで、「$」を追加してテンプレートを再構築してみた。問題なく完了。ブログのメインページのサイドメニューにもカテゴリリストが表示されている。やった!



次に、コメントの記述も「$」が抜けてるんじゃないかと思ってよく見たけど、こっちは特に間違ってはいない模様。じゃあなんで?と思った瞬間、あることに気がついた。



そういえば、記事自体は削除されているのに、その記事についたコメントが1件だけ取り残されていたのだ。そうか、きっとこれに違いない!



そのコメントを削除して、サイドメニューに「コメント」リストを追加して再構築すると・・・成功!



というわけで、今回の再構築エラーの原因をまとめると、



  • 過去記事を削除したことで、該当記事が0になったカテゴリがあった。

  • サイドメニューのカテゴリリストの記述が間違っていた。

  • 該当記事が削除されているのに、コメントだけが残っていた。



ということになるかと。でもカテゴリが0になったことでエラーを起こすんだったら、親階層のカテゴリは敢えて0件にする使い方もあるだろうから、それもエラーを起こすことになるんだろうか?とちょっと腑に落ちないけど・・・。



ともかく、これでMTを最初からインストールする手間は省けた。バンザイ!



この後またMySQLへの移行に挑戦したんだけど、長くなったのでまた今度。



このエントリーは

投稿クライアントの「BlogWrite」

により投稿されました。

MySQL移行失敗、そしてMT再構築エラー

2005.07.26 Tuesday 07:07 by abetomoMovableType|-|-


ブログ移転するかも」の続き。




エラーが起きたりしなければいずれ移転すると思います。




なんて軽く言っていたけど、やっぱりそう簡単にコトは進まなかった・・・。



このココログ版「写真な日々」と同じレイアウトにしようと、インデックスやアーカイブのテンプレートはすぐ書き換えたんだけど、これだけではサイドメニュー(最近書いた記事リストが並んでいる右側メニュー)の「オススメ」などを更新したいときはいちいちテンプレートを書き換えなければならない。やっぱりサイドメニューは共通化して、更新を楽にしたいと思った。



それにはインクルードだろう、ということで調べてみると、MTIncludeを使う方法やSSIのインクルードを使う方法、phpを使う方法など、やり方はいくつかあることが分かった。



一番手っ取り早いのはMTIncludeなんだけど、これだとサイドメニュー単体を更新しただけではブログに反映されない。サイドメニューが入っているアーカイブを再構築しなければ、最新の状態にならないのだ。しかしそれじゃあ意味がない。そもそも再構築を避けたくてインクルードにしようと思っているわけだから。



SSIのインクルードを使うこともできるけど、ウチのサーバの場合、拡張子を.shtmlにしなければならないので、なんとなくダルい。それにどうせなら、ページ分割とか、ココログではできないことをしてみたいと思った。



というわけで、思い切ってphp化してみることにした。



まずはMySQLへの移行作業。データベースを作って、mt.cfgとmt-db-pass.cgiを書き換えるところまではうまくいった。



そしてmt-db2sql.cgiにアクセス。が・・・なんか途中で止まってしまった模様。もう一度mt-db2sql.cgiにアクセスしてみると、こんなメッセージが出た。




Table 'mt_author' already exists at mt-db2sql.cgi line 53.




「mt_author」というテーブルはすでにあるよ、というエラーらしい。検索してみたら、やはり同様のエラーでMySQL移行に失敗した例が出てきた。



それによると、どうやらカテゴリを階層化しているとエラーが起きるらしい。それから、mt.cfgの「DataSource ./db」の先頭に「#」は付けないほうがいいらしいということも。



しかしMT関連のテーブルを削除してやり直したらうまくいったという例もあったので、とりあえずそのようにしてみることに。ついでにmt.cfgの「DataSource ./db」から「#」を外して転送し、再びmt-db2sql.cgiにアクセス。・・・また失敗。



むう。やっぱり、カテゴリを全て親カテゴリにしておかないとダメなのか?



そこで、もう一度MT関連のテーブルを削除してからMTにログインしてみた。するとログインはできたものの、テンプレート編集画面やエントリー投稿画面やカテゴリー編集画面へのリンクがなくなっていた。これでは、カテゴリの設定を変えることもできない。



たぶん、テーブルを削除しちゃったから、どこにもデータベースがない状態になってしまったんだろう。

(ちなみに、ブログ自体はちゃんと見えていて、表示がおかしくなったりはしていなかった)



面倒くさくなったので、最初からやり直すことにして、MySQLのデータベース自体を削除した。mt.cfgも最初の状態に戻して、それからまたMTにログインすると元通りになっていた。



なーんだ、最初からMovableTypeをインストールし直さなくても済んだぞ。



と喜んだのもつかの間のこと。



この前ココログから全記事をインポートしたんだけど、あれを少し減らしてから移行作業をしたほうがデータ量も少なくていいだろう、と思って100件くらい削除したら、今度は再構築時にエラーが出るようになってしまったのだ。




An error occurred:

Can't use an undefined value as a SCALAR reference at lib/MT/Template/Context.pm line 780




何度再構築をかけても、こんなメッセージが出て動かなくなってしまった。新規エントリーを投稿しても同じエラーが出るし、たぶんテンプレートを再構築しても同じだろう。



うぎゃー、本当に壊してしまった・・・。



「Can't use an undefined value as a SCALAR reference」で検索してみると、やはり対処法がいくつか出てきたんだけど、どうもみんなデータベース関係のエラーらしく、私のとは少し違うみたいだ。




at lib/MT/Template/Context.pm line 780




という部分からすると、テンプレート関係のエラーだとは思うんだけど・・・同じ状況の例が見つからない。



これはやっぱり、MTのインストールからやり直しか〜?



このエントリーは

投稿クライアントの「BlogWrite」

により投稿されました。

ブログ移転するかも

2005.07.16 Saturday 03:07 by abetomoMovableType|-|-

急に思い立って、本家にブログ構築中です。しかも今度で3回目。

1回目は、MovableType2.661で挑戦。インストールは難なくできたものの、カテゴリを作成すると再構築でエラーが出るようになってしまい、どうにも原因が分からなくて断念。

2回目はNucleusでPhotoblogを構築。これはインストールもMySQLの設定もテンプレートのカスタマイズも問題なくできて、拍子抜けするほどうまくいきました。だけど、そこから先のさらなるカスタマイズ(プラグインを使うといろいろできる)が難しかったり、ブログの運営方針に疑問が生じてしまったりで、結局閉鎖。

もともと本家のメインコンテンツが写真だし、当時はまだfotologも使っていたし、このココログでも写真を載せることはできるので、このうえさらにPhotoblogを作っても管理が大変だーと思ってしまったのです。それにNucleusって、phpとかプログラミングの知識がある人がどんどんカスタマイズするにはおもしろいツールだと思うけど、私にはちょっとつらかった。

そして3回目はMovableTypeに再挑戦。バージョンは3.171-ja。また再構築に失敗するのかなー?と、おっかなビックリ作ってみたけど今度はすんなりできました。これまた拍子抜け。やっぱり正式日本語化以前のバージョンはバグでもあったのかねえ。

渡りに船

1970.01.01 Thursday 08:59 by abetomoMovableType|-|-

最近、MySQLサーバが重くてブログの更新がままならないので、SQLiteに移行しようと思っていたところへ、ロリポップからデータベースサーバー増強のお知らせがきた。

やったー。これでちょっとは軽くなるかな?移行するのも結構面倒くさいし、さくさく動くようになるんだったらこのままでもいいや。ひとまず様子を見てみよう。

MySQLのエラーにビビる

1970.01.01 Thursday 08:59 by abetomoMovableType|-|-

夜12時頃、ブログにログインしようとしたらこんなエラーメッセージが出た。

Got an error: Bad ObjectDriver config: Connection error: Lost connection to MySQL server during query


うひー、またまた見たこともないエラーが!
再度ログインしても同じメッセージが出るし、そのうちログイン画面自体が出てこなくなってしまった。

MySQLサーバのエラーらしいことは分かったけど・・・まさかデータベースが壊れたか!?でもブログはちゃんと表示されているし。

検索してみたら、どうもMySQLサーバへのアクセスが集中していて一時的に接続できないか、サーバ側がなんらかのエラーを起こしているか、いずれにせよデータベースが壊れたとかそういう問題ではなさそうだった。

まあ、夜中はブログを更新しようとする人も多いだろうし、アクセス集中で落ちることはあり得るなあ・・・。

ということで、朝になってからログインしてみたら問題なく動いた。どうやらロリポップではたびたび起きているエラーらしいので、忘れないように書き留めておこう。

共通部分をモジュール化

1970.01.01 Thursday 08:59 by abetomoMovableType|-|-

すっかり連載のようになってしまったMovableType構築記の続きです。

そもそもサイドメニューなどの共通部分をインクルードしたくてPHP化することにしたのだ。ここからがカスタマイズの本題なのである。


前回こんなこと言ってたんだけど、またしてもつまづいてしまった。

<? include("/xxx/sidemenu.php");?>のような感じでアーカイブテンプレートにインクルードを記述して再構築しても、アーカイブページにはさっぱり表示されないのだ。

パスの設定(/xxx/のところ)が間違っているのかと思っていろいろ試してみたけど、フルパスにしても相対パスにしてもやっぱり表示できない。インデックス・テンプレートのアーカイブの拡張子をphpに変えてもダメだった。

ならばメインページはどうか?と、メインページのテンプレートに記述して再構築したら、ちゃんと表示できた。ということは、sidemenu.php自体はちゃんと構築できているらしい。

そこでMTInclude moduleでアーカイブテンプレートに記述してみると、今度は表示できた。まあ、これはPHPじゃなくても使えることは確認していたので当然だろうけど。

これはどういうことかと調べてみると、「ダイナミック・パブリッシング導入法」(HINAGATA)に、こんなことが書いてあった。

PHPなどで外部ファイルをインクルードしていると、そのままでは動的に生成できません。外部ファイルをインクルードしたい場合は、MT管理画面のテンプレート管理の一番下にあるテンプレート・モジュールでモジュール化し、以下のようにしてインクルードします。


あれ〜?もしかして、PHP化することと、ダイナミック・パブリッシング機能を使えるようにすることって別なのか??PHP化=ダイナミック・パブリッシングだと思っていたんだけど、PHPインクルードにするには拡張子を「php」に変えるだけで良かったのか?

ダイナミック・パブリッシングを導入するとき、再構築オプションで「アーカイブのみダイナミック」を選択したんだけど、ということは、メインページはダイナミック生成をしていないからPHPインクルードが使えて、アーカイブページはダイナミック生成をしているからPHPインクルードが使えない、ということなんだろうか。

よく分からないけど、きっとそうなんだろう。

ダイナミック生成をする限り、結局MTIncludeを使ってインクルードするしかないらしい。まあ、PHP化したおかげで、テンプレート・モジュールでモジュール化した部分を更新すれば即反映されるようなので、別にMTIncludeでもいいんだけど(スタティック生成のときは、再構築しないと更新した内容が反映されなかった)。

というわけで、メインページだけPHPインクルードにしても仕方ないので、共通部分のインクルードにはMTIncludeを使うことにしよう。あとはカテゴリページの分割か。

MySQL移行に成功、いよいよPHP化

1970.01.01 Thursday 08:59 by abetomoMovableType|-|-

MTが復活したところで、再びMySQLへのデータベース移行を試みた。

今度はサブカテゴリがない状態(親カテゴリのみ)にしておき、一回インポートした記事も削除してテストエントリーを3本ほど残した状態で作業した。

ロリポップの手順通りデータベースを作り、mt.cfgとmt-db-pass.cgiを書き換え、転送。そしてmt-db2sql.cgiにアクセス。待つこと数秒・・・

Done copying data from Berkley DB to your SQL database!


というメッセージが出た。成功したらしい。やった!・・・長い道のりだった。

いやいや、これで終わったわけではない。次はダイナミックパブリッシングの導入だ。

ロリポップの「MovableType3.1のダイナミックPHPページ生成を使用する場合」の手順に従い、以下の作業をする。


  • ブログのディレクトリにtemplates_cフォルダを作る

  • MTにログインして、「再構築オプション」で「アーカイブのみダイナミック」を選択、保存

  • インデックス・テンプレート一覧の「ダイナミック・テンプレート用起動スクリプト」を選択、保存



これだけである。あっけない。ちなみに.htaccessは自動生成されるので、特に作る必要はなかった。

さて、試しにテスト記事を投稿してみると、処理にかかる時間が劇的に短くなっていた。まあ、記事をほとんど削除したのでデータ量が少ないということもあるだろうけど、それにしても早い。この後も、テンプレートを変更して再構築するたびに処理の早さを実感した。ちょっと感動。

ちなみに、最初のテスト投稿のときは拡張子が「html」のままだったんだけど、今後のことを考えて「php」に変更した。

続・MovableType奮闘記

1970.01.01 Thursday 08:59 by abetomoMovableType|-|-

前にインストールしたのを全部削除して、もう一回マニュアル通りまったく同じディレクトリ設定でMovableTypeを入れ直してみた。

特に問題なく、最初の再構築も成功。
CSSとMAIN INDEXのテンプレートも替えてみたが問題なし。
テストエントリーも・・・ちゃんと投稿できた。

カテゴリを作って、カテゴリを選択して投稿・・・と、ここでエラー発生。
一度エラーになったあとは、何をしてもエラーが起きる。

そこで、エラーになった記事を全部削除して、今度はカテゴリを何も選択せず投稿してみた。
すると、問題なく動くことがわかった。

ということは、カテゴリを作ったことに原因があるのか?
でもカテゴリ作れなかったら意味ないじゃん!

もう〜イヤになってきた〜。
今度はNucleusでも試してみようかな?

とか言ってるうちに、MovableType日本語版がリリースされてた。
うぬぬ。

MovableType 日本語サイト
Nucleus 日本語サイト

profile

最近の記事

写真たち

abetomo
携帯百景 - abetomo
www.flickr.com

息子の本棚

カテゴリ

アーカイブ

最近のコメント

  • はじめての運動会
    sea
  • 育児の悩み:トイレトレーニング編
    Horka
  • ナナン、落ちる
    sea
  • 明日は入園式
    abetomo
  • 息子、突発性発疹にかかる
    突発性発疹.com
  • 1歳になりました
    abetomo
  • 1歳になりました
    abetomo
  • 生後10ヶ月
    abetomo
  • 怒涛のように過ぎた8月
    abetomo
  • 怒涛のように過ぎた8月
    abetomo

リンク

search this site.

others

sponsored links

powered

無料ブログ作成サービス JUGEM