色々アップデート

忙しさにかまけてサーバのメンテナンスをまったくしてなかったので、週末にまとめて色々アップデートしました。
自宅サーバって色々無理が利くんですけど、こういうのがめんどくさいです。

作業の概要

  • Apache - 1.3系から 2.0系へのマイグレーション
  • PHP - アップデート
  • Perl - アップデート
  • MySQL - アップデート

Apache - 1.3系から 2.0系へのマイグレーション

マイグレーションって・・・ちょっと大袈裟ですけど、メジャーアップデートなので気分的にマイグレーションとか言ってみました。
なぜこのタイミングで 2.0系にアップデートしたか?
うーん、気分です。

っというのは半分本当ですけど、一応まともな理由を挙げると以下のような感じ。

  • だいぶ前に 1.3.36 が出ていた
  • 今見たら Windows用のバイナリが無い
  • いつの間にか 2.2系が Satable になっていた
  • (さらに)2.0系が Legacy release になっていた(1.3系も当然 Legacy ・・・)

はい、まぁ「レガシーだ!」とか「安定版だ!」とかってやってたらキリが無いんですけど、さすがにバイナリが無いのは痛いです。1.3.35 まではアーカイブサイトにあるのに、1.3.36 だけが無い理由が良く分からないんですけど、無いものは無いので仕方がありません。

と言うことで 2.2系へアップデートしても良かったんですが、その他のモジュール(PHP とか)との相性とか、どの程度安定しているのか良く分からなかったので、ひとまず 2.0系を入れてみることにしました。

1.3系から 2.0系へのアップデートで注意するのは以下の2点くらいだと思います。

  • モジュールの切り替え
  • VirtualHost の設定

基本的に手動で追加した 1.3系用のモジュールは 2.0系では動かないので、2.0系のモジュールに変更する必要があります。

VirtualHost は単純に httpd.conf の記述を変更するだけです。
1.3系では VirtualHost ディレクティブを

<VirtualHost *>

としても問題なかったんですが 2.0系では

<VirtualHost *:80>

としないと設定が有効になりません。


以上で、Apache のアップデートは終わりなんですけど、Webサーバのメンテナンスで一番面倒なのはアップデートの作業より、むしろ準備のほうです。

例えば、PHP とか MySQL の更新の場合はページによっては影響が出ますが、WEBサーバ自体が長時間とまることはありません。
作業中影響が出そうなサイトにはメンテナンスページへのリダイレクトを設定して、作業が完了したらリダイレクトの設定を外せばスグに復旧できます。

が、WEBサーバ自体の更新となるとリダイレクト云々以前に、応答する事すら出来ない可能性があるので上記のような対応では不十分です。
(個人のサイトでそこまでする必要があるかどうかと言う問題は・・・ですけど(汗;)

ミラーリングされたサーバを用意しておいて更新中はそっちで運用できればベストですが現実的でないので、私の場合は DNS を変更して一時的に XREA に準備したメンテナンスページにアクセスするように設定しました。

で、作業が終わったら DNS を元に戻す。
・・・ですが、DNS の変更なので即座に反映されない(環境によっては数日かかる場合も・・・)と言う問題があるので、この方法も微妙ですよね。

マイナーアップデートなら特に気にせずインストールして旧httpd.conf で立ち上げてから設定を見直すことも可能ですが、今回は古い httpd.conf が利用できないことが確実だったので DNS の変更なんていう強引な方法で対処しました。


で残った更新は、PHP・Perl と順調に来たんですけど、MySQL でやはり躓きました・・・

Windows Essentials(MSI) を使ってインストールしたんですが、MySQL Server Instance Configuration Wizard で生成された my.ini に不正な値が入っているとかで起動しません・・・

結局、innodb_log_file_size が以前の値と変わっていたのが原因だったんですが、結構見つけるのに時間がかかってしまいました。


なんとか無事にアップデートは完了したんで、しばらく様子見ですが、やっぱり定期的にアップデートしないと駄目ですねぇ・・・
設定とか、コマンドとかを忘れてしまって時間がかかってしまいます。

めんどいなぁ・・・