ホームサーバが出来るまで。

Amebaでブログを始めよう!

Movable Type 3.15-ja にアップグレード

Movable Typeに脆弱性があるようなので、いまさらですがアップグレードしました。(ついでにカテゴリの階層化にも興味がありました。)

公式ページを見て、アップグレード版をダウンロードし、展開したファイルを、WEBサーバで公開しているcgiの下のmtの中に入れました。
次いで、mt-upgrade31.cgiをWEBブラウザ経由で実行。通常は、管理や投稿などを行うmt.cgiと同じ場所にあると思います。

Upgrading your databases:
Creating Dynamic Site Bootstrapper.
Creating Dynamic Pages Error Template.

Done upgrading your schema! All went well.

こんなメッセージが出たら完了。サイトの再構築をしたら、管理画面、公開用の画面とも、下のほうのバージョン表示が、Movable Type 3.15-jaになっていたので、成功したようです。その後、cgiを置いたフォルダからアップグレード用のスクリプトを消しておきます(rm *upgrade* )。

なお、トラブルは発生しませんでしたが、作業の前にバックアップを取っておいた方が良いでしょう。

参考リンク
http://www.movabletype.jp/manual/mtupgrade.html

ダイナミックDNSへの登録を自動的に行う

以前、ダイナミックDNSで書いたように、ダイナミックDNSへIPアドレスを登録するスクリプトを準備しました。しかし、IPアドレスが変わるたびに手動で実行するのは面倒ですし、留守の間は困ります。そこで、cron でこのスクリプトを実行するようにします。山本恭弘さん作成の ddns-update.pl のコメントにもあるように、
5,15,25,35,45,55 * * * * /usr/local/ddns/ddns-update.pl

/etc/crontab
に追加しました。cron は /etc/crontab のタイムスタンプが変わっているか、自分で調べるので、リスタートせずにそのままで OK です。しばらく様子を見ていたら、スクリプトがIPアドレスを記録するファイル current_ip の中身が空になっています。どうやらうまく動いていないようです。スクリプトを直接起動すると、うまく動くので、cron 絡みでなにかミスをしているようです。こんなときは、cron が何かエラーを出していないか、確認してみます。
/var/log/cron
が cron のログファイルです。これを見ると、スクリプトが意図した時刻に起動されていることが分かりました。しばらくしたら、root 宛てに Cron Daemon さんからメールが来ているのに気づきました。wget: not found だそうです。ログインシェルから実行したときと、cron から実行したときとで、環境変数 path が違っているとかそんなところだと思い(未確認)、スクリプトで wget を呼んでいるところを全部フルパスにしたら、うまく動くようになりました。

FreeBSD 5.3-RELEASE

FreeBSD 5.3-RELEASE が公開されています。週末に少し様子を見てみるつもりです。

apache のアップグレード

apache 2.0.52 がリリースされてから1ヶ月もたってしまいましたが、
今まで使用していた 2.0.51 から、アップグレードしてみます。
やり方は簡単で、2.0.52 をダウンロードして、ファイルを展開し、
./configure; make; make install
して、成功したら、httpd を再起動します(apachectl で出来ました)。
設定ファイルなどのバックアップも取っておきましたが、
今回は make install したままで、今までどおりに動きました。
また、アップグレードを忘れないように、apache のannounce mlにも登録しておきました。

(参考リンク)
コンパイルとリンク - Apache HTTP サーバ

メールを送る

MovableType の「アップロード」を使うと、
ftp などを使わなくても、適当なファイルをサーバに置くことができますが、
サーバのファイルを取得するには、httpd で公開するしか無いようです。
設定ファイルなど、httpd で公開するのはちょっと困るものの場合は、
FreeBSD のデフォルト設定で、メールで送ることが出来ます。

mail -s subject to-addr

subject に題名、to-addr に宛先のメールアドレスを指定して、mail コマンドを起動し、
標準入力から本文を入力します。
cat からパイプでつなぐことも出来ます(標準入力なので)。
ログファイルなどはテキストファイルなので、この方法で OK でした。
ただし、平文なので、問題にならない範囲に限る必要があります。

(これもメモです。あたりまえ過ぎてすみません。)

telnet で GET する

HTTPD の動作を見るために、telnet で接続してリクエストをする方法を、メモしておきます。

telnet www.xxx.xxx 80

一番目の引数にホスト名、二番目の引数にポートを指定します。http は標準では 80 です。
接続したら、

GET / HTTP/1.0

などのリクエストを入力して、2回つづけて改行をします。
一番目の / はサイトのパス(DocumentoRootが / )です。
HTTP/1.1 200 OK
が返ってきて、続けて色々と受信したら、その内容を確認。
200 以外の値が意図せずに帰ってきたら、
パスが間違っている可能性が高いのでやり直します。

(今日は本当にメモでした。よく忘れるので・・・・)

favicon.ico を作る

apache のアクセスログを見たら、"GET /favicon.ico HTTP/1.1" で 404 が発生していました。file not found です。アクセス元は自分。何かと思って google で検索したら、先人の知恵がたくさん出ました。まとめると
・IEのお気に入りに表示される小さなアイコンである。
・firefoxのタブなどに表示される小さなアイコンである。
・サイトのルート( / でアクセスされる場所)に置く。
ということが分かりました。
アイコンは Windows のペイントで、32x32 のビットマップを作り、towofu's SOFTさんの@icon変換というフリーソフト(感謝!)でアイコンにしました。そのファイルを httpd.conf で DocumentRoot に指定したディレクトリにおきます。firefox で開いて、タブにアイコンが出ることを確認、アクセスログで "GET /favicon.ico HTTP/1.1" 200 になることを確認、以上で作業が終了です。

参考リンク
電話研究所:favicon.ico の使い方
hirax.net:favicon.ico の正体
Webビジネスコンサルタントのネタ帳:favicon.icoの解説と注意
@アイコン変換

apache のログに referer と agent を付ける

apache のアクセスログを見ていたら、不正なURL文字列のようなものがありました。これ自体はとりあえず問題にならないのですが、他にも何かわかるほうが便利なので、ログに referer(どこのリンクから来たか)と agent(httpクライアントの種類など)を記録することにします。
httpd.conf に LogFormat という項目があり、いくつかのフォーマットが定義されています。refere と agent が追加されるフォーマットが定義済みで、定義の行の最後の nickname が combined になっています。これを CustomLog の項目で指定すると、該当するフォーマットで記録されます。これを指定します。バーチャルホストを使っている場合は、該当する <VirtualHost> のところにある CustomLog に書きます。
# CustomLog logs/dummy-access_log common
CustomLog logs/dummy-access_log combined
httpd を再起動して、試しにアクセスしてみます。ログに記録されていたら完了です。なお、ログのサイズが大きくなるので、様子を見ておく必要があります。

Movable Type のトップページに画像を追加してみる

Movable Type(以下、MT)が動いているようなので、トップページに何か追加してみようと思います。

MT の編集画面(mt.cgiというやつ)で、対象のウェブログを選び、管理の中にあるテンプレートを選びます。その中に「メインページ」という項目があるので、クリックすると「テンプレートの中身」を編集できます。MT 独自のタグというか、変数というか、がありますが、その他は普通の html のようなので画像を表示したい場所を決めてタグを追加しました(ソースを見てあたりをつけました)。今回は、Powered by Movable Type 3.01D-ja を探して(MTVersion となっていましたが前後も見れば簡単です)、その後に BSD のデーモン君を付けてみました。

テンプレートの編集をしたら、「保存」と「再構築」をしないと、公開するページに反映されません。忘れずにボタンを押しておきます。

Movable Type を使ってみる

自分で作った WEB サーバならいろいろ試せる。というわけで、Movable Type をインストールしてみます。www.movabletype.jpから MT-3.01D-full-lib-ja.tar.gz をダウンロード。登録などは、画面の指示に従って行います。Windows PC からダウンロードしたので、適当な方法で WEB サーバに持っていきます(USB メモリを使いました)。まずは、tar で展開して httpd から実行可能なディレクトリにコピーし、.cgi のファイルを実行可能にします(chmod +x *.cgi)。次に mt-check.cgi をブラウザから開きます(http://xxxxx/mt-check.cgi)。問題が無ければ mt-load.cgi をブラウザで開くと初期化が完了です。mt.cgi を開いてユーザ名 Melody、パスワード Nelson でログイン。あとは、画面の表示にしたがって weblog の設定を行えば完了です。サイトの URL に設定した URL をブラウザで開いて blog の画面が出るはずです。管理画面はスクリプトを置いたディレクトリの mt.cgi になります。マニュアルへのリンクもあります。

何か問題がある場合
permission deyind になったら実行フラグ(ls -l で x がついているか)を確認。ディレクトリの owner も確認しましょう(バーチャルホストの設定の httpd.conf の編集や chown の実行も参照)。