先々月に始めた自作サーバの置き換え、先週末くらいでほぼ完了。
残っているもので大きなものはと言うとブログの移行くらい。「ついに」と言うか、「やっと」というか、ブログをMovableTypeからWordPressへ移行してみた。実はサーバ構築当初はインストールや設定に加えて、ブログ記事の移行が失敗するといろいろと嵌りそうな気がしたので、今回もMovableTypeをメインのブログにし、WordPressはテスト的にインストールしてみようと思っていたのだけれど、WordPressでもマルチサイト機能が利用できることと、MovableTypeの記事をWordPressの記事にインポートするのは想像するほど難しくないこと、そしてやはり圧倒的にテーマが充実していることが、長い目で見て「いつか移行するなら今やるか」的な感じでトライしてみた。まぁ、実際にやってみると「いろいろと嵌って」苦労し、MovableTypeに戻そうかとか考えた時はあったけれど 。
原則的に新サーバで提供するサービスも旧サーバと大きな変更はなし。インターネットへの公開サービスとしては:
- 自宅LANとインターネットの間のルーター
- SSH
- Apache2 ウェブサーバ
- MediaWikiサービス
- Tracプロジェクトサーバ
- Bugzillaサービス
- WordPressサイト
- gitwebサーバ
それ以外に自宅LANのサービスとして:
- DHCPサーバ
- IMAP/POP3/Postfixメールサービス
- DNS
- RKHunter
- Webalizer
あっ、FTP忘れていた(まぁいいか。今は特に必要ではないし)。
OSはいつもの最新版。インストーラはdebian相当なんだけど、パーティション分割とLVM構築で何回かやり直しした。「手動」から「ディスク全体を使いLVMをセットアップする」を行うも、インストーラは物理ボリューム(PV)とボリュームグループ(VG)しか作成してくれないので、結局インストール後に論理ボリューム(LV)を自分で作成して手動でマウントさせるはめに。逆に、ここまでやっておいてから改めてインストーラを実行すればパーテーション分割の画面での操作が「選択するだけ」になるので楽になる。LVMについてはここの情報が参考になった。ファイルシステムは、一応ここを参考にしてxfsにしてみた。あとは、全体的に意味がわからん日本語翻訳で苦労した 。
OSインストール後は、古いけど前のバージョンのドキュメントとこんな情報を参考に、各種サービスのインストール、旧サーバからのデータ移行、そして設定を繰り返した。ポイントとしては、debian系のインストールパスや設定ファイルのパス、設定項目がインターネットで検索した大体の情報と異なっているのでトライ&エラーは避けられないこと。加えてインターネットの情報はバージョンが古いものも多く、「わかりきった風の記事」は特に真偽が疑わしい内容なので注意が必要だった。しかし「こいつゼッテェーわかってないよなぁ」的な記事が多かった 。結局、こういうのも時間がかかる要因なんだよな。
ルータ兼Firewallとしてはデフォルトのufwは使わずに直接iptablesを使った。今回は攻撃モノ(IP Spoofing、Ping Of Death、SYN floodなんか)の対策も入れおき、さらに国別のIPv4アドレスで悪そうな国からのパケットは問答無用で弾くようにした。ufwではなくスクリプト化してルールを生成、保存、ロードするようにした。
ブログやWikiなんかで利用するMySQLサーバには、旧サーバでエキスポートしたsqlをそれぞれインポートしただけ。注意するのは言語設定としてuft8を指定すること。特にWordPressはマルチサイトにすると文字化けすることがあるので。
Gitで管理していたリソースも旧サーバからそのまま移動した。そして旧サーバでは最後までSubversionで管理していたPOファイルのリポジトリも順次Gitに移行していく予定で、これが完成すればオリジナルDebianパッケージのレシピとか、個人プロジェクトのソースなどを含め完全Git化できることになる。これは前から気になっていたので肩の荷が降りた感じ。だって多種多様なプロジェクト管理のコマンドの使い方を覚えておくのは大変でしょ。
ウェブサーバはApache2。こちらはブログをWordPressに移行することと、トップページとその他の静的ページの配置なんかを考えたり、自己署名による証明書でHTTPSを公開してみた。まぁログイン画面やユーザ登録時に暗号化されているだけマシか程度だけど。WordPressはUbuntu PPAパッケージから最新版をインストールしている。debianのWordPressの$WP_CONTENT_DIRは独特なので、インターネットで検索したインストール方法や設定方法といった情報はほとんど役に立たなかった。MovableTypeはデフォルトでブログの他にサイトも構築できるけど、WordPressはインストール後にいろいろ設定が必要で、この$WP_CONTENT_DIRの扱いに結構戸惑った 。旧サーバではブログをテーマや話題ごとに複数公開していたので、WordPressでもマルチサイトの機能を利用して、同様に複数のブログを公開するようにしている(一部は予定)。そしてブログ毎に旧サーバのMovableType5でエキスポートした記事をWordPressのプラグインを使ってインポートしている。ここで、てっきり記事の文字データ以外にも写真なんかの画像データも一緒にインポートしてくれるものかと思ったら、そうではなかった
。インターネットで検索した情報にはそんなことを明確に説明しているものがなかったので出来るものと思っていたので結構衝撃だった。ホント、いい加減な情報を公開しているサイトが多い。文体が偉そうなのでさらにムカつく。まぁ、ここでMovableTypeに戻ってしまおうかと悩んだものの、何回かやり直しをして移行できた。リンク先も検索・置換のプラグインを使えば楽だけれど、細かいところは手動で修正してやる必要はある。あと、マルチサイト+サブディレクトリによるサイト構築ではWordPressをApacheのドキュメントルートにマップできないとかで、仕方なくサイトのトップページはWordPressで作成したいわゆる「固定ページ」にしている。なのでRSSフィードなんかを動的に渡す方法がわからないので、当分は手動でフィードを更新することにする。有料もあるとはいえ、それでもテーマの数には驚いた。MovableType6なんて使えそうなのは数個くらいしかないぞ
。
MediaWikiやTrac、Bugzillaといたサービス系は、一応その当時現在で最新版にしている。データの移行はそれぞれ親切な移行ガイドがあるのでそれらを参考に行えば問題なし。
旧サーバのfaviconはGNOMEのロゴだったけど、最近ハマッている城や歴史モノにあやかって、自分の本家の家紋にしてみた。
他には、このバージョンのOSからsystemdによるサービス制御が導入されたので、systemctlやjournalctlコマンドの使い方、それからrkhunterは必須かな。
ということで、まだまだ完全ではないけれど、ひとまずは Welcome back to Mikeforce::Homepage!!