「PHP」とは、Web開発で使われているサーバーサイドのスクリプト言語で、動的にWebページを生成することができるもののこと。

そのPHPについて、新しいバージョンであるPHP8が正式リリースされます。

そこで今回は、PHP8 のリリースに備え、知っておきたいことをご説明します。

================
目次
1:PHPとはなにか
2:PHP5系で延命する措置
3:まとめ
================

1:PHPとは

Webサイトのシステム開発に多く使われ、またWordpressやEC-CUBEなど、有名どころのフリーのCMSやECパッケージにも使用されているプログラム言語です。

PHPは他のプログラムと同様、常にセキュリティ対策やパフォーマンスの向上等を目的にバージョンアップを重ねています。
また、そのサポート期限も決められています。
たとえば、PHP 7.1 以前のバージョンは、セキュリティサポートも含め公式のサポート期間は既に終了しています。

そのため、パフォーマンス向上だけでなく、セキュリティ面を考えると、最新版であるPHP8の利用を検討すべきであることは当然といえます。

しかし、これから新しいシステムをゼロから構築する場合は特に問題ありませんが、
現状動いているシステムを、PHP8に対応すると、コストや移行の運用面での負担が大きいのも事実です。

そんな簡単なことではないよ…というのがシステムに携われているご担当者様の本音かもしれません。

そこで、あえてPHP8の時代に、旧バージョンであるPHP5系で延命する(PHP7/8への準備としての延命)方法を考えてみます。

※あくまで暫定措置であり、最終的には最新版への対応をおすすめします。

2:PHP5系で延命する措置

CentOS7ならPHP5.4で2024年までは延命可能

まずはPHPのバージョンですが、CentOS7の標準のyumレポジトリであれば脆弱性はバックポートによって対策がされているため、5.4について、OSサポート終了日(2024年)まで延命は可能です。

なので、最低限このバージョンまで上げることができれば4年程度は問題ないといえます。

ただし、あくまで”yum前提”であることは注意です。
独自にソースからPHPをインストールした場合は、別のサポート期間となるので要注意です!

PDOを利用(に変える)

PHP5系が利用されていた時代においては、DB周りの処理にPEARを利用することが多かったはず。
ただ、いずれPHP7/8へ移行することを考えると、PEARのままでは未来はありません。

ここは素直にPDO利用に変更することを考えましょう。
MDB2やDB.phpからPDOに変えるのは大変ではありますが、メソッド自体は似たようなものがありますので、ラッパなどをつくってしまうのも一つです。

非推奨が見込まれている箇所は極力つぶしておくのが重要です。
ただ、deprecatedは致命的な問題ではないので、最悪の場合は、エラーを消すことで稼働させることができます。
そのため優先度は下げてもいいのですが、どうせならPHP7/8を見越してこの際変えてしまうのも一つです。

・非staticメソッドに対する static 呼び出し
・ereg系→preg_系関数

基本的にはエラーに従って static宣言およびpreg_系関数への書き換えをしていけばOKです。

文字コードを変えてしまう

これは言語仕様とは直接関係ありませんが、古いシステムだとEUCやSJISで書かれていることもあります。システム以外はリニューアルされてUTF8なのにシステム部分だけSJISの場合、文字化けの原因などにもなります。

この際、UTF8に変えることも検討しましょう。

なお、最近のCentOSのapacheでは、レスポンスに追加されるメディアタイプの文字セットパラメータがUTF-8に設定されているので、他の文字コードにしたければ、AddDefaultCharset Offなどにしなければいけませんのでご注意を!

3:まとめ

決して、延命自体を推奨するわけではありませんが、コストなどの負担とセキュリティなどのバランスを取りながらしかるべき対策をしていくというのも方法としては有りだと思います。

他にも対応策は考えられますので、どうしようかと悩まれたら一度ブリッジコーポレーションへご相談ください。

お問い合わせ