ご無沙汰してます。
いやはや。
そんなつもりは無かったんですが...。
DBサーバの移行に手間取っていたので、こんなに開いてしまいました。
今後は、また、ちゃんと更新していくつもりです。
しかし、4.0→4.1では、何が変わったのかいまいちわかっていません。
もう少し使い込まないと...。
まぁ、所詮βなんですが...。
どうやら、前回投稿しておいたβ3のエラー
Statement has no result columns to bind (perhaps you need to successfully call execute first) at lib/MT/ObjectDriver/DBI.pm line 120.
元々のバージョンは...
MySQL : 3.22
DBD:mysql : 2.90003
でした。
MySQLを4.1にアップグレードして、エラー自体は出なくなりました。
しかし、再構築に相当な負担がかかる模様で、一切無反応になってしまいました。
1晩明けて、今先ほどDBDのアップグレードを実施。
4.005になりました。
こちらはCPANを利用。
比較的快適になった気がしますが、やはり、再構築に時間はかかりますね。
しょうがないのでしょうか?
参考までに簡単な手順。
MySQLはstopしてからrpmアップグレードを実施しました。
Bundle::DBD::mysqlをinstallしたら、エラーが出た物の、forceで実施して完了。
こちらもhttpdはstopしてからでないとまずいみたいです。
いずれにしても、Google等で大量に資料になるサイトがありました。
アップデートしてみました。
しかし、エラー頻出。
解決できた物は他のサイトにも載っているので割愛するとしても、以下のエラーはどうしようもありません。
Statement has no result columns to bind (perhaps you need to successfully call execute first) at lib/MT/ObjectDriver/DBI.pm line 120.
どうしたモンでしょう?
これは、未だ解決できていないようなんですが、再構築で登場してしまうと、どうしようもないわけですね。
困りました。
脆弱性に対するバージョンアップとのことです。
2006.09.26に発表されていましたが、今日やっとアップデートできました。
クロスサイトスクリプティングの脆弱性とのことですが、「クロスサイトスクリプティング」ってなんだ?って話で。
簡単に言うと、データのやりとりの中で、一部が悪意のあるスクリプトに書き換えられ、閲覧者だけでなく、サーバにも攻撃を与えるというもののようです。
それだって、わかりづらい。
じゃぁ、とりあえず、対策方法だけでも。
それは、記号類をHTMLタグに変換すること。
<を<に変換するとか、>を>に変換するとか。
そういうことですよ。
それだけで対応できるのなら、自分の作ったスクリプトも確認してみる必要があるという感じですね。
とりあえず、動作は前と変わってないですね。
イマイチ何処が変わったのかわからないマイナーアップデート。
所詮マイナー。されどマイナー。
割と、細々としたところの指摘があったようで、どれもこれも使っている人たちが見つけたバグを修正したような様子です。
もちろん、このブログもアップデートしました。
今までの緑系から赤系に変更しました。
最初の青から、緑、そして、赤です。
今のところ見慣れない感じですが、そのうち慣れたら何も変な感じがしなくなるんじゃないかと踏んでいます。
しばらくの辛抱?
エントリーとしては記載していませんでしたが、MT 3.2-jaにしていました。
そこからのマイナーバージョンアップ。
しかし、ブログ・メニューは相当変わりました。
簡単に言うと、最近のエントリーと最近のコメントと最近のトラックバックが縦に並んで表示されるというモノ。
私としては大変バランスが悪いような気がします。
もしかして設定で変えられるのでしょうか?
はて。
そして、リビルド系の動作をすると、どうやらハングアップに近いことが起こります。
何が原因なのでしょうか?
...ちょっと調査してみようと思います。
[追記 2006/07/31 00:35]
データベースをBarkley DBからMySQLへと移行しました。
また、こちら [Ogawa::Memoranda]に記載されている内容で対応したりしたら、かなり速くなりました。
データベース移行も純正のモノでは対応できず、こちら [Ogawa::Memoranda]に書いてある方法で対処しました。
いずれも、大変参考になりました。感謝です。
久々にMTのバージョンアップを行いました。
マイナーバージョンアップばっかりだったのを、多少なりとも、メジャーバージョンアップしてくれたので、対応を。
しかし、3.15-jaから3.2-ja-2に変えただけなのに、リビルドがうまくいかなくなってしまったのです...。
Premature end of script headers: mt.cgi
調べてみると、同時にリビルドするエントリーの数次第で調整可能なんだとか。
というわけで、mt-config.cgiの
# EntriesPerRebuild 40
EntriesPerRebuild 20
というわけで、しばらくはこれで。
このページを3部構成にすることにしました。
せっかく社会人になるし、ほら、ちょっと気分を変えて。
それは、こんな感じです。
gar vi -f -r now
このページ。今まで通り項目に対して思うことや考えること、知った情報などを紹介していきます。
gar vi -f -r photo
写真を載っけるページです。写真ばっかりです。見たい方はどうぞ。
gar vi -f -r diary
日記です。つれづれなるままに書いていくので、大変なことになるかもしれません。
そんなわけで、25日からはこの3部構成で行こうと思います。
diaryについてはこの記事をアップする段階で何もありませんが、そのうち増えていくことになります。
これからもどうぞよろしくお願いします。
Six Apart社はMovable Typeのマイナーバージョンアップ版となる、バージョン3.15-jaをリリースしました。
今回は3.15-enに合わせる内容となっており、細かな不具合が修正されている様子。
3.121までにあった脆弱性の問題も解決されており、今回のバージョンアップにて対応することが可能となっている。
3.14-enのリリースがあったものの、3.14-jaは脆弱性対応に合わせたためかリリースが無い。
このサイトでは、今回のバージョンアップに対応していきます。
「脆弱性」って「ぜいじゃくせい」って読むんですね。てっきり「きじゃくせい」だと思ってました。
と、そんな話はさておいて。
Six Apartは既に出荷・配布済みのMovable Type全バージョンにおいて、スパムメールの幇助をしている可能性がある脆弱性を発見し、その対応方法と対処済みのマイナーバージョンアップ版であるバージョン3.122-jaの提供を開始しました。
以下はmovabletype.jpからの転載です。
Movable Typeの脆弱性により、スパムメールの送信を幇助してしまう現象が発生することが分かりました。出荷済みのすべてのMovable Type日本語版に、この脆弱性があることが確認されました。対策を施したMovable Typeの新版(バージョン3.15)を出荷する予定ですが、同時に出荷済みのMovable Type(英語版バージョン2.6x、日本語版バージョン3.01D、日本語版バージョン3.121)において、この脆弱性を回避するための方法(専用プラグイン・ソフトのインストール)を公開いたしますので、すみやかに対処をいただければと考えております。
Movable Type 3.122の提供を開始しました。Movable Type 3.122はMovable Type 3.121のマイナー・バージョンアップ版です。 2005年1月25日に発表しました「 Movable Typeの脆弱性」の対策を適用したものです。
おそらく、前者の「バージョン3.15」とは英語版の事を指していると思われます。今のところ、日本語版の最新版はバージョン3.122-jaとなっています。
また、プラグインにて対応する場合、「使用可能なプラグインの設定」には名前が出てこない仕様になっている様子。これは旧バージョンのMTに対応しているためとのこと。しっかりとアナウンスされているので確認されたい。なお、インストール方法などの情報はこちらに記載されているのでご確認をお願いします。
プラグインにてバージョンアップ分の対応が完了しますが、このサイトでは今回のバージョンアップに対応します。
参考にしたのはMobile-bozuさんとはぢめのページさんです。
#陳謝>両ページオーナー様
さて、まずはMobile-bozuさんのところで公開されているmail-entryを適当なディレクトリにコピー。cgiは実行できる適当なパーミッションへと変更。
そして、メールアカウントを設定。新しくモブログ用に作ります。これは何かのやりとりには利用しないメールアカウントが必要だからです。これは、モブログに反映される・されないを問わず、無条件に受信したメールが処理されて消去されるため、必要なメールでさえ消去されてしまうからです。
そして、mail-entry-config.cgiを利用して初期設定。
パスワードは初期値で「passpass」になっている。
パス指定は極力絶対パスで設定するのが賢明。なぜなら後々mail-entryのディレクトリ位置を変更しても動作するからです。ただし、違うサーバへ移動したりなどなど、相対的な位置は変わらないものの絶対的な位置が変わってしまう予定があるなら、相対パスでも良いでしょう。
メールの設定は同じサーバなら「localhost」でOK。
受け入れのメールアドレスも大文字小文字を合わせてしっかりと設定しましょう。
#自分は大文字のドメインで設定しているので、一回はじかれました。
もし、携帯からの投稿で署名が自動添付されるおそれがあるのならば、署名削除の部分の設定もお忘れ無く。
ちなみに、私のサーバには「MIME::Parser」が無かったので、コマンドラインにて「perl -MCPAN -e 'install "MIME::Parser"'」(シングルクォーテーションとダブルクォーテーションの位置に注意!)とすることでインストールができます。途中の問い合わせは通常YesでOK。
これで、インストール自体は完了。
新しく設定してあるメールアカウントへ以下の書式でメール送信しましょう。
宛先:スクリプト内で設定したメールアドレス
件名:メールからエントリー!
本文:
<(投稿者ID)>
<(カテゴリ名)>
ここに本文を書く
<extend>
ここから追記として扱われる
ここで、問題がありました。
私のページでは「概要(excerpt)」の部分がトップで表示される仕組みをとっていて、「追記(extend)」が入力できることよりも、「概要(excerpt)」が入力できることの方が重要です。
と、ここで登場するのがはぢめのページさんの処置方法。
私はメールの詐称云々、うまく利用してしまう質なので特に対処せず。
行数が一部違っているのを修正しながら以下に一部転記しながら解説。
●mail-entry.cgi 13行目以降(変数定義の中にあればどこでも良い。)
<excerpt>で分割するために一つ変数を用意。今回はmyで指定。名前は$expseparetekeyとする。
my $trackback_separater = "";
my $eofkey = "";
my $exseparatekey = "";
my $expseparatekey = "<excerpt>";
my $cr_cut = 0;
my $hady_phone_domain = "";
my $title_head = "";
●mail-entry.cgi 147行目あたり以降(追記処理の後ろに追記する。)
投稿されたメールの「<excerpt>」以降を概要として処理するためのスクリプトを追記。
#概要部分を取り出し、本文からは削除
$expseparatekey = Jcode->new($expseparatekey)->$to_jcode();
if($mail_body =~ s/(.*)\n${expseparatekey}\n(.*)/$1/s ) {
$excerpt = $2;
}
●mail-entry.cgi 465行目あたり以降(新規エントリー処理に追記)
エントリーを作るときに概要を処理させる。
$entry->title($title);
$entry->text($comment);
$entry->text_more($ex_comment);
$entry->excerpt($excerpt);
●mail-entry.cgi 582行目以降
結果表示文にも概要を表示処理するために追記。
Rebuild Entry ...<br>
title: $title<br>
date: $create_date<br>
category: $mycategory<br>
author: $myauthor<br>
comment: <pre>$comment</pre><br>
excerpt: <pre>$ex_comment</pre><br>
Great!!<br><br>
以上で、私の環境ではうまくいきました。
ただし、概要に写真を貼り付けると言うことはできません。それは、見やすいサイズへと変換するのに実際どうしたらいいのかというのがいまいち固まっていないから、処理を考えているところです。実装するかどうかはわかりませんが、この際、このままでも良いかなと思っています。細かいことはPCから処理した方が良いに越したことはないので。
ちなみに、お気づきの通り、私のトップページでは写真が2箇所に表示される場合があります。もちろん、最近のエントリーの部分と「写真」と書かれている、最近の写真投稿の部分です。この2箇所がサイズに差を持っているため、それぞれで写真のサイズが正当な大きさになるように見ながら調整することも重要です。間違っても100%なんて指定をしたら、ど真ん中にどでかく写真が表示されてしまうことがあるので、「写真」の方だけを考えるわけにはいきません。かといって、widthを100pxに固定してしても、heightが変わってくれなければ意味がないわけで...。
いずれにしても実装したらここに追記するつもりです。
[追記 2005/01/17 17:10]
そういえば、どうすれば実行できるのかを書き忘れました。
Webブラウザから、mail-entry.cgiを呼び出せば実行できますので、手動実行するならそれで十分。
ただし、リビルドに時間がかかる場合があります。しょっちゅう携帯からcgiを実行させていたのではパケット代がかなりかかってしまうかもしれません。
その時はCronを利用します。
インストールされているかを確認するにはシェルスクリプトで「which crontab」とします。ディレクトリが表示されれば実行可能です。そうでなくて、「/usr/bin/which: no crontab in (/usr/lib/courier-imap/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin)」などと表示されたらcronは入っていません。自分で管理するサーバなら、自分でインストールを行っても良いと思います。それはこの場では紹介しません。
無事にインストールされているようであれば、シェルコマンドで「crontab -e」とするとcronの設定ファイルエディタが起動します。使い方はviと同じです。文字挿入を開始するなら「i」のキーを押します。書き終わったら、「esc」で抜けます。その後保存して終了するには「:wq」と打ってエンターキーです。もし、失敗して保存したくないのであれば「:q!」です。
たとえば5分ごとに実行するなら
*/5 * * * * cd /home/user_name/directory/to/the/mail-entry/ ./mail-entry.cgi
!注意!:このまま入力したりしないように。ちゃんと自分のディレクトリに書き換えること。
[追記 2005/01/17 18:00]
意外と簡単に概要に画像表示ができるようになりました。
私が画像表示を躊躇ったのは自動で画像サイズを変換できるシステムがサーバにないためです。
ということで、以下の内容を追記しました。
●mail-entry.cgi 147行目以降
概要に入れるための画像出力タグ保存用の変数をmyで宣言。
my $title = "";
my $comment = "";
my $exp_comment = "";
my $ex_comment = "";
my $excerpt = "";
●mail-entry.cgi 259行目以降
サムネイルを作らない設定にしてあるので、ここで、概要に付け足すべき画像出力タグを作成する処理を追記。
# サムネイルを作成しなかった時
$comment .= img({
src=>$imgpath."/".$filename,
width=>$width,
height=>$height});
my $exp_height = int($height * 160 / $width);
$exp_comment .= img({
src=>$imgpath."/".$filename,
width=>"160"});
●mail-entry.cgi 422行目以降
概要部分の出力に画像タグを付け足して出力する処理を追記・変更。
#概要部分を取り出し、本文からは削除
$expseparatekey = Jcode->new($expseparatekey)->$to_jcode();
if($mail_body =~ s/(.*)\n${expseparatekey}\n(.*)/$1/s ) {
$excerpt = $exp_comment;
$excerpt .= $2; # "="ではなく".="になっているので注意!
}
これだけで、大丈夫でした。
画像は「写真」ゾーンが160pxでちょうど良くなることを良いことに、幅だけ明示的に設定して割り算かけ算。そして、その値をint(整数)型にキャストそれで高さを割り出してます。意外とうまくいっちゃってちょっとショッキングですけど。
[追記 2005/01/18 09:10]
Cronに関しての追記です。
どうやら上記の方法でCronを設定すると、毎回毎回、実行結果のメールが届いてしまうようです。これは困りもの。実行されていることを確認する意味ではDebugに使えるんですが、これが、5分ごとに送られてくるとなると、常にどこかでメール受信をしてなければかなり大変。
と言うわけで、以下のように書き足しました。
*/5 * * * * cd /home/user_name/directory/to/the/mail-entry/; ./mail-entry.cgi > /dev/null
!注意!:一行にまとめて書くこと。改行すると保証はありません。
[追記 2005/01/21 01:20]
html出力に関するCGI修正の追記です。
私は画像を先に持ってくるのが好きなので、(というか今までそうなっていたので)そういう風に出力してもらう必要がありました。さらに、今までのCGIではサムネイルを作成しなかったときに横幅が160px未満でも横幅を160pxにしようとするため、意図しない拡大が起こる可能性があり、不都合があるため、修正をしてみました。ついでにサーバマシンの移行とともにPerlモジュールを入れて、ImageMagick (PerlMagick)で処理できるようにしました。そのため、サムネイルを作成した場合の処理も変更をしてみました。
変更箇所は以下の通りです。
●mail-entry.cgi 257行目以降
# HTMLの作成
if ($sumfilename eq "") {
# サムネイルを作成しなかった時
$comment = img({
src=>$imgpath."/".$filename,
width=>$width,
height=>$height}) . $comment;
if ($width > 160) { # 横幅が160px以上の時だけwidthを160pxにする
my $exp_height = int($height * 160 / $width);
$exp_comment .= img({
src=>$imgpath."/".$filename,
width=>"160",
height=>$exp_height}) . $exp_comment;
} else { #そうでなければそのままのサイズで表示する
$exp_comment = img({
src=>$imgpath."/".$filename,
width=>"$width",
height=>$height}) . $exp_comment;
}
} else {
# サムネイルを作成した時
$comment = a({ # ".="が"="に変更になっているので注意!
href=>$imgpath."/".$filename,
target=>"_blank" },
img({
src=>$imgpath."/".$sumfilename,
width=>$sw,
height=>$sh })) . $comment;
$exp_comment = a({ # ".="が"="に変更になっているので注意!
href=>$imgpath."/".$filename,
target=>"_blank" },
img({
src=>$imgpath."/".$sumfilename,
width=>$sw,
height=>$sh })) . $exp_comment;
}
元々、文字コードがEUC-JPだったのをUTF-8に変更しようと思い立って、実際に作業してみましたが、かなりややこしい。こちらのブログを参考にさせてもらったモノの、さすがに1年前の資料では違いがありすぎたようだ。
というわけで、今の時期にそのような作業をする人がいるとすれば...と考えて、ここにメモとして残しておこうではないか。
これで完了のはず。バックアップの改行コードのおかげで全くインポートできなかった。(汗)
今のところは順調なので、期待しておこう。
これで多言語対応かな...?
TrackBackって知ってます?
って、今の時代、「そんなの聞いたことあるなぁ」が基本だと思われるわけですが、それが何物かわかります?
トラックバック技術仕様書によると、
トラックバック を使うことで複数のサイトが、お互い関連するリソースに関する通信が可能になります。ウェブロガー A さんが何かおもしろいこと(あるいはB さんに関連していること、またはショッキングなこと)を書いたので、そのことをウェブロガー B さんに伝えたいとします。A さんはトラックバック ping を B さんへ送ります。これによって、次の2つの内容が実現されます。
- ウェブロガー B さんのサイトでは、B さんのエントリを参照しているすべてのサイトが自動的に一覧表示され、彼のサイトを訪れる読者は、彼のエントリに関連していて、(他サイトにある) web 上のエントリもすべてを読むことが可能になります。もちろんその中には、A さんのエントリも含まれます。
- トラックバック ping は誰かがリンクをクリックすることによって成立する暗黙のリンク(例: refferrer ログ)とは違い、2つのサイトにそれぞれある特定のエントリと特定のエントリの間に明示的なリンク関係を築きます。
これを逆さにとって「大TrackBack大会」をする事もありますね。
誰かが「今回はこのテーマ」と決めたら、それに合わせて、毎回みんながエントリーを書く。で、それを相互TrackBackするっていうものです。そうすると、今まで知らなかった人のサイトにも訪れるきっかけになり、結構おもしろかったりします。
ここでもそんなことしてみようかと思うんですが、皆さんいかがでしょう?
賛同者の方、是非、こちらにコメントをお願いいたします。
さりげなく、前のスタイルはあまり好きではなかったので、ついに大幅に変更しました。
これで、しばらくは変わらないでしょう。一部、見にくいところは随時調整していきます。
今回もダウンロードしたテンプレートをベースに一部書き換えています。
何か「こうしてみたら?」とか「この辺おかしいけど...」とかありましたら、じゃんじゃんコメントしていただければ修正していきます。
#この修正に3時間ぐらいかかっている自分って...。
#その時間に卒論書けよ...って言われてもしょうがないけど、やりたかったんだもん。
マイナーバージョンアップですね。
特に何か変わったかと聞かれても、あんまり思い当たる節がない。
もしかしたら、これからいくつか気づくのかもしれませんね。
とりあえず、ここもMT 3.121-JAへバージョンアップしました。
バージョンアップしてみました。
手順自体は難しくないものの、どうも、解説がうまくできていませんでした。
本家のサイトの解説だけでは不十分でしょうね。
Anyway...。
完全に日本語化されました。
元々は2.61でしたけれども、それでは一部英語、一部日本語となっていて、かえってわかりにくかったのです。
有料化されていたので、非常に躊躇ったのですが、結局、無償版でアップグレードしてしまいました。
おかげで、日本語環境なので、快適です。
入力画面が、どうも怪しげだけど...。
これからは、プラグインを利用してみようかとたくらみ中です。どんなものがあるんでしょうね?
[追記]
どうやら、CSSファイルがうまくアップロードされていなかったために、入力画面に不安を感じた模様。なので、再アップで通常動作へ。
dh's memorandaには大量に情報がありますので、ご覧下さい。
プラグインはただいまBlacklistを入れてあります。これで、ちょっとは防御される感じ?
名称変更しました。
「gar vi -f -r now」です。
UNIX等になれない人は、「なんじゃこりゃ」でしょうね。
「gar」は「ささがー」の「がー」です。
「vi」はUNIXのテキストエディット起動コマンドのうちの一つです。
「-f」はたいてい、コマンドラインでオプションに使われる「強制的に実行」です。
「-r」は「shutdown」コマンドで使われるオプションで「再起動する」です。
「now」は「shutdown」コマンドで「-r」等を伴って使われる「今すぐに」です。
そんなわけで、自分自身で書き込みを頻繁にするようにという思いを込めて、名称変更しました。もちろん、前の名残で、「-SASAGAR's HOME-」と付いています。
これからは「ガーヴィフルナウ」などと呼んであげてください。(違)
いい加減ここも更新しないとな...と思い。がんばってみたんです...検索。(笑)
良いスタイルだと思いますよ。これ。微調整はこれからこれから。
良いスタイル(MTではたいていテンプレートという)を探すのには結構時間かかりました。暇があれば探すみたいな事は繰り返していた物の、なかなか見つからず。しっくり来ないわけですよ。
そんなわけで、やっとこさ見つけました。新聞風です。ロゴがないので何とも微妙な感じですが、後で作ってはっつけますね。
これだと、写真を使った記事とかもうまく貼り付けてくれるので、良いと思います。心機一転一日1つは更新!
#いつまでつづくのやら。
たまにはちゃんとデザインし直したいなぁとか思っていたんですが、やっとこさ。
CSSは専門ではありません。
だから結構時間がかかるので困っていたのですが、やっとこさ、時間を作ってやってみることに。
とりあえずは、昔の配置に戻しました。
ついでに色も変えて....とりあえずは、そんな所までしか出来ませんが、頑張って買えていきますよ。ハイ。
そしてトラックバックしてみたり。
こうやって使うんだ~。へぇ~。
なんて、実験させてもらったりしてしまいましたが、慶応SFCではBLOGが流行のようで。
なかなかすごいですね、BLOG。
うちの大学でももっとはやって欲しいモンです。
Trackbackっていうのも良いモンだ。
どこでも出来る「関心空間」みたいなモンですな。
広がる関係。結構楽しいですね。