PHPの更新作業(PHP8対応作業)
PHPで構築されたシステムを最新PHPバージョンに対応させます。
お客様のWebサイトでは単純なHTMLページのみではなく、様々なものが動作していると思います。
- お問い合わせフォーム
- Wordpress
- 独自に開発されたシステム
等々。
OSやPHP等のミドルウェア、構築したシステム内で使われているフレームワーク、これらにはそれぞれEOL(End of Life)が決められており、いずれはサポート期限が切れてセキュリティアップデートなどが適用されなくなります。
このため、いずれはOSやPHP等の更新を行う必要があります。場合によっては、サーバー会社から期限を切って、切り替えを促されることもあります。
サーバーの管理画面にPHPバージョンの選択機能がある場合、最新バージョンを選択すればいいかというと、そう簡単にはいきません。PHPのメジャーバージョンが変わると、互換性のない変更もあるため、PHPスクリプト側の修正も少なからず発生します(*1)。
このような時に弊社でPHPスクリプトの修正作業を行い、最新バージョンのPHPでも動作するようにします。
サーバー管理画面などではPHPを新しいバージョンに切り替えると、古いものには戻せなくなるケースもあるので、切り替え前にご連絡いただいた方がいいでしょう。事前に対象のPHPバージョンで動作するかのテストも含めて、修正&お見積もりの提案をさせていただきます。
直近での注意事項
2023年現在で要注意なのはCentOS7(OS)、PHP7のサポート期限でしょうか。
CentOS7は2024/6/30がサポート期限になります。まだ1年ちょっとあると考えていると、あっという間にサポート期限切れです。移行先の選定など、計画的に進めておきましょう。
また、CentOS7のPHPはデフォルトバージョンが5.4でしたが、これらのアップデートもされなくなります。今までしぶとくPHP5系で動作させていたPHPスクリプトは、Alma Linux8やRocky Linux8のCentOS8互換OSへ移行するとなると、PHP8系か、OSデフォルトのPHP7.2への移行が必要になります。
広く使われていたPHP7も最終版の7.4が2022年末にサポート期限が切れました(*2)。これからはPHP8へ移行するか、CentOS8互換OSの標準のPHP7.2を使う必要があります。
お見積もりにあたって
お見積もりはだいたい以下のような流れになります。
(1) 更新対象のPHPスクリプトの概要をご提供いただきます
(2) PHPスクリプトの内容確認
お客様のサーバー上で内容を確認させていただくか、可能なら一式コピーさせていただき内容を確認させていただきます。顧客情報のようなものが含まれることもあると思いますので、進め方は相談させていただきます。
(3) 修正内容の洗い出し
提供いただいたスクリプトの内容を弊社で確認させていただきます。スクリプトを一式ご提供いただける場合は、弊社で動作確認用の環境を構築して作業内容を洗い出します。
(4) お見積もり
参考費用
過去の事例に基づいた参考費用だけ紹介させていただきます。
-
決済代行会社様の売上管理システムの更新(フレームワークの変更およびPHP7から8.3への更新)
2,500,000円(税別)
PHP7系、フレームワークがZendFramework1系で動作していたシステムの更新作業を行いました。
まず、ZendFrameworkは開発が終了しており、PHP8に対応するために単純にシステムを一部修正すればいいという対応はできませんでした。お客様と検討の結果、Laravelへ移行することにしました。移植にあたっては、既存のビジネスロジック部分のLaravelへの依存が強まらないように注意して移行しました。
主な作業内容
- フレームワークの切り替え(ZendFrameworkからLaravelへ)
- PHP7から8.3に対応するためのシステムの修正作業
- コーディングスタイルを現代的なPSR4形式に修正
- IDE等による静的解析が効きやすいように型情報を極力追加
- phpunitを使ったユニットテストの追加
2024.11~2025.3頃作業
-
会社サイトのPHPバージョンアップ(PHP5.3から8.2へ)
420,000円(税別)
会社サイト用のCMSと問い合わせをフォーム(日本語/英語)をPHP8.2で動作するように修正しました。CMSはフレームワークを使っていない独自のもので、規模としては新着情報と製品情報の管理機能のみの小さいものです。
PHP5系のシステムでありがちなケースですが、データベースアクセスにmysql_xxx関数を使っていたため、これらをPDOを使うように書き換え、また、クエリ実行にはプレースホルダーを使うようにするなど、データベースアクセスまわりは全体的に処理を見直しました。他にもPHP8で文法的にエラーになる箇所などを修正しています。
また、PHP8.2対応の過程で以下の修正もついでに行いました。
- Directory Traversal/レスポンス分割攻撃等の脆弱性修正
- Undefined variable/Undefined array key等のWarningを修正
- DMARCがエラーになり問い合わせフォームのメールが届きにくい問題の修正
2024.7作業
-
LightSail + WordPress環境でのPHPバージョンアップ(PHP7.3から8.2へ)
120,000円(税別)
bitnamiを使ったインストールでPHPのバージョンアップができなかったため、別のLightSailインスタンスに再構築しました。新インスタンスではbitnamiを使わない構成とし、PHPのバージョンアップが行いやすいようにしました。
2024.4頃作業
-
PHP5.1の頃に開発された顧客管理システム(メニューが10種程度のもの)のPHP8対応作業
400,000円(税別)
これは、DBアクセスにPEAR::MDB2を使用しており、それらの修正や他の大量のエラーを修正(約800箇所)する必要があった比較的手間のかかった事例です。
-
PHP5.4で動作している売上管理システム(フレームワークにLaravelを使用)のPHP8対応作業
400,000円(税別)
フレームワークにLaravelを使用していたため、Laravelの更新も行いました(Laravel5→Laravel8へのアップグレード)。
-
PHP7.2で動作していた会員管理システムのPHP8対応作業
100,000円(税別)
エラーになっていた関数の修正といくつか発生していたWarningの修正を行いました。
-
PHP5.3で動作していた製品検索ページのPHP8対応作業
100,000円(税別)
製品データはCSVで保持しており、DBを使っていない小規模なシステムの修正を行いました。エラー箇所の修正とWarningの修正を行いました。
-
PHP5.4で動作していた売上管理システムの修正作業
150,000円(税別)
PHP5.4で動作していた比較的古いシステムでしたが、PHP8のテスト環境を構築して動作確認させていただいたところ、修正量は少なく対応できたケースです。Warningはそれなりに出力されていましたが、正常に動作するのであれば、今回はコストを抑えるためにとりあえず無視したいとのことでしたので、最低限の修正のみ行いました。
-
PHP5.3で動作していた顧客管理システムの修正作業
アドバイスのみ
お使いのレンタルサーバーでPHP5.3の対応が打ち切られたということで、急ぎのお問い合わせでした。システムの内容調査後、PHP7/8系への更新でお見積もりをしましたが予算が合わないようでしたので、現在使用中のサーバーで選択できるPHP5.6への対応について、弊社で動作保証はしないという条件のもと、修正箇所のアドバイスのみを行いました。お客様で修正後、動作するようになり助かったとご連絡いただきました。
-
PHP5系で動作していた社内向けシステムの修正作業
60,000円(税別)
PHP5系で動作していた社内向けシステムのPHP8対応作業を行いました。ファイルは10個程度のかなり小さなものです。対応作業の過程で見つけた表示の不具合、脆弱性についてもついでに修正しました。- 2023年7月作業
一括での出費を抑えたい場合は、保守契約(内容によりますが月3万円程度~)をしていただき、少しずつ修正していくという形でも対応可能です(対応完了までに時間的な猶予が必要ですが)。
サーバーの移行などもまとめて対応できます
システムのバージョンアップを検討する際、フレームワークのバージョンなどさまざまな要素が絡みあってきます。OSのサポート期限切れが近い場合はついでに新しいOSにした方がいいなど、お客様に合った提案をさせていただきます。
単にPHPのバージョン切り替えだけでなく、サーバーの移行も含めてまとめて対応できます。お困りのことがございましたらお問い合わせください。
本ページではPHPの切り替えについてご説明しましたが、Perlスクリプトでの対応も可能です。
参考
関連記事: PHP更新関連の記事
サーバー移転作業については、以下のページもご参照ください。
(*1) Wordpressなどはそのまま動作するでしょうが、それでもプラグインやテーマが対応していなくて動作しなくなることもあります。