このweblogは9年もの間、玄箱HGの自宅サーバーで運用して来たが、昨年辺りからHDDがすごい音を出すようになり、そろそろハードウェア的に限界が来ていると思っていたのと、少し前にこの玄箱を木製の密閉式のサイドボードに入れるようにしてから、えらく高温になり、その内発火しそうなので、サーバーを引っ越すことにした。
当初、24h運転の自宅サーバーを設置した理由は、weblogを始めようと思ったら、プロバイダーの無料のホームページ設置スペースではMovableType等のCMSが使えなかったからであり、その後、Javaアプレットを公開したり、色々なCGIやJavaのサーブレットを動かして遊ぶようになって手放せなくなったが、現在はそういったことまでできる、自由が効く安価なレンタルサーバーがあるので、自宅サーバーにこだわる理由が無くなった。
しかし、今回はRaspberry Piを購入して、自宅サーバーの運用を継続することに決めた。
あの高価な、少し前まで40万超えだったMathematicaを無料で使えるということで、いつかRaspberry Piを買おうと思っていたのだが、さらに先月、Raspberry Piで個人的に思い入れのあるFreeBSDが動作することを知り、この夏休みにFreeBSDでサーバー構築すべく、Raspberry Piを購入したのである。
最新のRaspberry Pi 3はFreeBSDが未対応ということなので、Raspberry Pi 2を購入した。
microSDカードは、相性があるそうでよくわからなかったので、とりあえず日本製であれば何でも良いかと思って、Amazonで安かったTOSHIBAのMSDAR40N32Gを合わせて購入した。
とりあえず動かしてみようと、セットアップマニュアルに従って、microSDに"NOOBS"を焼き込み、HDMIケーブルでテレビと繋ぎ、電源端子にmicroUSBケーブルを挿してUSB給電可能な玄箱HGを繋ぐと、セットアップ画面が表示された。
OSの選択をしないと先に進まないようだったので、USBマウスを繋いでRaspbian OSを選択すると、1時間くらいしてOSのインストールが終わり、再起動するとRaspbianのデスクトップ画面が開いて、上部のMathematicaアイコンをクリックするとMathematicaが起動したので、とりあえず感動しておいた。
続いて、FreeBSD-11.1-RELEASE-arm-armv6-RPI2.img.xzをダウンロードして、このページに従ってmicroSDに焼き込んで起動すると、テレビにカラフルな四角形が表示されたのだが、SDカードのアクセスランプが点滅を繰り返すばかりで、そこから先に進まなかった。
何がおかしいのだろうと調べると、Raspberry Pi 2 v1.2ではSoCがBCM2836からBCM2837に変更され、ARMプロセッサーがCortex-A7からCortex-A53に変わったので、同じカーネルでは起動できなくなったらしい。
せっかくPi 3より少し割高だったPi 2を買ったのに、ガッカリである。
大量に出回っているPi 3用のFreeBSDはその内正式リリースされるだろうが、主に既にPi 2を使ってるシステムの為に販売されるPi 2 v1.2向けにもリリースされるとは限らないので、FreeBSDのリリースを待たず、Raspbianでサーバー構築することにした。
まだまだ不完全ながら、夏休みを丸々費やして、とりあえずweblogのデータを引っ越して最低限動作するようになったので、Webサーバーをこれに置き換えた。
以下、やったことを大まかに控えておく。
1. VNCの有効化
最初からRealVNCサーバーがインストールされており、デスクトップの「設定」→「Raspberry Piの設定」→「インターフェース」で有効化するだけだった。
2. aptitudeでmovabletype, apache2, mysql-serverをインストール
まずupdateする必要があった。
aptのパッケージにmovabletype 5.2.7があったので、これまでマニュアルインストールして使っていた3.3.5から移行することにした。今はWordPressが圧倒的に人気で、MovableTypeはほとんど使われなくなっているそうだが、MovableTypeはHTMLを静的に生成できるので、依然としてスペックの低いマシンに向いていると思う。
movabletypeのインストール中に、設定ファイルを自動生成するか何かのダイアログが出たが、自動設定しないを選択した。
3. Apache2の設定
/etc/apache2/sites-enabled/000-default.conf のDocumentRootを変更
/etc/apache2/mods-enabled/ にcgid.conf, cgid.loadのsymlink追加
/etc/apache2/conf-enabled/serve-cgi-bin.conf にアクセス可能アドレス設定
4. MovableTypeの試運転
mt.cgiにアクセスすると
You don't have permission to access /XXX/mt-wizard.cgi on this server.
というエラーになるので、
/etc/apache2/conf-enabled/movabletype-opensource.conf
の
Require all denied
の行をコメントアウトしてmt_wizard.cgiを有効にする必要があった。
(/usr/share/doc/movabletype-opensource参照)
それから、何故か/usr/lib/cgi-bin/movabletype/にthemesへのsymlinkが無かったのを修正した。
5. MovableTypeのデータベースの移行
MySQLのデータベースをimportした後、
https://www.movabletype.jp/documentation/mt5/upgrade/
の「既存のデータベースを上書きする方式」に従ってアップグレードした。
6. BlogのDesign Themeを"Rainier"に変更
デフォルトのデザインがもう1つな感じがしたので、定番の1つらしい"Rainier"をインストールした。
MT5.2対応と書いてあるが、html_head.mtmlの <$mt:StatsSnippet$>がMT6.0以降にしか無いので、コメントアウトする必要があった。
それから、本文と追記の境界がわからなかったので、間に線を引くようにした。
7. MT-Keystrokes v0.1.5の導入
keystrokes.plを/usr/share/movabletype/plugins/にコピー
keystrokes.plは以下の2行をコメントアウト
・"return 1 unless $MT::VERSION =~ m(^3\.);"の行
・"$eh->error("keystroke id: " . $obj->blog_id);"の行
MovableTypeの管理画面でテンプレートのComment Formを以下のように変更
・<form>タグの直後に<$MTKeystrokes$>を追加
・<textarea>タグ内にonkeypress="keystrokes(this.form)"を追加
・<input type="submit" value="Submit">タグ(2ヶ所)内にonclick="keystrokes(this.form)"を追加
8. ローカルメールサーバー立ち上げ
aptでmovabletypeをインストールした時にexim4がインストールされたので、SMTPサーバーはこれを使用した。
dpkg-reconfigure exim4-configで設定画面を開き、適当に設定した。
POP3サーバーはDovecotをインストールした。
9. 固定IP化
/etc/dhcpcd.confの末尾に次の4行を挿入
interface eth0
static ip_address=192.168.0.XX/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
(man dhcpcd.confのstaticの所参照)
Raspberry Pi 2を触り始めて最初に思ったのは、ARM v8の900MHzの4コアにしては意外に遅いということだった。
しばらく触っていると、その原因は明らかにSDカードのアクセス速度だった。
そこで、http://elinux.org/RPi_SD_cardsに書いてある方法でSDカードの速度計測をして、玄箱HGのHDDの速度と比較してみた。
・Raspberry Pi 2 + TOSHIBA MSDAR40N32G
read: 22.7MB/s
write: 12.3MB/s
・玄箱HG + Hitachi Deskstar 7K250
read: 36.0MB/s
write: 17.0MB/s
Readの速度が22.7MB/sなのはほぼRaspberry Piの限界のようなので、それほどmicroSDカードの選定が不適切だった訳ではなさそうである。
SDカードはメカが無いので当然HDDより速いと思っていたが、完全な思い違いだった。
【2017/10/15追記】
MovableTypeのバージョンアップ後、生成されるHTMLのファイル名の"_"(アンダースコア)がことごとく"-"(ハイフン)に変わっており、リンク切れを多発していたことに気付いた。
MovableTypeのFAQによると、これがデフォルトの設定らしく、Blogの設定画面のDesign->TemplatesのArchive TemplatesのEntryを開き、"Template Options"の"Archive Mapping"として"Custom"を選び、デフォルトの"%y/%m/%-f"を"%y/%m/%f"に変えると、"_"が"-"に置換されない(逆に"-"が"_"に置換される?)ようになるらしい。
過去にこんな設定をいじった記憶は無いのだが...
コメント