2004年3月アーカイブ

Blogをやってみたいな~と言うことで、MovableTypeをインストールしてみた。 まずは、/usr/ports/www/MT をインストール。ここで、WITH_POSTGRES=yesにしてやってみる。
そして、ここ からダウンロードした日本語化パッチをあてる。

ちなみに、portsからインストールすると、
/usr/local/www/cgi-bin/mt/
/usr/local/www/data/mt/
にインストールされるので、それぞれうちのサイトに合わせて移動する。

さらに、パッチは上記二つが同じディレクトリにインストールしてあるものとして書いてあるので、それぞれの場所でうまく(ごにょごにょ)する。

そして、/cgi-bin/mt/mt-load.cgi を実行するとデータベースが初期化される・・・。
のだが、うまくPostgresで動かない。

DBIとDBD-Pgの二つのパッケージが足りないらしかったが、DBD-Pgのインストールに失敗してしまったのでPostgresの使用は諦めることにする。
しょうがないので、cgi-bin/mt/dbディレクトリを作成し、BerklayDBを使うことで手を打つ。

ここまでで、/cgi-bin/mt/mt.cgiにアクセスするとデフォルトのユーザでログインできるので、自分の名前とパスワードに変える。
続いて、mt-load.cgiを削除しておく。

新しいweblogの作成とやらを選んで、後は適当にやるとなんとなく動いている感じ。
いろいろ試行錯誤した結果、デフォルトとはいろいろ違うパスになった。

最終的に、blogのURLは /mt/blog名、アーカイブのURLは/mt/blog名/archivesとし、cgi-binとは分離することにした。
cgi-binの方は、MTのパスワード認証があるので、盗聴を避けるためにhttpsでのみアクセス可能なようにapacheの設定を変更する。
しかし、httpsだとだいぶ遅くなったような気がする・・・。そろそろサーバのスペックも限界なのかしらん?

と、思ったら、PostgreSQLの使用に成功しました。
DBD-Pg のREADMEを読んでみたら、postgresのpatchlevel.hがあると、perlのと間違えてそっちを読んでしまうことがあるので、いったんどっかへやっとけ、と言う記述があった。
そこで、/usr/local/include/patchlevel.hを一度リネームしてDBD-Pgをコンパイルしたら、無事にインストールができた。

後は、一度作ったblogのDBを破棄して、設定ファイルをpostgres用に書き換えて再びDBを初期化して、現在に至る・・・。(と、言うか、コピーできないのかしらん・・・?)

わからないこと

postgresqlのDBは、何も考えないで作った。文字化けがおきるかな~?と思ったんだけど、文字化けはおきていない模様。(「~」とかが相性悪いんだけど、大丈夫みたい)
ちなみに、MTの日本語化はutf-8を使ってみました。

MovableTypeで、jpegをアップロードしてサムネイルを作ろうとすると、エラーになる。
原因がわからなかったので、libjpegとかImageMagickとか再インストールしてみたが、状況は変わらず。(ImageMagickのバージョンを上げたので、エラーメッセージは変わったが・・・)

いろいろ試した結果、PlayOnlineから送ったFF11のスクリーンショットと、libjpegの組み合わせで問題があることがわかった。(libjpegのサンプルの、djpegなども落ちる)
デジカメのjpegだと問題なくサムネイルが作成できる。

と、言うわけで、jpegについて調べないといけないらしい・・・。

PC日記
MovableTypeで、jpegをアップロードしてサムネイルを作ろうとすると、エラーになる。 原因がわからなかったので、libjpegとかImageMagickとか再インストールしてみたが、状況は変わらず。(ImageMagickのバージョンを上げたので、エラーメッセージは変わったが・・・)
trackbackのテストをしてみた。自分の一個前のエントリにトラックバックしてみたんだけど・・・。
どこかで読んだ記述だと、blockquoteで囲まれるみたいなことが書いてあったんだけど、選択した文章がそのまま入るだけみたい・・・。
MovableTypeのスタイルシートをちょっくらいじってみた。
このまんまだと、Macユーザの人とか文字化けしちゃうのかな?

とりあえず、文句が来たら対応することにして、しばらくこのまま行きます。
しか~し!結果のページはそれなりに私のスタイルになったんだけど、編集中の画面及びプレビューの画面のスタイルが元のままなので、実際に保存してみるまで見た目が確認できません。
これって不便じゃない?
よくわからないので、MTのユーザメーリングリストに加入してみようと思ってWEBから参加申込をしましたが、まだ確認のメールが来ない・・・。メールアドレス間違ったかしらん?
その方法とは、CategoryIDを使う方法です。カテゴリーのアーカイブファイル名を"cat_<$CategoryID$>.html"に変更します。CategoryIDは数字なので、日本語のカテゴリー名にしても問題ありません。
を参考にして、categoryアーカイブのファイル名を"cat_<$MTCategoryID$>.html"に変更してみま した。
そして、メインインデックスのテンプレートを修正して、カテゴリの一覧も表示するようにしてみました。
<div class="sidetitle">
カテゴリ
</div>
<div class="side">
<MTCategories>
<a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a>(<$MTCategoryCount$>)
</MTCategories>
</div>

1)新しいテンプレートを作る
2)アーカイブの設定でMonthlyアーカイブを追加する
3)MainIndexからカレンダーをiframeで貼り付ける
これを参考に、カレンダーを修正してみました。 やったことは後で書きます。
ここのところいろいろ触って、やっとMTの仕組みがちょっとだけわかってきました。
と、言うわけで、Date-Based Archives のテンプレートを変更して、左側にカレンダーを出してみました。
参考にした「気ままにポロポロ: 月めくりカレンダー」ではiframeを使っていましたが、iframeは好きではなかったので、SSIを使いました。
(本当は、書き溜めて行く前にhtmlからphpに移行した方が良いような気はしますが、当面htmlで行くことにします)
  1. まずは、前述の参考ページと同じように新しいテンプレートを作ります。
    [Templateの編集]→[新しいアーカイブ・テンプレートを作る]→[テンプレートの名前]を「Calenda」とする。中身は、以下の通り。
    <div align="center" class="calendar">
    
    <table border="0" cellspacing="4" cellpadding="0" summary="カレンダー">
    <caption class="calendarhead">
    <MTArchivePrevious>
    <a href="<MTBlogURL>archives/<MTArchiveDate format="%Y_%m">.html"> ≪</a>
    </MTArchivePrevious>
    <$MTArchiveDate format="%B %Y"$>
    <MTArchiveNext>
    <a href="<MTBlogURL>archives/<MTArchiveDate format="%Y_%m">.html"> ≫</a>
    </MTArchiveNext>
    </caption>
    <tr>
    <th abbr="日曜日" align="center"><span class="calendar">日</span></th>
    <th abbr="月曜日" align="center"><span class="calendar">月</span></th>
    <th abbr="火曜日" align="center"><span class="calendar">火</span></th>
    <th abbr="水曜日" align="center"><span class="calendar">水</span></th>
    <th abbr="木曜日" align="center"><span class="calendar">木</span></th>
    <th abbr="金曜日" align="center"><span class="calendar">金</span></th>
    <th abbr="土曜日" align="center"><span class="calendar">土</span></th>
    </tr>
    
    <MTCalendar month="this">
    <MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
    
    <td align="center"><span class="calendar">
    <MTCalendarIfEntries><MTEntries lastn="1">
    <a href="<$MTEntryLink archive_type="Daily"$>"><$MTCalendarDay$></a>
    </MTEntries>
    </MTCalendarIfEntries><MTCalendarIfNoEntries><$MTCalendarDay$>
    </MTCalendarIfNoEntries><MTCalendarIfBlank> </MTCalendarIfBlank>
    </span></td><MTCalendarWeekFooter></tr></MTCalendarWeekFooter>
    </MTCalendar>
    </table>
    
    </div>
    
  2. 続いて、月ごとにCalendarが作られるようにします。
    [BLOGの設定]→[アーカイブの設定]→[新しく追加]→[アーカイブの種類]をMonthlyに、[テンプレート]をCalendarに→Calendaのパスを以下のようにする。
    <$MTArchiveDate format="calendar/%Y/%m/index.html"$>
    
    ラジオボタンはDate-Based Archiveのままにする。
  3. [Templateの編集]→[Date-Based Archive]を選び、従来のコンテンツの部分を
    <div id="content">
        ・・・
    </div>
    
    で囲む。その後に、以下を追加する。
    <div id="links">
    <!--#include file="<$MTArchiveDate format="calendar/%Y/%m/index.html"$>" -->
    </div>
    
これで、Date-Based Archiveテンプレートを使っているページの左にカレンダーが出るようになります。
うちのdiskが足りなくなってきたので(この間120Gの外付けを買ったばかりのような気もするけど・・・)、散歩がてら秋葉までNASを買いに行く。
お目当ては、玄人志向のKURO-BOXと言うもの。
何件か回って、中に入れる300GのHDD(Maxtor製)は発見できたものの、KURO-BOXはない。
お店の人に聞いたところ、入荷数が少なくて、予約してもいつになるかわからないとのこと。
じゃあしょうがないってんでIO-DATAのLandiskの250Gの奴を探すが、これも品切れ状態。
しょうがないので帰路につくが、川崎に新しいヨドバシがオープンしたことを思い出し、帰りに寄ってみる。
そこで、Landiskを発見!税込47,040円で購入してしまった。
dhcpサーバがある場合は、つなげばそのまま使えるらしい。
ので、dhcpd.confをいじって固定のIPを割り当て、起動する。無事に\\landiskでアクセスできた。
後は、ブラウザからアクセスすると設定画面があっていろいろ変えられるみたいだったけど、とりあえず時刻同期の設定と管理者パスワードだけ設定しておしまいっと。
しかし、ntpクライアントなのに、同期する時間を指定するってのはどう言うことよ!?
地上デジタル放送が見たいな~と思う今日この頃。
なぜかと言うと、現在のおうちはテレビの受信状態がよろしくなくて、ゴーストでまくりなのです。
引っ越す前は効いてたDiGAのCMカットも、引っ越したら効かなくなってしまった(泣)

と、言うわけで、地上デジタルについて気になることを調べてみた。
NHKと民放各社は、デジタル放送番組のコピーガード施策を4月5日から開始すると発表した。地上デジタル、BSデジタルの放送に「1回だけ録画可能」(コピーワンス)の制御信号を加え、暗号化して送信する。さらに、同日より視聴・録画にはB-CASカードが必須となる。
これによると、4月からは基本的に全ての地上デジタル放送にはCCI情報が付くらしい。どう言うことかと言うと、現在うちでMTV-2000なんかでやってるようなテレビのPCでの録画ができなくなると言うこと。
良く知らなかったので、世間が地上デジタルに移行すれば、ゴーストばりばりなうちでも幸せになれるかな~と思っていたのだが、今と同じような利用方法はできなくなるらしい・・・。

続いて、うちでは見られるのかな~?と思って調べてみた。
関東・中京・近畿放送開始
んが、ここを見てもうちがエリアに入ってるのかどうかわかりゃーしない。
もうちょっとまじめに広報してもらえないものかしらん?

そして、たどり着いたのがここ
ここのFAQみたいなところを辿っていくと、やっと関東の放送エリアを見ることができた。
それによると、うちで見られるようになるのはスケジュール通りに行って2006年かららしい・・・。
関係ないや、調査打ち切り!
せっかくカレンダーをDate-Basedアーカイブに入れられたので、うちの別のblogにも反映してみる。
しか~し!なぜかDailyアーカイブが全部からっぽ!あ~んど存在しないはずの毎月1日のDailyアーカイブができると言う謎の現象に遭う。
いろいろ試してみた結果、Entryの時間が00:00:00だと問題があるらしいことが発覚。
泣きながらsqlで00:00:01に変更して事なきを得たわけだけど・・・。
ちなみに、いじったのは mt_entryテーブルの entry_created_on フィールド。
本当は、ソースをいじりたかったんだけど、一生懸命おっかけても該当個所を探すことができなかった・・・(泣)

同じようなことで悩んでいる人はいないのかな~?と思ってgoogleしてみたところ、
投稿日時がその月の1日の場合 2003-04-01 00:00:00 とするとマンスリーアーカイブの中に含まれず行方不明になってしまう
と言うサイトを発見。DailyだけじゃなくてMonthlyからも消えてたのかな?うちだとMonthlyからは消えてなかったみたいだけど・・・。
Googleの広告なんてものを見つけたので、申し込んで見た。
広告がクリックされると、ポイントが入って、$100になると小切手を送ってくると言うものらしい。
審査が終わるとメールが来るので、そうしたら広告を貼ると良いらしい。

広告と言えば、サイトのトップにamazonのサーチを入れてるんだけど、こっちもだいぶ前に支払の方法が変わったとか連絡が来たような気がするけど、そのまま無視しちゃってるなあ・・・(汗)
まあ、お金が儲かるからじゃなくて、主に自分用(本の検索とか・・・)なので良いのです。
広告がうざい!って人がいたらコメントに書いてくださいな。

aws

| | コメント(0) | トラックバック(0)| Edit
Amazonウェブサービスを Movable Type から使うためのプラグインを作りました。
などと言うありがたいものを作っていらっしゃる方がいたので、早速挑戦してみる。

以下、やったこと。
  1. 上記ページから、mt-aws.tar.gzをダウンロード。
  2. 展開してできたaws.pl を MTのインストールディレクトリのpluginsディレクトリにコピー。
  3. amazonのページでデベロッパー・トークンを申し込む。
以上!(のはず・・・)

さっそく、試してみましょう。
っと、以下のようにreadmeからコピーしてdev_tokenとassociate_idだけ変更しましたがうまく行きません。
<MTAws dev_token="デベロッパー・トークン"
 associate_id="アソシエイトID"
 search="KeywordSearch" query="ウェブログ" mode="books-jp">
<div style="border: solid 1px #666666; padding: 1em;">
<a href="<$MTAwsurl$>"><img src="<$MTAwsImageUrlSmall$>"><br />
<$MTAwsProductName$></a></div>
</MTAws>
readmeを読み直してみると、XML::Simpleが必要なようなので、portsからp5-XML-Simpleをインストールしてみると・・・。

やっぱり出ません。 で、ネットでいくつか検索してみると・・・。
こんなページを発見。
それによると、aws.plで追加しているのはテンプレートタグで、Entryには書いても意味がない!らしい・・・。
どうしたもんかね~・・・。

と思ってたら、できました!!
いくつかのサイトで、process_tagsがどうのこうのと言う記述があったのでうろうろしていたところ、
このままだとテンプレートでしか使えない。エントリーに表示させようと思ったら、またプラグインを入れないといけない。
と言うサイトを発見!
そこを見てprocess_tagsプラグインを導入し、テンプレートを変更したら、無事に本がEntryに出るようになりました!!
awsがそのままだと問題があるようなので修正してみる。
WishlistSearchについてですが、aws.plのソースの41行目が間違っているので訂正が必要
やっと本のイメージが出ると思ったら、リンク先のURLがおかしい。%20%20%20とかいっぱい出る。
そこで、以下の修正をしてみたところ直ったみたい。
aws.plが動くようになりました。148行目付近
このサイトで、自分が書いているだけで都合3つのblogがある。(一つのblogにしてカテゴリーで管理すればよかったかな~とか後悔しはじめてたり・・・)
同じ設定をするのに、3箇所それぞれにテンプレートをコピーしたりしていたのだが、テンプレートのリンクとやらをすると幸せになれるらしいことがわかった。
[Templateの編集]でテンプレートを選ぶと、「このテンプレートにリンクするファイル」なんて言う欄がある。
ここに、テンプレート毎にファイルを割り当ててやると、複数のblogから共有できるのだ。
まず、元になるblogで、「このテンプレートにリンクするファイル」にファイル名を書いて保存する。
そして、設定を共有するblogで、「このテンプレートにリンクするファイル」に同じファイル名を書いて、「テンプレートの中身」を空っぽにして保存すれば、共有が完了する。
あとは、どこかで書いて保存した内容が、他のblogを再構築するときに読まれるという仕組み(・・・らしい)
ちなみに、出来上がったファイルの属性が、666になってしまったのだけれど、これって664くらいにならないのかなあ?
MTが作るファイルが、デフォルトだとother権限で書き込みができてしまう。
これってまずいんじゃん?と思って調べてみたところ、mt.cfgの以下を書き換えたらなんとかなりそう。
DBUmask 0002
HTMLUmask 0002
UploadUmask 0002
DirUmask 0002
それぞれ、コメントを外して有効にした。
これで、このEntryの権限が 0666 じゃなくて 0664 になれば成功・・・。
各ページのヘッダ部分を同じにしたいんだけど、3つのblog×各テンプレート分を変更するのはいい加減いやーん!
で、調べてみたら、MTIncludeなんて言うタグがあって、それでモジュールとかファイルとかをincludeできるらしい。

そこで、[新しいテンプレートモジュールを作る]なんて言うメニューを選んで、Bannerと言うテンプレートを追加。当然、ファイルにリンクしておく。
そこに、共通のヘッダ部分のコードを書く。
そいでもって、各テンプレートのヘッダ部分に、
<$MTInclude module="Banner"$>
なんて書くと、それでヘッダ部分が共有できるようになった。
後は、各blogでBannerを共有して再構築してやれば、みんなで共有ができるのさ~♪
BookmarkletやMT IT!を使って他のblogを引用するわけですが、そのままだとaタグしか作ってくれなくて寂しいです。
そこで、$MT/lib/MT/App/CMS.pm のソースを修正してみました。
$param{text} = sprintf qq(<blockquote>\n<div class="quote-head"><a title="%s" href="%s">%s</a></div>\n\n%s\n</blockquote>),
639行目を上のように変えると、好きな形で別の記事を取り込めます。
※ quote-headって言うクラスは私が自分で追加したものかも・・・(汗)
先日申し込んだGoogleの広告が承認されたと言うメールが来たので、さっそくindexとdate-based, individualの3つのテンプレートに入れてみた。
Googleのサイトでjavascriptのソースを作るんだけど、proxyが悪いのかgoogleが悪いのか、作成ページがあまりまともに動いてない・・・。どうもscriptのロードが途中で終わってしまうみたい。
なんどかやりなおして、適当な色にカスタマイズしてみたけど、気に入らないなあ・・・。

気になったのは、メールに以下の記述があったこと。
お客様のサイトに掲載された広告をご自身でクリックされることはポリシーに違反しますので、どのような理由においてもご自分で広告をクリックしないでください。
ほえ?私は自分の記事と関連のある広告を、自分で見てみたくて参加したんだけどなあ・・・。
どうやって自分のクリックって判断するのかしらん?
私の今までのブラウザの変遷は、Mosaic → Netscape[2-4] → IE[5-6] って感じ。
最近は、ずっとIEを使っている。OSがWindowsだと、Netscapeよりも軽い気がするから。
んで、最近さらにIEから離れられない理由が、Bookまーくが提供しているBookまーくBar。
私の場合、自宅で、会社で、出先で(ノートで)と何台ものPCを使っているので、その間でbookmarkを共有したい。その要求に応えてくれているのがBookまーくBarなわけです。

でも、最近タブブラウザが使いたいな~、とか思い始めている。blogなんかやってると、他のページを参照しながら記事を書いたりするし、MTは結構サブのウィンドウを開くので、タブブラウザの方が快適なのだ。
そこで、定番である SleipnirDonutPって奴をインストールしてみた。ちなみに、この記事はDonutPで書いている。
Sleipnirは、前にも一度入れたことがあるんだけど、やっぱり肌に合わないみたい。どこがって言われても困るけど・・・。
DonutPの方は、見た目はほぼIEで違和感はない。で、『IEツールバーをサポートさせるためのDLLを生成する。”BandSupport.exe”作成』なんてことが書いてあったので期待したのだけれど、やっぱりBookまーくBarは動かないみたい。

二つ使ってみた感想は、
  • どちらもBookまーくBarが使えない
  • 他のタブで読み込み中に、blogの記事を書こうとするとキーボードフォーカスを失うことがある。(これは結構ストレスになる・・・)
  • いろいろなサイトを見ていると、ブラウザごと固まることがある。別のタブで記事を書いている途中だと、入力した内容が無駄になったりする可能性も・・・。
と、言うわけで、まだ当分はIEを使わないといけないのかしらん・・・。
一度書いたEntryを修正するときに、いちいち管理メニューに行くのはめんどくさいな~、と思っていたら、
To present you with at least something new I will show you how to use the AdminLinks plugin for MT. It doesn’t do anything fancy you couldn’t do yourself if you followed the above example. But the plugin is easier to use and makes your templates more readable. The plugin provides you with two new template tags.
なんて言うものを発見。
早速入れてみるが、MTAdminOnlyタグはphpじゃないと動かない仕様らしい。
さらに、AdminLinks.plの中でCGIPathを使っているので、うちのようにmt.cgiをhttpsで別にしているとうまく動かないみたい。
そこで、AdminLinks.plを修正して、"$cfg->CGIPath"となっているところを、"$cfg->AdminCGIPath"に修正したら、とりあえずMTAdminLinksタグは使えるようになった。
サンプルと違い、aタグにtarget属性をつけて、ちょっと快適になった感じ。
後は、パスワードがわからなければ人には書き換えられないとは言え、人から見えるところにリンクがあるのはまずいような気もするので、phpの代わりにjavascriptでcookieの判定ができないかと思っているのだけれど、mt.cgiと実際のhtmlでURLがhttpとhttpsで変わってしまうので、javascriptから同じcookieは見れない模様。
あまりかっこよくないけど、元ネタと同じように独自のcookieを設定するしかないのかな?
phpを使わずに、Editリンクをなんとかしたい!
と言うことでJavascriptでなんとかしてみました。
Cookieを判断して、document.writeでなんとかなるかな~、と思ったんですが、うまく行かなかったのでリンク自体は常にあるものの、Cookieがないとリンクを辿れないようにしてみました。
引っ越して2ヶ月近くたち、各種公共料金の請求書/領収書も送られてくるようになりました。
しかし、電気代を見ると・・・一万円超えてるじゃん!
と、言うわけで、節電したいなあ~大作戦(の下準備)なのです。
節電の話をしたわけですが、やはり常時接続で24時間動作しているこのサーバが結構電気代を食っているのではないかと思われるわけです。
他のサイトを見た感じでは、月1000~2000円くらいかかっているらしい。うちの電気代の1~2割ってことになりますな。
で、どうせ今はお金がなくて買えないんですが、サーバマシンをリプレースするならどうするか?って言うお話です。

エキサイトのブログをやっている人に、メニューを見せてもらったら、なかなか良くできている感じ。
システム自体は、アジアで作ったオリジナル、とか言うものらしい。
で、エキサイトのユーザ同士だと、相手のブログに気軽にトラックバックができるんだけど、例えばうちみたいにMovableTypeでやってるところにトラックバックPingするためには、直接URLを手で入力しないといけないらしい。
ちょっと自分でもエキサイトにアカウントを取って、ブログを作って試してみた結果、編集画面のURLのtrburlって言うパラメータがなければ、ちゃんとトラックバック先が選択できるようになるらしいことがわかった。
そこで、以下のようなスクリプトを、Bookmarkに入れると、エキサイトユーザの人も他のblogにトラックバックがしやすくなるかもしれません。
javascript:d=document;t=d.selection?d.selection.createRange().text:d.getSelection();
void(window.open('http://pds.exblog.jp/blog_tool.asp?eid=この部分に自分のID
&url='+escape(d.location.href)+'&title='+escape(d.title + ":" + t),'_blank'))
※ 自分のIDって書いてある部分は、設定画面などのURLに付いているeid=xxxxxxのxxxxxxの部分です。
※ ページの都合上3行にわけていますが、1行にしてください。

使い方は、引用したい部分を選択して、ブックマークをクリックします。
blog_tool.asp は、trburlがある場合はそこをトラックバックURLに、ない場合はurlで指定されたURLにあるblogのエントリーが選択できるようにするらしい。
後は、urlで指定されたurlに対するAタグを内容のところに挿入し、titleがあればtitleをAタグの中に書きます。
本当は、Aタグの後ろに引用部分を入れたかったのですが、そのためのパラメータ(あるとして)がわかりませんでした。
なので、上のスクリプトでは、Aタグの内側に無理やり入れています。
誰か、本文に追加する方法がわかったら教えてくださいな~。
携帯から(と言うかメールからですな)blogを登録するのを、moblogとか言うらしい。
Moblog とは、モバイル環境から Weblog することです。最近はカメラ付き携帯が普及しいつでもどこでも記録ができます。
ここのサイトが大変参考になったので、そこに書いてあるとおりにやってみた。
  • python 2.2.2以降が必要らしい。うちに入ってたのは2.2だったので、portupgradeで2.3.3にバージョンアップ。
  • python用の日本語コーデックが必要らしいので、/usr/ports/japanese/pycodecをインストール。
  • ここからmail2entryをダウンロード。これを書いてる時点の最新は20030506。
  • アーカイブを好きなところに展開する。気分的に/usr/local/mail2entry
  • MTにmoblog用の新しいユーザを登録する。
  • settings.pyを編集する。
  • 同じディレクトリに、includeを作る。
  • 中のファイルのオーナーをwww:wwwに、permissionを600にする。
  • /etc/aliases に include のためのエントリーを追加する。newaliasする。
これで、aliasesに追加したエントリーにメールしたら、無事にBlogのエントリーが追加されるようになりました。
参考にしたサイトには、日付がGMTで記録されてしまうようなことが書いてありましたが、うちでは特に問題ないみたい。
※ おいらの携帯にはカメラがついてないので、画像のテストができないのが寂しいな・・・。

エキサイトブログだと、コメントとかトラックバックが動的に表示されたり消えたりします。
MTでも同じことができないかな~と挑戦してみる。
マウスを乗せると説明を表示するを参考に、javascriptを書いて、テンプレートにコメント表示部分を入れてみたのだが、非表示の状態でもそのスペースが空いてしまって意味がない感じ。
別のやり方を探さなくちゃ~。
諦めきれずに検索していたところ、
以前書いた「追記部分とコメントTIPS」ですが、scriptygodessさんのところで1月6日に改良されたスクリプトが出てるみたいですね(Akihiさんのトラックバック情報。ナイスです!) 詳細はScripts: another revision to the show/hide scriptを見てください。
なんて言うサイトを発見。
そこで、Scripts: another revision to the show/hide scriptのサイトを参考にテンプレートを書き換えてみました。
以前Tripwireをインストールして、1日一回ファイルシステムをチェックしている。
で、1週間に一回cvsupで/usr/srcと/usr/portsを更新しているので、その日が過ぎるとtripwireが大量に「ファイルが変わったぜ~!!」とメールを出してくる。
結局、レポートを読むのも面倒なので、メールを読まずに捨ててしまい、tripwireを動かしている意味がないじゃーん状態だった。
そこで、もうちょっとなんとかしようと思い、twpol.txtを修正して/usr/srcのチェックをやめることにした。(このページを読んでいるあなた!だからと言ってうちに侵入してsrcを書き換えてbackdoorを作ってやろうなどと考えないように)
これで、もうちょっと真面目にメールを読むようになるかしらん・・・。
以前、頻繁に落ちるので止めていたsnortですが、バージョンが2.0.0から2.1.1に上がっていたのでバージョンアップしてみました。
設定ファイルも微妙に新しくなっていたので、新しいものをベースに以前の設定と同じように変更します。
が、起動しません。「tun0_ADDRESSなんて変数は知らないよ」って言われます。
そこで、とりあえずIPアドレスを直接書き込んでみたら、なんとか起動したみたいです。
うちの設定では、/var/log/snortとpostgresにログが溜まるようになっていて、acidで見れるようになっています。
acidから、以前のデータを全て消してみて、ただいまalert0件の状態。果たして、今回はちゃんと動くのでしょうか?

それ以前に、HOME_NETとEXTERNAL_NETの意味を調べなくっちゃ~。
なんとなく、ウィルス対策もしてみることにする。
動機は、spamを少しでもこれではじけるんじゃないかと言うもの。
freeのウィルス対策ソフトでは、H+BEDV って言うのと、f-prot って言うのが有名らしい。
OpenAntiVirusって言うのも見つけたんだけど、どうもウィルス定義ファイルが更新されてないっぽいので見送った)
で、今回はこのf-protって言うのと、AmaVisって奴と、postfixを組み合わせてメールのウィルス対策をしてみたいと思う。
大層なタイトルですが、全然たいしたことありません。
うちのsmtpは、postfixを使っています。
rc.confの設定で、
sendmail_enable="YES"
sendmail_flags="-bd"
sendmail_outbound_enable="NO"
sendmail_submit_enable="NO"
sendmail_msp_queue_enable="NO"
みたいな設定になっていて、/etc/mail/mailer.confでsendmail-wrapperがpostfixを見るようになっています。
で、postfix自体は動いているのですが、毎晩/var/log/messagesに
Mar 17 01:59:01 false postfix/sendmail[61665]: fatal: unsupported: -bh
Mar 17 01:59:02 false postfix/sendmail[61666]: fatal: unsupported: -bH
みたいなエラーが出て気持ちが悪かったのでした。
で、今回periodicについて調べていたら、/etc/periodic.confに以下の内容を追加すればこれらが行われなくなる、と言う情報にたどり着きました。(と言うか、portsからインストールするときに普通に表示される内容らしい・・・)
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"
/etc/periodic.confは存在しなかったので、新しく作って上記の内容を書いてみた。
大変お恥ずかしいことをしてしまいました。
Blog users MLに入会しようとして、確認のメールが来ない、ってことを以前書いたんだけど、今日やってみても駄目なので管理者の大和さんにメールを出してみました。
しかし、/var/log/maillogを見ると、メールが出て行かないじゃないですか!
Connection refused とか言ってるので、手でtelnet xxx smtpみたいに打ってみたら、やっぱりConnection refusedになります。
これは、相手のサイトでblacklistかなにかに載ってるのかな~?と思って別のアドレスからメールを出してみました。

すると、しばらくして丁寧なお返事を頂きましたが、blacklistなどの運用はしていないとのこと。
これは・・・、と思ってtracerouteをかけてみると、220.210.195.77で止まっているように見えます。
む~、これは、途中のサイトが何かではねているのかな?と思ってwhoisをかけてみると・・・。
東日本電信電話株式会社 FLETS-SQUARE とか出てくるじゃないですか!
やってくれたなNTT!おまえが悪者だったのか!
とか思って最初はfletsを悪者にしかけたのですが、少し冷静になってnetstat -rしてみます。
220.210.0/16がflets square向けになってる!!!!!!
どうも、前にマルチセッションにしたときに、面倒臭がって220.210をflets squareにしてしまったようでした(汗)
Blog users ML のメールサーバは 220.210.147.15 。本来インターネット側に出ていかなければならないパケットが、flets square側に出ようとしていたのでした(汗)

ごめんなさいごめんなさいごめんなさい!私が全て悪かったです!
こんなサイトを見つけました。
こんなページもあるみたい。
うちでも、ORDBは見るようにpostfixを設定して、さらにSpamAssassinも入れているのですが、まだまだSPAMが減りません。
アメリカのプロバイダとか受け取らないようにしちゃおうかな~( ̄_ ̄)
現在のうちのメールは、imap-uwとBecky!そしてqpopperとDatula、Zaurusで読んでいます。
MTAはpostfixです。
そいでもってprocmailでメールの振り分けなんてことをしているわけです。
会社では、MUAがWanderlustだったりします。
WanderlustだとMHフォルダ形式で、Becky!だとmailbox形式で、同じメールが読めないと言う素敵な状態・・・。
SpamAssassinに学習させようにも、メールがファイル単位じゃないので面倒です。
いろいろ調べていたら、Maildir形式でメールを管理してやると、幸せになれそうな予感がします。
そうすると、以下のことをやらないといけない。
  • courie-imapをインストール&設定
  • postfixの設定変更
  • 現在のメールボックスの形式を変換
  • クライアントの設定を変更
うちの場合、私だけで3つのメールアドレスを使い、他にも二人の人にメール環境を提供しているので、サービス停止時間は最低限に抑える必要があります。
む~、地道な調査を先にやる必要がありそうだなあ・・・。
と、言うわけで、メールのMaildir化計画の調査編です。
  1. courier-imapのインストール
    portsから、mail/courier-imap をインストール。Makefileを読んだ感じでは、WITH_CRAMとWITH_DRACを定義してやれば良い感じ。
  2. courier-imapの設定
    /usr/local/etc/courier-imap にある設定ファイルを書き換えるらしい。インストールしてみないと中身のイメージがわかないな。
    とりあえず、IMAP_CAPABILITYの行に AUTH=CRAM-MD5とか追加するらしい。(うちは、PLAINテキストは禁止の方向で)
  3. SSL用の証明書の作成
    mkimapdcert, mkpop3dcertを実行するらしい。(もっとも、BeckyはSSLに対応していないらしいけど)
  4. md5パスワードの作成
    # userdbpw -hmac-md5 | userdb ユーザ名 set hmac-md5pw
    # makeuserdb
    
  5. 起動スクリプトの作成
    /usr/local/etc/rc.d/ にあるsampleファイルを.shにリネーム
  6. inetd.confの修正
    imapとpopのエントリーをコメントアウト
  7. postfixの設定
    main.cfのhome_mailboxを設定
    home_mailbox = Maildir/
    
  8. mailbox形式のメールのMaildirへの変換
    どうやろう?
  9. 個人の設定
    ホームディレクトリにMaildirディレクトリを作成。
    .procmailrcの書き換え
と、ここまで調べて、courier-imapのpop3dは、apopに対応していないことが発覚!パッチは存在するみたいだけど・・・。
apop対応パッチは最高で2.1.1用まで見つかった。現在のFreeBSDのportsで入るのはcourier-imap 3.0.1。一応、自分でソースいじればなんとかなりそうだけど、それもいまいちな気がするなあ・・・。
一方、uw-imapの方をMaildirに対応させちゃえ!なんて試みもあるらしく、どっちが良いのかしらん・・・。
なかなか要求を満たすimap/pop3サーバはないな~と思ってうろうろしていたら、ひらめきました!
procmail関係のページを見ていたときに、procmailがMaildir形式のメールを格納できるってことが書いてあったのです。
  • hoge だと mailbox形式
  • hoge/. だと MHフォルダ形式
  • hoge/ だとMaildir形式
と、言うことは、postfixとqpopperはそのままで、.forwardからprocmailにかませたときにMaildirに配送してあげれば、popユーザは従来どおり、IMAPユーザはMaildir形式と言う使い分けができるのです!
と思ったら、以下のページを発見。同じことを考える人はいるのね~。
MTA(postfixなのだが)をMaildirな設定にしなくてもprocmail(3.14以降)を噛ませばMaildirにできるやん。しかもsystemwideじゃなく、user別に。

そこで、この路線で作業開始です!(さきほどの調査の項とだいぶかぶりますが・・・)
  1. まずは、portsからcourier-imapをインストール。make引数は WITH_DRACとWITH_CRAM
  2. 続いて、courier-imapの設定。
    # cd /usr/local/etc/courier-imap
    # cp authdaemonrc.dist authdaemonrc    ←認証デーモンの設定
    # cp imapd.dist imapd     ←imapdの設定
    # cp imapd-ssl.dist imapd-ssl     ←imapd-sslの設定
    # cp imapd.cnf.dist imapd.cnf     ←imapd-sslのキーを作るための設定
    
    上から順番に、中身をみながら適当に直す。
    • authdaemonrc はそのまま。
    • imapdは、IMAP_CAPABILITYの行をコメントしてあるCRAM_MD5を含む奴と交換。IMAPDSTART=YESに変更。
    • imapd-ssl は、IMAPDSSLSTART=YESに変更。
    • imapd.cnf は、req_dnセクションを自分のサイトに合わせて変更。
  3. SSL用証明書の作成。
    popは今までのqpopperを使うので、imap用のみ。
    # mkimapdcert
    
    このコマンドで、/usr/local/share/courier-imap/imapd.pemができるらしい。
  4. 起動スクリプト
    # cd /usr/local/etc/rc.d
    # rm courier-imap-pop3d.sh.sample
    # rm courier-imap-pop3d-ssl.sh.sample
    # mv courier-imap-imapd.sh.sample courier-imap-imapd.sh
    # mv courier-imap-imapd-ssl.sh.sample courier-imap-imapd-ssl.sh
    
    これは、ポート143と993で使おうと思ってこの二つを残したんだけど、両方のスクリプトからauthdaemon が起動/停止させられるため、両方動いてる状態で片方を止めると認証ができなくなってしまう。まあ、実害はないから良いか。
  5. inetd.confの修正。imapの行をコメントアウトして再起動。
  6. imap用のユーザDBの作成。
    # userdb ユーザ名 set uid=ユーザID gid=グループID home=ホームディレクトリ
    # userdbpw -hmac-md5 | userdb ユーザ名 set hmac-md5pw
    Password:  ←パスワード
    Reenter password:  ←再入力
    # makeuserdb
    
    ※ ここですごくはまったんだけど、uidとかhomeをちゃんと設定してあげないと、エントリーが有効にならないらしい。ユーザ名とパスワードだけ書いてあれば良いような気はするんだけど・・・。
  7. 起動スクリプトを使って、imapサーバを起動。

ここまでが、システムサイドでやること。
後は、個人でメールの配送をMaildir形式にしないといけない。いろいろ探した結果、ここのmbox2maildirで良さそう。
このスクリプトを取ってきてpathを通したら、
% cd
% maildirmake Maildir
% mbox2maildir /var/spool/ユーザ名 Maildir
% mbox2maildir Mail/Sent Maildir/.Sent
% mbox2maildir Mail/Trash Maildir/.Trash
% mbox2maildir Mail/Draft Maildir/.Draft
             :
って感じでimapのフォルダ単位で変換できる。Becky!で試した結果、
  • Beckyから見えるフォルダ名が hoge だとすると、Maildir/.hogeになる。
  • フォルダが階層構造になっている場合は、階層を.で区切る。
  • フォルダ名に . は含められない。
後は、今まではBecky!で受信箱と同じレベルにIMAPのフォルダがあったんだけど、全部受信箱の中になってしまった。
すべてのフォルダの変換が済んだら、最後に .procmailrcを書き換えて新しいメールの配送をMaildirにする。
私の.procmailrcの頭はこんな感じ。
PATH=$HOME/bin:/usr/bin:/bin:/usr/local/bin:.
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/
LOGFILE=$MAILDIR/PROCLOG
LOCKFILE=$MAILDIR/.lockmail
肝は、DEFAULT=の行らしい。後は、今までMHフォルダ用に hoge/. で終わらせてた配送先を、hoge/ に変更して、UNIX側の設定はおしまい。

最後に、Becky!の設定。と言っても、メールボックスの設定の、IMAPフォルダ:のところを、今まで"Mail"だったのを空っぽにするだけで良かった。
Becky!は、sslが使えなくて面白くないので、一応Outlook Expressでも試してみた。
imap, imaps共にPLAIN認証ならばうまく行ったが、md5, sha1共にうまく行かなかった・・・。まあ、imapsで使えばPLAINでも良いとは思うんだけど・・・。

これで、今回のメール環境の改善はおしまい。ちょっとは早くなったかな?
courier-imapに変えたので、自宅でもWanderlustを動かしてみる。
せっかくなので、portsからjapanese/emacs21-emcwsをインストール。
makeのオプションは、WITH_FREEWNN
Xの4.3とか勝手に入るけど、うちではXは使わないのでいっか。
インストールしたemacsを起動すると、日本語の入力ができない!!
なんで~?とさんざん悩んだ結果、emacsではなくemcwsを起動すれば良いことがわかる。なんで両方入るんじゃ?
とりあえず、手がemacsと打ってしまうので、emacsを消してemcwsからリンクを貼りなおす。
続いて、wanderlustのインストール。portsから、mail/wanderlustを入れる。
apelとかflimとかsemiも勝手に入る。
後は、.emacsの設定。
・・・なんだけど、いまいちwanderlustからimap経由でMaildirにアクセスするのはうまくいかない感じ。
.foldersに%/とか書くと、一応フォルダの一覧は出るんだけど、キャッシュされちゃってその後beckyで追加したりリネームしたフォルダが見えない・・・。
まあ、使い方が悪いだけかもしれないんだけど、当分使わなくても良いかな・・・。

追記 その後の調べで、Wanderlustで使う場合は、%/ って書くんじゃなくて、フォルダ毎に .foldersに書くのが普通らしいことが判明。
MHフォルダの場合は %#mh/フォルダ名 って書いていたところを、%INBOX.フォルダ名 って書けば良いらしい。
まあ、確かにフォルダ名をころころ変えたりはしないからねえ・・・。
imapサーバをuw-imapdからcourier-imapに変更したので、webメールのhorde/impの方も設定変更が必要だった。
変えたのは、imp/config/servers.php。folders が Mail/ になっていたところを、空っぽに設定すればおっけ~でした。
amazonからメールが来て、現在amazon.comで提供しているWeb ServiceのURLがamazon.co.jpに変更になるとのこと。
さっそく、aws.pl の amazon.com を amazon.co.jp に変更してみた。

と、言うわけでテスト。
このソフトが、なかなか面白いんじゃないかと言う話を聞きました。体験版もあるらしいので、やってみて面白かったら買ってみようかな?
今まで別の場所で運用していたメーリングリストを、自宅に移すことにする。
うちには、今までもfmlがインストールされていたのだけれど、なかなか普通の人はfmlのコマンドメールなんか送ってくれないので、webのインターフェイスがあるmailmanをインストールすることにする。
  1. いつものようにportsから mail/mailman をインストール。makeオプションは、MAIL_GID=mailman
  2. /usr/local/mailman/Mailman/mm_cfg.pyを修正。以下をファイルの後ろにつける。
    DEFAULT_SERVER_LANGUAGE = 'ja'
    DEFAULT_EMAIL_HOST = 'wizard-limit.net'
    DEFAULT_URL_HOST = 'www.wizard-limit.net'
    DEFAULT_URL_PATTERN = 'https://%s/mailman/'
    PUBLIC_ARCHIVE_URL = 'https://%(hostname)s/pipermail/%(listname)s'
    MTA = 'Postfix'
    
    うちの場合はパスワードが流れる系は全てhttpsで。
    ちなみに、ここに書く設定項目については、Defaults.pyを読めばわかる。
    MTA='Postfix'って書くと、Mailmanがpostfixと連携してくれるようになるので、いちいちrootでaliasesとか書き換えなくても良くなる。webからメーリングリストの作成とかも可。
    ※ DEFAULT_EMAIL_HOSTと、DEFAULT_URL_HOSTはDefault.pyで書かないとwebからのメーリングリストの作成ができなかった。
  3. bin/genaliasesコマンドを実行する。data/aliases, data/aliases.dbができる。chownでオーナーをmailman:mailmanにしておく。グループの書き込みもできるように。
  4. bin/newlist mailmanでサイトリスト?を作る。(いまいちこれの必要性がわからないんだけど・・・)
  5. postfixのmain.cfに以下の行を追加する。(これが、mailmanとpostfixの連携の肝らしい)
    alias_maps = hash:/etc/aliases,hash:/usr/local/mailman/data/aliases
    
    ※ 書き換えたら、postfix reload
  6. cronの登録
    # cd /usr/local/mailman/cron
    # crontab -u mailman crontab.in
    
  7. デーモンの起動
    # /usr/local/etc/rc.d/mailman.sh start
    
  8. httpd.confの編集。httpsのvirtualhostの設定のところに以下を追加。
    ScriptAlias /mailman/ "/usr/local/mailman/cgi-bin/"
    Alias /pipermail/ "/usr/local/mailman/archives/public/"
    
  9. iconsの下のアイコンを、apacheのアイコンディレクトリにコピー。
    # cp /usr/local/mailman/icons/* /usr/local/apache/icons/
    
    ※ 多分うちの設定は古い or 特殊なので、コピー先は適当に読み替えてください。
  10. apacheを再起動して、https://www.wizard-limit.net/mailman/listinfo にアクセスする。
  11. 何故か、Powered by FreeBSDのロゴが出ない。findで探しても入ってないみたいなので、FreeBSDのページからもらってくる。(暇があったらトップページにも置こうかしらん)

だいたいこんな感じで、快適にmailmanが使えるようになりました。後の設定は、webからやれるので楽なのではないかしらん・・・。
自宅のimapサーバをuw-imapからcourier-imapにして快適だったので、会社のマシンもcourierにしてみる。
自宅との違いは、自宅はmailbox形式でBecky!でアクセスしていたのに対し、会社はMHフォルダ形式でWanderlusでアクセスしていたってこと。
まずは、自宅と同じようにcourie-imapをインストール。違いは、社内LANなのでsslとdrac関係はやらないこと。
続いて、大きな違いはmailboxでなくてmhフォルダだってこと。
そこで、mh2maildirなんてものを取ってきてやってみることに。
% cd
% mh2maildir -R -courier Mail Maildir
ここで、mh2maildirがエラーを吐く。原因は、スクリプトの中で FreeBSDの場合はsedに-Eオプションを付けてるため。/usr/local/bin/sedがインストールしてあるとエラーになる。
そこで、-Eオプションを付けてるところをコメントアウト。(もちろん、/usr/bin/sedを見るように変えても良いかもしれない)
続いて、.procmailrcの編集。やることは、自宅でやったのとほぼ同じ。
  • MAILDIRの修正
  • DEFAULTの記述
  • LOGFILE, LOCKFILEの修正
さらに、.folrders, .wl, .emacsあたりを編集して、Maildir対応にする。
  • .folders は、%#mh/a/bなどとなっているものを、%INBOX.a.bなどのように修正。
  • .wl は、以下のように修正。(変更箇所だけ)
    (setq elmo-localdir-folder-path "~/Maildir")
    (setq wl-default-spec "%INBOX.")
    (setq wl-trash-folder "%INBOX.Trash")
    (setq wl-fcc "%INBOX.Sent")
    
  • .emacsは、以下のように修正。(変更箇所だけ)
    (setq proc-log-list (list "~/Maildir/PROCLOG")
          proc-keep-log "~/Maildir/listlog"
          proc-lock-file "~/Maildir/.lockmail"
          prom-wl-keep-log-max-size 20000
          prom-wl-get-new-mail-optional-method 'prom-wl-check-list-folders
          prom-wl-folder-prefix-alist '((imap4 . "%INBOX") (nil . "%INBOX"))
          proc-folder-regexp "  Folder: \\([^ \t]+\\)/new/"
          prom-wl-check-folders '("%INBOX")
          )
    
    ※ これだと、procmailがMaildir/newにファイルを入れたときに、prom-wlがエラーを出す。回避方法は今のところわかりません・・・。
ありがたくないことに、mh2maildirは既読のメールも全てnewに振り分けてくれるらしい・・・。
せっかくインストールしたMailmanですが、Subjectにシーケンス番号が出ません。
探したら、国際化 Mailman に関する日本語情報なんて言うページを発見。
これによると、Mailman-2.1.4用修正パッチをあてると幸せになれるみたいです。
そこで、portsのmailmanはさくっと捨てて、ソースからコンパイルすることにします。
# cd /var/src
# tar xvzf /usr/ports/distfiles/mailman/mailman-2.1.4.tgz
# cd mailman-2.1.4
# cp /usr/ports/mail/mailman/files/patch* .
# cp ~/mailman-2.1.4+patch.20040123 .
# patch -p0 < mailman-2.1.4+patch.20040123
# patch -p0 < patch-Mailman::Defaults.py.in
# patch -p0 < patch-Mailman::htmlformat.py
# patch -p0 < patch-README.EXIM
# patch -p0 < patch-misc::mailman.in
# configure --prefix=/usr/local/mailman \
  --with-var-prefix=/var/mailman \
  --with-python=/usr/local/bin/python \
  --with-username=mailman \
  --with-groupname=mailman \
  --with-mail-gid=mailman \
  --with-cgi-gid=www \
# make
# make install
※ できあがったDefaults.py だと、%%LOCALBASE%%って言うのが残ってしまうので、patch-Mailman::Defaults.py.inを書き換えてからやると幸せかも知れない。
※ 今回、portsを読んでいて疑問だったのが、ちゃんとpowerlogo.gifのファイルはportsに入っていて、iconsディレクトリにインストールされるみたいだったんだけど、なんで入らなかったのかな?
知人が管理しているメールサーバにも、スパム対策を入れたいと言う相談を受けたので、もうちょっと調べてみた。
で、まずは前回いい加減に飛ばしたamavisの分類。
  • amavis-perl: perlで書かれたamavis。大元?
  • amavisd: amavisをデーモンとして起動できるようにしたもの。
  • amavisd-new: amavisdをpostfixなどから呼びやすくして、パフォーマンスの改善を計ったもの。さらに、中からSpamAssassinが呼び出せる。

spamassassinは、うちの場合は個人のprocmailから呼び出している。
postfixのフィルタとして使う方法は、SpamAssassinのインストールが参考になる。

で、postfixのフィルタには簡単なものと複雑なものと2種類あって、上述の参考サイトで使っているのは簡単なフィルタ。
簡単なフィルタは、postfixからpipeでメールを受け取り、postfixのsendmail(pickup)経由でpostfixに戻る。
複雑なフィルタは、postfixからsmtpでメールを受け取り、smtpでメールをpostfixに戻す。
ちなみに、amavisdの場合は、pipeで受け取ってsmtpで戻している。
amavisd-newの場合は、smtpで受け取ってsmtpで戻すらしい。
と、言うわけで、特にamavisd-newにバグなどがないようであれば、amavisd-newを使うのが、一番ハイパフォーマンスにスパムとウィルスのチェックができるようだ。
※ ここで良くわからなかったのが、SpamAssassinをpostfix(のフィルタ)から呼び出した場合は、ベイズの学習はどこにされるのかしらん??ってこと。
せっかくの機会なので、知人のサイトではamavisd-newを入れて実験台になってもらうこととしよう・・・。

amavisd-newの導入は、[AMaViSd-new + Clam Anti Virus for Postfix 2.x]あたりが参考になりそうだ。
ここの肝は、amavisd.confの設定で$final_spam_destinyD_PASSにしていること。
ウィルスと判定されたメールは、問答無用で送り主に返して良い(最近From詐称が多いので、管理者だけにメールって言う議論もあるでしょうが・・・)のだが、スパムは誤認識が怖いので、バウンスしたりリジェクトされるよりは、そのまま宛先に届いた方が良いと思われる。
後は、受け取った人がメーラでヘッダを見てはじいてくれれば良いのだ。
※ そもそもpopで受け取りたくないって場合は、個人でprocmailを使ってもらいましょう。
仕事をしていたら、突然大音量で鳴り響くサイレン!
何事か!と思ってメインマシンのスピーカーを切っても消えません。
で、音の出所を探ったら、個人所有のFreeBSD・・・。
焦ってケースを開け、ケースのスピーカーのケーブルを抜くつもりでスタンバイスイッチのケーブルを抜いてしまった後、電源を切ってからスピーカーのケーブルを抜きました。
再起動したら音は消えた(ケーブル抜いてあるからあたりまえ)ものの、原因がわかりません。
CPUの温度が60度あったので、とりあえずCPU負荷のかかるdnetcを止めて様子を見ます。
CPUの温度は50度くらいで安定したかのように見えましたが、そこからやはりじわじわと上昇します。
気をつけて良く見てみると、電源ファンが止まっている!
うう、短い寿命だったわね~、と思いつつ、今日の帰りにでも替えの電源を買ってくるしかあるまい・・・(泣)
電源自体はそんなに値段しないと思うけど、交換は結構面倒なんじゃないかな~と思うとブルーになります。
ケースを開けっ放しで運用するわけにもいかないので、午前半休にしてPCデポに電源を買いに行く。
WEBで調べたら、平日は朝11時からと言うふざけた時間。せめて10時には開きませんか・・・?
最近自作にもちょっと力を入れている(かもしれない)PCデポ。電源もコーナーがあって並んでいます。相場は5千円~1万円くらい。最低でも300Wくらいだけど、今まで使ってたのは250W。そんなに大きいのはいらないんだけどな~。
と思っていたら、「広告の商品」とか言って税別2,270円の350W電源を発見!
SW TECHNOLOGYとやらの、SW-350 Super Silent Power Supplyとか言う製品。
早速買って帰って取り付けてみる。
特に問題なく起動し、無事に使えている模様。
・・・静音とは言いずらいかな~(笑)
MTでは、書いたエントリーは、保存して公開するまで実際の見た目がわかりません。
これだと不便なので、ソースをつらつら読んでいたところ、tmpl/cms/preview_entry.tmplのCSSを読むところを以下のように変更することで、確認画面でCSSを有効にすることができました。
<link rel="stylesheet"
 href="<TMPL_VAR NAME=BLOG_URL>styles-site.css"
 type="text/css">
まあ、確認できる代わりに確認画面の見た目ははげしく格好悪くなるので、使うかどうかは個人の趣味ってところですかね~。
blogをチェックするのに、あると便利ってことでRSSリーダーを探してみる。
いまいち、定番っぽいのを見つけられなかったので、SharpReaderってのを入れて使ってみた。
ちょっと面白いかもかも。

p2

| | コメント(0) | トラックバック(0)| Edit
RSSリーダーは便利そうなんだけど、私のように複数のPCから見ていると、未読情報が共有できないとつらいのです。
そこで、良いものはないかな~と探していたら、p2機能拡張パッケージなんてものを見つけました。
p2と言うphpで書かれた2chビューアの拡張パッケージで、RSSが読めるみたいです。
と、言うことでインストール。例によってhttpsのページに配置して、デフォルトだとそのままp2以下に作るdataディレクトリを別の場所にして、できるファイルの権限のotherアクセスを落とします。
・・・なかなか面白そうではあるんですが、2chの方は良くできていそうなんですが、RSSの方の未読管理はできなさそうに見えます。
ん~、作者の人も暫定的な対応って言ってるし、まだまだなのかな~?
p2を入れてみて、2chビューアとしてはなかなか便利だな~と思ったのですが、RSSのリーダーとしては未読管理ができないっぽいのが痛いです。
さらに、ログインの機能はあるんだけどユーザは一人だけ、当然、未読の管理も複数ユーザを前提にしていません。
私の使い方的には、SharpReaderみたいなのがWEBでできて、かつマルチユーザと言うのが理想的です。
探しても見つからないので、暇を見つけてぼちぼちと作ってみたらどうだろう~なんて無謀なことを考えて見ました。
Do You PHP?さんのサイトにてPEARのXML_RSSを使ったRSS Readerのサンプルがあったので早速(パクッて)試してみたんです。で、書いてあった通りもの凄く簡単なので「こりゃ楽だ」と思ったら、なんと日本語が文字化けするではないですか。
なんてサイトを参考にしたところ、phpだとpearのXML_RSSなんちゅーパッケージを使うと、簡単にRSSが読めるみたいです。
さっそくうちでも入れてみよう~とportsからdevel/pear-XML_RSSを入れてみようとしましたが、エラーが出て入りません。
どうも、php自身をwww/mod_php4から入れたのが問題らしく、Makefile内でWITHOUT_CLIが定義されて、それに引っ張られてPEARがnoになったりしてるみたいです。
謎なことに、pear自体は入っていて、なんか動きそうな雰囲気なので、portsを使わずに以下でXML_RSSをインストールしたら無事に動きました。
# pear install xml_tree
# pear install xml_rss
試してみたところ、上記サイトに書いてある通り日本語が化けました。
さ~、まずはXML_RSSのソースに手を入れるのかな?
さ~今日もブログの更新・・・と思ったら、ブラウザが「証明書の期限が切れてますぜ~」と文句を言う。
証明書を調べてみたら、3/27で切れてるじゃないですか・・・。
そこで、証明書の期限の延長をgoogleで調べてみたけど、該当するページが見つからない。
しょうがないので、ここの手順通りに証明書を作り直す。
毎年やるのもダルいので、手順2の-days 365-days 3650に、sign.sh の中のdefault_days = 365を3650に変更して作り直す。
これで、10年間有効な証明書の出来上がり~♪
bulkfeedsSimilarity Searchが使いたくて、Individual Archiveテンプレートにjavascriptを追加してみる。
しかし、出ないな~と思って調べてみると、bulkfeedsにRSSを登録しないといけないらしい。
早速登録してみるが、記事の登録時に自動的に更新する場合には、pingサイトにも登録しておいた方が良いらしい。
そこで、ping.bloggers.jpにも登録するために、MTのBLOGの設定から、ping.bloggers.jpへの通知にチェックして、保存してみる。
これで、新しい記事を登録したら、ping.bloggers.jpに出るようになるのかな?
さらに、ping.bloggers.jp: ちょっとした設定変更を参考にして、indexテンプレートのヘッダにRSSの記述を追加す・・・と思ったら、既に追加されているようです。
う~ん、なんでping.bloggers.jpにRSSが出ないのかな~?
このブログでは、設定ファイルの中身やコマンドを打ち込んだときの内容を、htmlのpreタグで囲んでいます。
設定ファイルはこんな感じ
そして、cssの設定で上のように見えるようにしています。
しかし、私のブラウザはだいたい縦長にして見ているので、どうしても本文よりもpreタグの中身が横に大きくなります。
今までは、格好悪いな~と思いつつほっておいたのですが、cssのoverflowって言うのにscrollって指定してあげるとスクロールバーが出ることがわかりました。
(スクロールバーを出すためには、どこを越えたらoverflowするかを教えてあげないといけないので、合わせてwidthやheightを指定します)
しかし、こうすると上のようにほとんどの人のブラウザでスクロールバーが必要ないであろう状況でもスクロールバーが表示されてしまいます。特に、1行だけの内容がならぶようなときにはうざったいと思います。
そこで、overflowにはautoなんてものが指定できるようなので、喜び勇んでやってみたのですが・・・駄目です_| ̄|○
なんと、autoの場合は、スクロールバーが必要だと判断した時点で、ブロック要素の大きさはそのままでスクロールバーが表示されるのです。
1行だけしかないような状態で、横スクロールバーが出たりしたら・・・スクロールバーしか見えません!
む~、使えないの~。と言うわけでしばらくはこのまま行くのです。
最近のperlスクリプトは、perl5.6の新機能を使っているものが多いようなので、perl5.6をインストールしてみる。
# portupgrade -N lang/perl5
# use.perl port
これで、/usr/bin/perl が perl5.6 になる。
続いて、今までperl5.005で入れたパッケージを5.6用に入れなおす。
portupgrade -f p5-\*
※ これをやらなくても動くような気はするけど、一応・・・。
後は、perl関係のデーモンを再起動して終了~っと。
昨日の夕方から、やけにたくさんウィルスが飛んできます。(しかも社内から)
どうも、私のメールアドレスはどこかの名簿に載ってるらしく、普段からもFromを詐称されて、「おまえんところからウィルス来たぞ!」的なメールはたくさん来るんですが、今回は私宛でも私がFromでもなく、社内のメーリングリスト宛で飛び回っているようです。
まさか、うちの社内にメール添付のウィルスを直接開いちゃうような人はいないよな~と思っていたのですが、どうも昨日の時点ではウィルス定義ファイルが出回っていないウィルスだったようです。
さらに、IEのセキュリティーホールを突くので、パッチをあてないでOEを使っている人などはメールを見るだけで感染してしまうのだとか。
※ まあ、それにしてもソフトハウスの社員が感染してしまうのは問題だと思いますが
昨日の夜の時点で、うちにインストールされているf-protやsophosではウィルス定義ファイルが出た模様。Symantecはちょっと遅れを取ったのかな?
あ、ちなみにウィルスは、Netsky.Qって奴らしいです。
2004年3月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

このアーカイブについて

このページには、2004年3月に書かれたブログ記事が新しい順に公開されています。

次のアーカイブは2004年4月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.1.1