「終わらない戦い」古いWordPressをPHP8に対応させる苦闘記
とんでもない苦労をする仕事にぶつかりました…。古いテーマで作られたWordPressのサイトを、新しいサーバー環境(PHP8)で動くように調整する作業です。
今回のお話は技術的な解決法などではなく、ただただ私が苦労したというだけの話を、なるべく分かりやすく伝える努力をしてみるというさらなる苦労をしている内容です。
そもそもPHPって何?なぜバージョンアップが必要?
まず前提知識から。WordPressというのは、ホームページを簡単に作れる仕組みのことです。多くの企業サイトやブログで使われています。
このWordPressは「PHP」というプログラム言語で動いています。PHPは常に進化していて、今の主流はバージョン8(PHP8)です。古いサーバーではPHP5や7が使われていましたが、最近の新しいサーバーはPHP8が標準になっています。
なぜ新しいバージョンにする必要があるの?
理由は主に2つです。セキュリティが強化されていること、そして処理速度が速くなっていること。古いバージョンのままだと、サイバー攻撃のリスクが高まってしまいます。
つまり、新しいサーバーに引っ越すなら、古いWordPressサイトもPHP8で動くように調整しないといけないわけです。
「簡単だろう」という甘い見通し
最初は正直、「まあ、何とかなるだろう」と思っていました。エラーが出たら直せばいいし、WordPressにはデバッグモードという便利な機能があります。
デバッグモードというのは、問題が起きている箇所を教えてくれる機能です。「このファイルの○○行目でエラーが出ています」と親切に教えてくれるので、そこを修正すれば解決できる…はずでした。
地獄の始まり:終わりが見えないエラー修正
ところが、これが地獄の始まりでした。
最初に致命的なエラーが1つ見つかったので、それを修正しました。「よし、これで解決!」と思ったら、次の瞬間、また別の致命的なエラーが表示されるんです。
そのエラーも修正すると、また次のエラー。さらに修正すると、また次のエラー…。
まるでモグラたたきゲーム
一気に全部のエラーを表示してくれればいいのに、なぜか一つずつしか出てこないんです。つまり、「あと何個エラーが残っているのか」が全く分からない。ゴールが見えない戦いほど辛いものはありません。
しかも、WordPressのテーマファイルには、たくさんのテンプレートファイルが入っています。トップページ用、記事ページ用、カテゴリーページ用…と、それぞれ別のファイルで構成されているので、一つ直してもまた別のファイルでエラーが出る、の繰り返しです。
「あっちを立てればこっちが立たず」の連続
さらに厄介なのは、一つのエラーを直したら、今まで動いていた別の部分が壊れる、という現象です。
これは、プログラムが複雑に絡み合っているからです。例えるなら、積み木タワーの一部を直そうとしたら、別の場所が崩れてしまう感じです。
致命的なエラーの恐ろしさ
しかも、「致命的なエラー」というのは文字通り致命的で、これが一つでも残っていると、サイト全体が真っ白になって何も表示されなくなります。お客様のサイトが見られなくなってしまうわけです。
だから、一つずつ慎重に、でも確実に直していかないといけない。プレッシャーも半端じゃありませんでした。
延々と続く苦行
この作業、まさに苦行…いや、修行…
エラーを見つけては修正し、また新しいエラーが出てきて修正し…の繰り返し。時には、修正したつもりが別のエラーを生んでしまって、元に戻してやり直すこともありました。
「もうダメだ、これは不可能なのでは?」と何度も思いました。でも、やり遂げないといけない。そんな責任感だけが支えでした。
9割解決、でも…
なんとか、悪戦苦闘の末に9割方のエラーを解決することができました。サイトも無事に表示されるようになり、ほとんどの機能が動くようになりました。
でも、10割解決できなかったのが本当に悔しいです。どうしても残ってしまう細かい不具合があって、それをどう解決すればいいのか、最後まで答えが見つかりませんでした。
「あと一歩」が届かなかったことが本当に悔しい。でも、それが現実です。
これがエンジニアの仕事
今回の経験で、改めて「エンジニアの仕事」の本質を感じました。
表面上は「古いサイトを新しいサーバーに移す」という単純な作業に見えます。でも実際にやってみると、複雑に絡み合った問題が次々と出てきて、一つ解決しても次の問題が待っている。
これは、他の仕事にも通じるものがあると思います。簡単に見える仕事ほど、実は裏で大変な苦労があったりする。お客様からは「サイトが新しいサーバーで動くようになりました」という結果しか見えませんが、その裏では何日もかけた格闘があったわけです。
学んだこと
苦しい経験でしたが、得たものも大きかったです。
忍耐力と問題解決能力
終わりが見えない作業でも、一つずつ着実に進めていけば、必ずゴールに近づけるという経験ができました。途中で投げ出したくなることもありましたが、粘り強く取り組むことの大切さを学びました。
謙虚さ
「これぐらい簡単だろう」という甘い見通しがいかに危険か、身をもって体験しました。どんな作業でも、始める前に十分な準備と心構えが必要だと痛感しました。
お客様には見えない努力
この記事を読んでくださっている企業の方々に知っていただきたいのは、「ホームページの裏側では、こんな格闘が起きていることもある」ということです。
「サーバーを新しくしたいんだけど」「古いサイトをリニューアルしたいんだけど」というご相談を受けた時、表面的には簡単そうに見えても、実は大変な作業が必要なことがあります。
だからこそ、私たちエンジニアは、お客様の大切なサイトを守るために、見えないところで全力で格闘していますっ(ふんぞり返って言っているイメージで)
今回の苦労は、お客様のサイトを安全に、そして快適に使い続けてもらうための戦いでした。9割の解決でも、それだけの価値はあったと信じています。
次はもっとスムーズにできるように、今回の経験を活かしていきたいと思います。そして、10割解決できなかった悔しさは、次の仕事への原動力にしていきます。
エンジニアの仕事は、地味で目立たないけれど、皆さんの大切なサイトを守る重要な仕事です。これからも頑張ります (^^)

頑張り過ぎて感情がおかしくなっているワタクシのイメージ。こっち見るな