当 zcr.jpでは ヴァーチャルとかレンタルではなく、リアル自宅サーバで運用している。
前回更新から 5年半。半年ほど前から おそらくハードディスクが 「キぃー・・」 と 鳴き始めた。鳴きの頻度は 当初 一晩に一回程度だったものが 最近では 1時間に数回・・と悪化。
まあ、Windows2000時代の中古ノートパソコンを 1日24時間 5年半に渡って連続想定外使用しているわけで、前回更新も 先代サーバのクラッシュが原因だったし、こりゃもう 今のうちに引退していただくのがよかろうもん・・と、ついにサーバ更新と相成ったのである。
TOSHIBA Dynabook L47 266E/HD (Core i5 2.66GHz Mem: 2GB)
某中古PC専門サイトで 約 7,000円だった*1。キーボードやタッチパッドは かなり使い倒されてるが、ほとんど SSH等リモートでしか使わないのでノー・プロブレム。
OSは Windows7が入っていたが、邪悪な OSは消去し(^^;) FreeBSD 11.1-RELEASEをインストール。この導入自体はあっさりと終了したのだが、既に セキュリティ勧告が出ていたので 最新のソースコードを入手して Updateすることに。
# svnlite checkout https://svn.freebsd.org/base/releng/11.1 /usr/src # cd /usr/src # make -j4 buildworld buildkernel
これで FreeBSD 11.1-RELEASE-p1になった。このあとで カスタム・カーネルに作り直して サーバのガワが完成。
FreeBSDをいじるようになって もう20年を超えた。当時 NEC PC-9801で動く UNIX系OSといえば これしかなかった。その後、Yahoo JAPANのサーバが ほとんど FreeBSDだという情報も入ってきて ハマってしまった。*2
時代は移って 現在は Linux系の Cent OS*3が幅を利かせているが、俺もトシ喰ったし いまさら 乗り換えるのもな・・ってのが本音・・かも。(^^;)
Webサーバは、定番の Apache。*4
Apacheは 2.4系列が出て久しいが、レガシーな 2.2系列のままで行くことにした。やはり 2.4系列は ちょっと違うようだ*5。(^^;)
設定ファイル等は 新旧サーバを並行して運用し、ネットワーク経由で旧サーバから新サーバへコピー。
一部のページで使っている webカウンタの wwwcount、既に開発停止から10年以上 経ってしまいFreeBSDのportsからも削除されているが、これも旧サーバから実行環境を そのままコピーすることで無事動作した。
ここまでは順調だった。
このBLOGソフト tDiaryは 国産の言語 rubyで書かれており、まずは ruby2.3をインストール・・と思ったら、途中で コケてしまう。
エラー・メッセージから /usr/local/lib にある soファイルが見つけられていないようだ。悩んで シンボリック・リンクを /usr/lib に設定したら なんとか makeが通り、rubyのインストールは終了したものの、その後の tDiaryの関連ライブラリのインストールでも同様のエラーが。けっきょく この解決に かなりの時間を費やしてしまったのである。
結論からいうと、/usr/local/lib のパーミッションが 775(rwxrwxr x)になっていた。つまり、groupwritable ・・管理者以外のユーザが書き込み可となっているディレクトリは リンクの対象から外れてしまう*6というセキュリティが施されていたのだ。
しかし・・なんで 775になってたのかは謎。(^^;) *7
tDiaryのサーバへのインストールは無事終了したが、今度は 各ユーザディレクトリへのインストールがコケてしまう。
これも 相当 悩んだ。tDiary-4.1.0あたりからディレクトリ構成が大きく変わっているらしいのだが、インストール用のスクリプト tdiaryinstall.rbは 前のバージョンのディレクトリ構成のままファイルコピーしようとしてエラーになっているように見える。
そこで とうとう tDiary のportsメンテ担当の方にメイル。翌朝 届いていた パッチを適用したところ、今度は Gemfile.lockが無い・・というエラーが。
よくよく調べてみると コピー元に そもそも存在していないので、どうも tdiary-inst.rbで Gemfile.lockをコピーしようとしてはいけないようだ *8。とりあえず 仮のGemfile.lockをコピー元に作り、tdiaryinstall.rbを実行後に 削除する・・といった手順でエラーを回避し、なんとか tDiaryへのアクセスに成功。
しかし、今までクレーム無かったということなのだろうから・・ FreeBSDで tDiary使ってるヒトって・・ 少ないのね*9 。(^^;)*10
今回インストールしたのは tDiary-5.0.5。旧サーバで動いていたのは 4.0.5。メイジャー・ヴァージョンアップの部分*11と セキュリティがらみ*12でもつまずいてしまったのだが、ちょっと細かくなりすぎるので このへんで 端折らせていただくことにする。*13
しかし・・ 久々にアタマ使ったなー。しかも 3日もかかったし・・ 疲れたー・・・ (^^;) *14
*1 予備として もう1台 Vista時代のノート機(Core2 Duo)を買ったが、液晶の小さなドット抜けがあり、4,000円ほどだった。
*2 Yahoo JAPANどころか かの Microsoftのダウンロード・サイトも 当初は FreeBSDを使っていた。
*3 現在、Yahoo JAPANサーバは かなりの数が Cent OS。FreeBSDもあるが ほんの一握りとのこと。
*4 かつては シェア 1位だったが、最近は Windows系のサーバが増えてしまって マイクロソフト IISの方が多いそうだ。
*5 ドキュメントをちょっと読んだが、恐れをなして スゴスゴ引き下がった。
*6 いっそ、エラーで止めてくれた方が親切なのでは?? BSD系って そういう固いとこ あるよね。
*7 予行演習でインストールした予備機では 755だったので 犯人は やっぱり俺??
*8 だいたい Gemが何者なのか理解しないまま 走ってる。
*9 腐っても BSD。いや、腐ってないけど。
*10 portsの tdiary-instスクリプトは近日中に 修正されるだろう。ボランティア ありがとう。
*11 Blogkit の適用の大部分がプラグイン設定に移動した件・・
*12 @options['csrf_protection_allowed_referer_regexp_for_update']の件、そして Digest認証が効かない件・・ これらは新旧サーバ並行運用でシステム設定を進めたのが ひとつの原因。
*13 このほか、ssh の秘密鍵生成で、DESで作っときゃ大丈夫だろ・・と思ってたら ぜんぜんアクセスできず、よくよく調べたら 今じゃ DESでさえ古い・・ということで無視。ED25519で作った鍵でようやく開いた・・とか・・
*14 客観的にみて、やっぱ トシだわ・・って思ったよ。あぁー、もう考えたくない・・とか。こりゃ いかんわな。結果的に すべての問題をクリアできたから良かったが・・