「PHPが古いなら、新しくすればいいんじゃない?」。そんな疑問を持ったら、まずは「言語」「プログラム」「実行環境」を分けて考えてみましょう。
にがてくんとニャン教授が、指示書のたとえと図解で、更新の裏側をひもときます。
この記事では、特定のニュースや障害の原因ではなく、PHPとシステム更新の一般的な仕組みを解説します。
1. そもそも「コンピューターの言語」って何?
にがてくん:「コンピューターにも、日本語や英語みたいな言葉があるの?」
ニャン教授:「いいところに気づいたね! プログラミング言語は、コンピューターに処理を指示するための、書き方と意味のルールだぞ。まずは『指示書を書くための決まり』と思ってみろ!」
図解:やりたいことが、動作になるまで
【人のやりたいこと】
商品の合計金額を出したい
↓ 言語のルールに沿って書く
【プログラム=指示書】
商品の価格を足す処理を書く
↓ 実行環境が読み取り、実行する
【動作】
計算結果が得られる
- 言語:指示書の書き方と意味のルール。
- プログラム:そのルールで書かれた指示書。
- 実行環境:指示書を読み取り、動かす仕組み。
にがてくん:「料理なら、書き方の決まりと、レシピと、レシピを読んで作る仕組みは別なんだね!」
ニャン教授:「そうだね! ただし、コンピューターは料理人のように『たぶん、こういう意味だな』とは補ってくれない。決められたルールに従って動くんだぞ。」
練習問題
-
「言語のルールに沿って書かれた指示書」に当たるものを、次の3つから1つ選んでください。言語・プログラム・実行環境。
答えと解説
▼ ここを開く:答えと解説を見る
答え:プログラム。
言語は書き方と意味のルール、プログラムはそのルールで書いた指示書です。実行環境は、プログラムを読み取り、動かす役割を担います。
2. PHPはWebサービスのどこで働く?
にがてくん:「じゃあ、PHPはアプリの名前じゃないの?」
ニャン教授:「PHPはプログラミング言語の一つだぞ。主にWebサービスのサーバー側で使われるんだ。サーバーは、利用者からの要求を受けて、処理やデータの提供をするコンピューターや仕組みのことだね。」
図解:画面の向こうでPHPが働く
【利用者のブラウザー】
「このページを見せて!」
↓ リクエストを送る
【サーバー】
PHPの実行環境が、PHPで書かれたプログラムを動かす
↓ 必要に応じてデータを読み出し、表示内容を組み立てる
【利用者のブラウザー】
返ってきたHTMLなどを使って画面を表示する
これは、PHPでページを生成する場合の代表的な流れです。通常、ブラウザーに届くのは処理の結果であり、サーバー内のPHPプログラムそのものではありません。
WordPressもPHPで作られているシステムです。WordPress本体に加え、テーマやプラグインにもPHPのプログラムが含まれます。
にがてくん:「画面に見えなくても、裏側で動いているんだ!」
ニャン教授:「そのとおり! そして『サーバーのPHPを更新する』というときは、普通はPHPプログラムを動かす実行環境を、新しいバージョンにする話なんだぞ。」
練習問題
-
図のWebサービスで、PHPプログラムを実行する場所を、次の2つから1つ選んでください。利用者のブラウザー・サーバー。
答えと解説
▼ ここを開く:答えと解説を見る
答え:サーバー。
この図では、サーバー内の実行環境がPHPプログラムを動かします。ブラウザーは、サーバーから返されたHTMLなどを使って画面を表示します。
3. 新しいバージョンでは、昔の指示書が通じなくなる?
にがてくん:「言語が新しくなると、昔のプログラムは古文書になっちゃうの?」
ニャン教授:「全部が読めなくなるわけじゃないぞ! 『今まで使えた表現の一部が、新しいルールでは使えなくなることがある』と考えると近いね。」
図解:同じ指示書でも、部分ごとに影響が違う
【旧バージョンで動いていたプログラム】
├ 新版でも使える書き方 → そのまま動く部分
├ 新版で削除された機能 → 別の方法への書き換えが必要な部分
└ 新版で意味や動作が変わった処理 → 結果の確認が必要な部分
このように、以前のプログラムが新しい環境でも使えるかどうかを考えるときに出てくるのが「互換性」です。
更新では、新しい機能が増えるだけでなく、古い機能が削除されたり、値の扱い方やエラーになる条件が変わったりする場合があります。エラーで止まる場合だけでなく、動いていても結果が変わる場合に注意が必要です。
「古い言葉が死語になる」というたとえは、使えなくなる機能を考える助けになります。ただし、実際のプログラムは雰囲気で解読されるのではなく、実行環境の決められたルールで処理されます。
パッチと、大きなバージョン更新は分けて考えよう
- 不具合や脆弱性を直すパッチ:問題の修正が主な目的です。一般に互換性への配慮がされますが、確認が不要になるわけではありません。
- 仕様変更を伴うバージョン更新:使える機能や処理の動作が変わることがあり、既存プログラムへの影響確認が重要です。
脆弱性とは、悪用されるおそれのある安全上の弱点のことです。パッチとバージョン更新は完全に別物というわけではなく、修正パッチを含む新しいバージョンが提供されることもあります。
ニャン教授:「『パッチを当てると必ず壊れる』でも、『新版なら何でもそのまま動く』でもない。どんな変更が入るのかを確かめるんだぞ!」
練習問題
-
「PHPを新しいバージョンにすると、古いプログラムは必ず全部書き直す必要がある」。正しいか、誤りかを答えてください。
答えと解説
▼ ここを開く:答えと解説を見る
答え:誤り。
そのまま動く部分もあります。必要な修正の範囲は、更新前後の仕様の違いと、プログラムが使っている機能によって変わります。大規模な改修が必要になる場合もありますが、必ず全部を書き直すわけではありません。
4. なぜ「更新ボタンを押すだけ」で終わらない?
にがてくん:「使えなくなる命令だけ直せば、すぐ終わるんじゃない?」
ニャン教授:「おっと、指示書は一枚とは限らないぞ! システムは、いろいろなプログラムや部品を組み合わせて動いているんだ。」
図解:更新の影響は、つながっている部品にも及ぶ
【PHPの実行環境を更新】
↓ 組み合わせを確認
【自分たちのプログラム】+【外部の部品】+【周辺環境】
↓ 必要な更新・修正と、連携の確認
【システム全体が期待どおりに動くか検証】
外部の部品には、よく使う処理をまとめたライブラリなどがあります。周辺環境には、OS、Webサーバー、PHPの拡張機能などが含まれます。PHPを変えると、これらも必ずすべて交換するという意味ではなく、対応状況や組み合わせの確認が必要ということです。
WordPressなら、本体だけでなく、テーマやプラグインが新しいPHPに対応しているかも確認します。更新が止まった部品がある場合は、代替品への変更や、その部品に頼る処理の見直しが必要になることもあります。
図解:安全に更新するための道筋
【影響調査】
使っている機能・部品と、変更点を調べる
↓
【必要な修正】
プログラムや部品を対応させる
↓
【検証】
本番に近い環境で、機能や連携を試す
↓
【本番反映の準備】
バックアップ・作業手順・問題時の戻し方を整える
↓
【本番反映と監視】
利用者が使う環境に適用し、状態を確認する
特に、ログインや決済など多くの処理に関わる部分では、修正した一か所の影響が広がる可能性があります。「画面が開いた」だけではなく、入力、保存、通知、失敗時の動きまで確認する必要があります。
にがてくん:「書き換える時間だけじゃなくて、調べる時間と確かめる時間もかかるんだね。」
ニャン教授:「そうだね! 更新の作業量は、変更した行数だけでは決まらないんだぞ。」
練習問題
-
PHPを更新するWordPressサイトで、本体以外に対応状況を確認するものを、本文から2つ挙げてください。
答えと解説
▼ ここを開く:答えと解説を見る
答え:テーマとプラグイン。
テーマやプラグインにもPHPのプログラムが含まれます。本体が対応していても、それらが新しいPHPで動くとは限らないため、対応状況と実際の動作を確認します。
5. メンテナンスの裏側では何をしている?
にがてくん:「更新で壊れるかもしれないなら、ずっと古いままのほうが安心?」
ニャン教授:「そこが悩みどころだぞ。変えるリスクだけでなく、変えずに使い続けるリスクもあるんだ!」
図解:二つのリスクを見ながら、安全に移行する
【確認不足で更新するリスク】
機能停止・処理結果の変化・データの不整合など
↓ 調査・修正・検証・復旧準備で備える
【古い環境を放置するリスク】
サポート終了により、公式のセキュリティ修正を受けられなくなるなど
↓ サポート期間を確認し、計画的な更新で備える
目指すのは「更新しないこと」ではなく、「安全に更新できる状態をつくること」です。
メンテナンスでサービスを一時停止するのは、作業中に利用者の操作やデータの書き込みが重なるのを避けたり、更新後の確認時間を確保したりするためです。ただし、停止の要否は構成や作業内容によって異なり、停止せずに更新できるシステムもあります。
また、問題が起きたときに元へ戻す「切り戻し」も、ボタン一つとは限りません。更新後にデータが書き換わる場合は、プログラムを戻すだけで整合性を保てるかどうかも、事前に考えておく必要があります。
なお、特定のゲームやサービスの終了を「PHPを更新できなかったから」と断定することはできません。個別の理由は、公式発表などで確認する必要があります。
練習問題
-
PHPの公式セキュリティサポートが終了した版を使い続けるリスクを、本文から1つ挙げてください。
答えと解説
▼ ここを開く:答えと解説を見る
答えの例:新たに脆弱性が見つかっても、その版向けの公式のセキュリティ修正を受けられなくなること。
今は正常に動いていても、今後の安全性が保証されるわけではありません。更新時の不具合に備えると同時に、サポート期間を踏まえた移行計画が必要です。
まとめ:更新するのは「言語」だけではなく、動く組み合わせ
【言語】書き方と意味のルール
↓ そのルールで書く
【プログラム】処理の指示書
↓ 読み取って動かす
【実行環境】PHPなどの処理を実行する仕組み
実行環境が新しくなったとき、今あるプログラムや部品が、その環境でも期待どおりに動くかを確かめる必要があります。
にがてくん:「『新しくするだけ』じゃなくて、『今のサービスを新しい環境でも動かせるようにする』作業なんだね!」
ニャン教授:「そうだね! よく分かったじゃないか! 更新ボタンの向こう側には、調査・修正・検証がある。それが、安心して使えるサービスを支えているんだぞ。」
さらに確認したい人へ:PHP公式情報
- PHPとは何でしょう?:PHPの用途と特徴。
- Supported Versions:各バージョンのサポート期間。
- PHPマニュアルの付録:各バージョンへの移行ガイドなど。
コメント