でも、上手くいかないんです。
原因は直接MySQLを更新してしまったから?
それだけではないと思うのですが....
エラーがでます。
原因がわかりました(笑)
MySQLなんて、ぜんぜん関係なくって、
ウェブログの設定>アーカイブの設定>アーカイブ のカテゴリーがチェックされていないままでした。
これじゃいくら、データで「関連づけるよ」といっても駄目なんですね....。
データ側(MySQL)でのカテゴリの関連付けは下記の方法でOKでした。
ただ、管理画面から一括更新できるようになっていることにあとで気付きました。
私の環境ではDBを更新したほうがうんと速いですが、管理画面がサクサク動く環境でしたら、そちらで更新されるとよいと思います。
(というかそちらのほうがまっとうなやり方だと思います。)
SQLでのカテゴリとエントリーの関連付けの覚書
mysql> select category_id,category_label from mt_category;
+-------------+--------------------+
| category_id | category_label |
+-------------+--------------------+
| 1 | MTについてあれこれ |
| 2 | セキュリティー |
| 3 | MyAudi |
+-------------+--------------------+
3 rows in set (0.00 sec)
※mt_entryテーブルのentry_category_idをすべて1に更新した後、うまく
表示されなかったので、検索してみました
mysql> select entry_title,entry_category_id as cat_id
-> from mt_entry;
+-------------------------------------------------------------+--------+
| entry_title | cat_id |
+-------------------------------------------------------------+--------+
| Movable Type 3.0 Developer Edition日本語版ベータ 設定時メモ | 1 |
| コメントのプレビュー の問題、 画像のサムネイル | 1 |
| スタイルシート | 1 |
| (続)スタイルシート | 1 |
| コメントプレビューの不具合修正について | 1 |
| formmail.cgiのセキュリティホールを狙った攻撃 | 1 |
| MySQLへの移行..あれこれ | 1 |
| 今後の課題....文字コード変換など | 1 |
| 文字コードの変換をやってみた | 1 |
| 内部はEUCでも、Webサイト側はUTFで構築...って出来ない? | 1 |
| 最近のコメント? | 1 |
| MT3.0DEのコメント登録エラー | 1 |
| 文字コード、UTF-8に戻そうかな? | 1 |
| とりあえずはEUC-JPのままで文字化けを修正 | 1 |
| ブログ名を変えてみました | 1 |
+-------------------------------------------------------------+--------+
15 rows in set (0.01 sec)
※mt_placementというそれらしきテーブルをみつけました。
mysql> describe mt_placement;
+-----------------------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+------------+------+-----+---------+----------------+
| placement_id | int(11) | | PRI | NULL | auto_increment |
| placement_entry_id | int(11) | | MUL | 0 | |
| placement_blog_id | int(11) | | | 0 | |
| placement_category_id | int(11) | | MUL | 0 | |
| placement_is_primary | tinyint(4) | | MUL | 0 | |
+-----------------------+------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)
mysql> select * from mt_placement;
+--------------+--------------------+-------------------+-----------------------
+----------------------+
| placement_id | placement_entry_id | placement_blog_id | placement_category_id
| placement_is_primary |
+--------------+--------------------+-------------------+-----------------------
+----------------------+
| 1 | 16 | 1 | 1
| 1 |
+--------------+--------------------+-------------------+-----------------------
+----------------------+
1 row in set (0.00 sec)
※やっぱりコレだということで、追加登録しました。
mysql> insert into mt_placement
-> (
-> placement_entry_id
-> ,placement_blog_id
-> ,placement_category_id
-> ,placement_is_primary
-> )
-> select
-> entry_id
-> ,1
-> ,1
-> ,1
-> from mt_entry
-> where entry_id != 16;
Query OK, 14 rows affected (0.00 sec)
Records: 14 Duplicates: 0 Warnings: 0
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
※2004.08.01 追加
文字コードをUTF-8に変更しました。
そのため、↑のSQLの表示の□の部分が崩れてしまっています。
ブログ名は、管理画面からどうやって変更するのかわからないのですが、
Databaseの中を変更すれば変わるんじゃないかと思っていました。
※やってみたら変わりました(笑)
文字コードをUTF-8に戻してしまったら、EUC-JPなMySQLからは上手く更新できなくなってしまいます。
それで、エイヤっと変更してみました。
「はじめてのウエブログ♪」から「はじめての」は取ろうかなと考えていたのですが、そのほかには何も思いつきませんでした。
だからとっても安易なブログ名...。megu's blogになりました。(これならUTFでも見えるし!笑)
「はじめての」が取れたといっても、いつまでたっても進歩していないんですけれどね....私。
もっともっとテンプレートとか見なくちゃいけないし、管理画面もいろいろさわってみればいいの、わかっているけれど...。
さて、ブログ名の変更方法です。
MySQLの場合ですが、mt_blogというテーブルの、blog_nameという列を更新します。
下記は、"はじめてのウエブログ♪"というブログ名を"megu's blog"に変更した例です。
mysql> update mt_blog
-> set blog_name = 'megu''s blog'
-> where blog_name = 'はじめてのウエブログ♪';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0mysql> commit;
Query OK, 0 rows affected (0.00 sec)
実際にこの更新を行った後、管理画面にログインすると、新しいブログ名が表示されます。
サイトの再構築をすれば、サイトにも反映されます。
P.S.
リンクしてくださっている方、ブログ名がかわってごめんなさい。
これからもどうぞよろしくお願いいたします。
文字コードをUTF-8に戻す前のstepとして、
とりあえずは以前、UTF-8からEUC-JPに変換した際に文字化けしてしまった分を修正してみました。
もうコンテンツ中の表示できない文字(†)はなくなっているはずです。
修正対象は「〜」と「−」の二文字ありました。
どちらもCP932の変換テーブルの相違が原因だと思いますが....。
今後UTF-8に戻したなら、
入力→保存→表示
がすべてUTF-8で行われるので変換上の問題はなくなると思います。
ただ、TrackbackのリクエストがEUCでPOSTされてきた場合の変換には問題が残るかもしれません。
(これは、変換後に試してみます。)
いったん、EUC-JPに変換した文字コードですが、所々に不都合も見られるのでUTF-8に逆戻りしてみようかなと考えつつあります。
OSやDatabaseと同じ文字コードを使うようにすればメンテナンスが楽かなと考えたのですが、直接メンテというのもめったにないことだと思うし....
#そうそう、できればMySQLに登録したコンテンツをBerkeleyDBに戻したいです。(理由はバックアップがカンタンだから....だけではないけれど)
考えている戻し方は、そんなに難しくはありません。
前回と逆のことをやるだけ。
(1)mysqldumpでMySQLからデータをInsert文として出力する。
(2)出力されたInsert文をnkfコマンドで、UTF-8に変換する。
(たぶん、これがいちばんうまくいくと思います。前回もnkfコマンドによる変換では〜の文字化けも発生しませんでした。)
(3)いったん、テーブルを初期化し、その後変換後のsqlを実行する。
(4)mt.cfgのPublishCharsetをUTF-8に戻す。
やればすぐ(のはず)なのに、なかなかできないのは、私だから....(笑)。
#MySQL→BerkeleyDBの移行方法はまだ調査中デス。
Movable Type 3.0 Developer Edition日本語版、出ましたね。
なぜかあまり話題になっていないような気がするのですが、私のテストサイトではコメント投稿でエラーがでるので、まだこちらの入れ替えに踏み切っていません。
#MT3.0DE正式版に乗り換えになられた皆様
コメントの登録が失敗しました:
The validation failed.
なんてのが、出ませんか??
これ、最初のベータ版には出なかった現象で、ベータ2からではじめたんです。
本当は.....私がもう少しわかってきて...
「はじめての」が取れる頃に、毎日毎日viエディタでごりごりと編集しているメインサイトをMT化して楽しちゃおうとも思っているのですが、そこまで到達するにはもうしばらくかかりそうです。
(追記 2004.07.27)
この問題に関して、コメントをいただき、テンプレートの差し替えが必要なことがわかりました。
#(o)さん、いつもありがとうございます!
前に出ていたコメントのプレビューの問題もあわせてクリアされるわけですね!
今度、正式版に乗り換えたいと思います。
それから、(私のことだからいつになるかわからないけれど....もう、すみません)メインサイトのMT化もやっぱりやりたいです。
今日、トップにな〜んも表示されていないことに気付きました。
長らく更新していないからだなぁ....とは思ったけれど、
「んじゃ、INDEXが更新されたトリガはなんだったのだろう?」
と思いました。
コンテンツの中から更新されたファイルを探しました。
おぉ〜!!見つかった!!
ありがたく、トラックバックしていただいていました。
#本当にどうもありがとうございます....こんなつたない場所にトラックバックしていただいて...m(_ _)m
ところで....
(本当に、私って....タコで、申し訳ないのですが、)
コメントをいただいたり、トラックバックしていただいた場合、デフォルトのテンプレートのまんまで右下あたりに「最近のコメント」とか、「最近のトラックバック」とか、表示されていたような気がしたのですが、本当のところはどうでしたっけ??
「もしかして少し前にリンクを付け足したときに消しちゃった?」
とか思って、過去のバックアップをひっくり返してみたけれど、やっぱり「最近のコメント」なんてのは存在しなかったです.....(思い違いだったのかしら??)
セキュリティーの問題... 普段から/var/log/secureなどチェックするように心がけているのですがひとつ解決すると、またひとつ...?
今度は、apacheのerror_logにいっぱいいっぱいログが残っているのを発見しました。
(気付くのが遅いって...)
なぜかrefererが http://blog.kiyo.com (つまりここのサイト)になっているので関係ないとも思われず、こっちにアップすることにしました。
/home/blog/public_html/shop, referer: http://blog.kiyo.com/
[Sun Jul 04 21:08:57 2004] [error] [client 192.146.226.29] script not found or unable to stat
: /var/www/cgi-bin/formmail.pl, referer: http://blog.kiyo.com/
[Sun Jul 04 21:08:59 2004] [error] [client 206.204.190.4] script not found or unable to stat
: /var/www/cgi-bin/contact.cgi, referer: http://blog.kiyo.com/
[Sun Jul 04 21:09:04 2004] [error] [client 207.127.8.2] script not found or unable to stat
: /var/www/cgi-bin/mailform.pl, referer: http://blog.kiyo.com/
[Sun Jul 04 21:09:06 2004] [error] [client 209.184.108.162] script not found or unable to stat
: /var/www/cgi-bin/formmail.cgi, referer: http://blog.kiyo.com/
[Sun Jul 04 21:09:08 2004] [error] [client 12.104.198.106] script not found or unable to stat
: /var/www/cgi-bin/FormMail.pl, referer: http://blog.kiyo.com/
[Sun Jul 04 21:09:29 2004] [error] [client 66.193.160.126] script not found or unable to stat
: /home/blog/public_html/mail.cgi, referer: http://blog.kiyo.com/
[Sun Jul 04 21:09:30 2004] [error] [client 216.23.208.220] script not found or unable to stat
: /home/blog/public_html/mail.cgi, referer: http://blog.kiyo.com/
[Sun Jul 04 21:09:31 2004] [error] [client 213.69.149.153] script not found or unable to stat
: /var/www/cgi-bin/fmail.pl, referer: http://blog.kiyo.com/
[Sun Jul 04 21:09:32 2004] [error] [client 63.160.254.40] script not found or unable to stat
: /var/www/cgi-bin/form.cgi, referer: http://blog.kiyo.com/
単純な私は、
「MT3.0が生成したhtmlにそんなリンクがあるのかぁ??」
っと、思わずblog.kiyo.com以下のディレクトリを"formmail.cgi"とかでgrepしちゃいました。
でも、ヒットしなかったんです。(当然です!笑)
/var/www/cgi-bin/formmail.plとか
/var/www/cgi-bin/contact.cgiとか
ありそうだけれど、私は置いてないですもん〜笑。
ヒットしなくてもreferer....っということは『でっちあげ』ということですね。
(でなければ、ブラウザのいたずら??それにしては件数多すぎ。)
これはもう故意のアタックとしか考えられないです。
ネット検索してみたら下記のサイトが見つかりました。
FormMail hall of shame
わぁ〜〜、さらされちゃってる!!
やっぱりformmailのセキュリティホールを狙ったアタックだったのですね。
この方は、あったまきて(?)、偽のスクリプトを作っちゃったみたいですね。
そこにPOSTすると、上記のサイトみたいにさらされちゃうワケですね......わぁよくできてる!!
ただのerror_logだと、POSTされた内容はわからないんです....。
(以前はAccessMethodがGETだったようで内容がつかめたみたいですが、敵もさるもの?上のアクセスはPOSTで来ています。)
だからformmail.cgiを設置して、内容を取り込むのは正解だと思います。
自分宛てに詳細のメールを出すように仕込むなんて、すごすぎ。
(私に性格が似ていると思うけれど、実行にうつしちゃうところがすごいです。)
考えることは皆同じ?
私も身に覚えあるけれど...(笑)
というか、上のログでもIPを消していないので、同じことの一部をやってしまっているワケですが。
でも、FormMail攻撃は悪質ですからこのくらいやってもいいと思います。
blog.kiyo.comがターゲットにされたということは、blog.kiyo.comは、www.kiyo.comよりも露出度が高いのでしょうか?
まだまだ試験サイトなのに....。
やっぱりblogはメジャーなのかもしれません。
気をつけないと。
原因はわかったけれど、さて...どうしていいものか。
今はとても忙しいし、でもちょっと考えておきます。
なぁんて悠長に考えていたけれど、パスワード保護している親ばかサイトの中に問題のMatt Wrightのformmail.cgiスクリプトを発見!
とりあえずあわてて直したのでした。
応急処置ですが、recipientを外部からパラメタで受取るのをやめて、固定にしちゃいました。
....って、よく考えてみたら、パスワード保護しているんだから修正は必要なかったかもしれないけれど(笑)。
※kiyo.comサイト開設時、まだ世の中にはフリーのスクリプトもほとんどなくて、Matt Wrightにはかなりお世話になったのです。
