コンテンツへスキップ

研究室内Webサーバーの更新

先日、やっとサーバーマシンを入れ替えました!
これまで使っていたマシンは10年以上前のもので、OSはWindows Server 2003の32 bit版!
Apacheは2.2で古く、PHPやMySQLのバージョンもかなり古いものでした(OS等のスペック的に上げられない)。とはいえ、サーバー用のマシンだったので、非常に堅牢で、大きなトラブルもなく安定して動いてくれました。

参考までに、ApacheとはWebサーバーのソフトで、Webページを表示させます。MySQLはデータベースで、データを格納しているやつです。PHPはMySQLからデータをとってきてApacheに渡したり、MySQLにデータを格納したりする、というイメージですかね。これらApache,PHP,MySQLが三位一体となって機能しています。

新サーバーは新たに買ったわけではなく数年前のマシンですが、まぁ、Webサーバーとして使うには十分なスペックでしょう。Linuxではなく相変わらずのWindows(Win10 Pro)ですが、64 bitなので、ソフトはすべて最新にしました!
しかし、これが地獄の始まりでした(笑)

サーバーを入れ替える際には、あらかじめ開発用環境で構築後、本番用サーバーに移すわけですが、全く動きませんでした。自作したDBはもちろん、トップページ用のPukiWikiも。それが昨年の年末の話。いきなり心が折れました。

主な原因はPHP。旧サーバーはバージョンが5.3でした。もちろん運用開始時は最新版でしたが、それが長い年月の間にどんどんバージョンアップされ、今は8.1になっています。記述方法がかなり厳しくなり、自作のDB用のファイルは全面書き直しを強いられました。
さらなる問題はMySQLのバージョンアップです。これも新しくなることで若干動きが異なります。

あるページを修正し、いざ動くかどうかテストして動かなかったとき、それがPHPが原因なのかMySQLが原因なのか、はたまたApacheが原因なのか全く分からないので、何をどうすればよいか途方にくれます。ブラウザの更新ボタンを押した後にページが表示されなかったときの絶望感といったらありません。これを何度味わったことか!心が折れまくりです。ドットやカンマの有り無し、クォーテーションとダブルクォーテーションの違いなど、細かいところにミスがないか目を皿のようにして数10~数100行あるソースコードを見るのは本当に大変でした(×数10ファイル)。

ただ、表示されないとはいえ「このページは動作していません」というメッセージが出るのか、あるいは全画面が真っ白だったり、途中まではちゃんと表示されるなど、少ない情報も解決の手掛かりになりました。また、記述内容を減らしてうまく動いた後で徐々にソースコードを足していく、という作業も行いました。実験でうまくいかなかったときのトラブルシューティングと同じですね!

そういった作業を年末年始の休み、土日、平日の夜を使ってずっとやっていました。そんなこんなで、だいぶ環境も整い、いよいよ本格運用の時期が来たと思いましたが、話はまだ終わりません。

実は最初から開発環境はレンタルサーバーで行っており、そのPHPのバージョンは8.0でした。レンタルサーバーを使えば作業場所がどこであれ、シームレスに作業が続けられるのが良いですよね。実際、宇都宮(平日)と東京(週末)の間で移動時にデータの持ち運びは不要ですし、クラウドサービスを使っている感覚でした。さて、PHPは今でも8.0は8.1や7.4と並んでそれぞれ今でも更新が続いています。8.0と8.1はあまり違いないだろうということであまり気にしていませんでしたが、「8.0では動くけど8.1では動かない」というものがあり、そこでも心を折られました。基本、ソースコードの文法は間違っていないはずなので、何が間違いなのかすら分かりません。でも長年の経験で(?)その主な原因はMySQLとの相性だと分かりました。実はそれに気づいたのが最近で、データをレンタルサーバーからバックアップ用のPC(PHPは8.1)に移行した際に気づきました。すべての動作を試し切れていないので本格運用後もバグを見つけました。まだバグが残っている可能性はありますが、まぁ、その時はその時です(笑)
徹底的にバグフィックスするのは労力も時間もかかりますしね。早く新サーバーを運用したいという気持ちが強かったのもあります。

いやー、結局サーバーを替えたところで機能はほとんど変わらないのに、そこまで努力する必要あるの?と思われるかもしれませんが、それがロマンですよ!
マシンのスペックがUPしているので、クリックしてから画面が表示されるまでコンマ数秒速くなっているでしょう。そう考えるとうれしいですし、替えた甲斐があるってもんですよ!ねっ?

というわけで、各種DBの機能はほとんど変わらないので紹介ページは更新しませんが、トップページ(PukiWikiで作ったポータルサイト的なやつ)だけ少し変更があるのでそこだけ追記しました。ぜひご覧ください!
直リンクはこちら->室員専用ページ
(西川)