本番環境のPHP・MySQLバージョンを安全に確認する具体的な手順と、今すぐ対処が必要なケースの判断基準を実例を交えて解説します。
「うちのサーバー、PHPのバージョンいくつだっけ?」——それ、放置すると危険です
こんな経験はないでしょうか。
- ホスティング会社からメールが届いた。「PHP 7.4のサポートが終了します」と書いてあるが、何をすればいいかわからない
- WordPressのプラグインを更新しようとしたら「PHP 8.0以上が必要」と表示された
- セキュリティ診断を受けたら「MySQLのバージョンが古い」と指摘されたが、どう確認すればいいかわからない
特に本番環境の場合、「とりあえずコマンド叩いてみよう」という軽率な行動が、予期しないサービス停止やデータ損失につながるリスクがあります。確認するだけのはずが、設定を書き換えてしまった——という話は、業界ではよく聞く失敗です。
この記事では、本番サーバーを傷つけずにPHPとMySQLのバージョンを安全に確認する手順と、確認後に「今すぐ動くべきかどうか」を正確に判断するための基準を、実際の対応事例を交えながら解説します。
なぜバージョン確認がこれほど重要なのか
PHPやMySQLには、それぞれ「公式サポート期限」があります。サポートが終了したバージョンには、新たに発見されたセキュリティ脆弱性のパッチが提供されません。つまり、古いバージョンを使い続けることは、施錠していない扉を放置するようなものです。
赤で示したPHP 7.4と8.0はすでにEOL(End of Life)を迎えており、現時点でこれらのバージョンを本番環境で稼働させているサイトは、脆弱性を抱えた状態で運用していることになります。
実際にFivenineでも、あるクライアント(神奈川県内の製造業)のサイトを引き継いだ際、本番環境がPHP 7.3で動いていたケースがありました。前任のベンダーが更新を先送りし続けた結果、Laravelのバージョンも古く、セキュリティパッチが当たっていない状態でした。そのまま気づかなければ、顧客情報漏洩のリスクに長期間さらされていたことになります。
安全なバージョン確認の手順
「本番環境で確認する」といっても、方法はいくつかあります。リスクの低い順に紹介します。
① コントロールパネル(最も安全)
さくらインターネットやロリポップ、XServerなどのレンタルサーバーを利用している場合、管理画面からPHPバージョンを確認・変更できます。コマンド操作が一切不要なため、これが最も安全な確認方法です。
- さくらインターネット:サーバコントロールパネル →「スクリプト設定」→「PHP設定の確認」
- XServer:サーバーパネル →「PHP Ver.切替」
- ロリポップ:ユーザー設定 →「PHP設定」
② PHPinfo()ファイルを使った確認
SSHが使えない、または使いたくない場合はこの方法が現実的です。ただし、使い終わったら必ず削除してください(後述)。
<?php
// ファイル名: phpinfo_check.php
// ※確認後は即削除すること!
phpinfo();
このファイルをサーバーにアップロードし、ブラウザからアクセスします。PHP、Apache/Nginxのバージョン、読み込まれている拡張モジュールなど、サーバー環境の詳細が一覧表示されます。
⚠️ 重要: phpinfo() の出力には、サーバーの詳細な内部情報が含まれます。公開したままにしておくと、攻撃者にとっての「設計図」になりかねません。確認が終わったら5分以内に削除するのを鉄則にしてください。
③ SSHコマンドによる確認
VPS・専用サーバー、またはSSHアクセスが許可されている環境での確認方法です。直接コマンドで確認できるため、最も正確な情報が得られます。
# PHPバージョンの確認
php -v
# 出力例
PHP 8.2.12 (cli) (built: Nov 6 2023 08:09:49) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.12, Copyright (c) Zend Technologies
with Zend OPcache v8.2.12, Copyright (c), by Zend Technologies
# インストール済みモジュール確認
php -m
# php.iniの場所を確認
php --ini
④ Laravelプロジェクトでの確認方法
Laravelを使用している環境では、artisan コマンドからも確認できます。
# Laravelのバージョンとサーバー情報を表示
php artisan --version
# 環境情報の詳細確認(本番では注意して使用)
php artisan about
# 出力例(一部)
Environment .............................................................. production
PHP Version .............................................................. 8.2.12
Composer Version ......................................................... 2.6.5
今すぐ対処が必要かどうかの判断基準
バージョンを確認したあとに重要なのが「それで何をすべきか」の判断です。以下のフローで確認してください。
flowchart TD
A[PHPバージョン確認] --> B{PHP 7.4以下?}
B -->|YES| C[🔴 緊急対応が必要\nEOL済み・脆弱性リスク大]
B -->|NO| D{PHP 8.0?}
D -->|YES| E[🟠 早急に対応\n2023年末にEOL済み]
D -->|NO| F{PHP 8.1?}
F -->|YES| G[🟡 2025年末までに対応予定\n今のうちに計画を]
F -->|NO| H[🟢 PHP 8.2 / 8.3\n現時点では問題なし]
C --> I[専門家に相談して\n移行計画を立てる]
E --> I
G --> J[移行スケジュールを\n検討し始める]| 状況 | リスクレベル | 推奨アクション | 目安期限 |
|---|---|---|---|
| PHP 7.3以下 | 🔴 最高 | 即時対応・専門家へ相談 | 今すぐ |
| PHP 7.4 | 🔴 高 | 緊急でバージョンアップ | 今すぐ |
| PHP 8.0 | 🟠 中高 | 早急にアップグレード | 1ヶ月以内 |
| PHP 8.1 | 🟡 中 | 2025年末に向けて計画 | 半年以内 |
| PHP 8.2 / 8.3 | 🟢 低 | 現状維持・定期モニタリング | 不要 |
| MySQL 5.7以下 | 🔴 高 | 8.0へのアップグレードを検討 | 優先対応 |
よくある失敗パターンと対処法
失敗①「確認用ファイルを削除し忘れる」
phpinfo.php をアップロードしたまま数週間放置していた——というケースは実際によくあります。悪意ある第三者がクローラーでこのようなファイルを検索しており、放置するとサーバー構成が筒抜けになります。確認後は必ず削除し、できれば .htaccess でアクセス制限をかけた状態で使用してください。
# .htaccessで特定IPのみ許可する例
<Files "phpinfo_check.php">
Order Deny,Allow
Deny from all
Allow from 203.0.113.0 # 自社のIPアドレスに変更
</Files>
失敗②「バージョンアップしたら動かなくなった」
PHP 7.4 → 8.x へのアップグレードは単純な数字の変更ではありません。PHP 8系では型の扱いが厳格化されており、7系で問題なく動いていたコードが致命的なエラーを起こすことがあります。特にWordPressのカスタムプラグインや、古いLaravelアプリケーションでは注意が必要です。
本番環境で直接切り替えるのは絶対に避けてください。ステージング環境で動作確認→バックアップ取得→本番適用の順番を守ることが鉄則です。
# 本番適用前に必ずバックアップを取得
# データベースのバックアップ
mysqldump -u username -p database_name > backup_$(date +%Y%m%d).sql
# ファイルのバックアップ(tar.gz形式)
tar -czf backup_files_$(date +%Y%m%d).tar.gz /var/www/html/
失敗③「MySQLを8.0にしたらLaravelの接続設定が変わった」
MySQL 8.0ではデフォルトの認証プラグインが caching_sha2_password に変更されています。古いLaravelプロジェクトでは接続エラーが発生する場合があり、config/database.php の修正か、MySQLユーザーの認証方式の変更が必要になることがあります。バージョンアップ後にエラーが出た場合はまずここを疑ってください。
サーバー管理、丸ごとお任せください
サーバー保守・運用
監視・障害対応・パフォーマンス改善まで、安定稼働をサポートします
※ 通常1営業日以内にご返信します
まとめ:確認したその日に動き始める
バージョン確認は「調べて終わり」ではありません。確認した結果をもとに、次のアクションへとつなげることが重要です。
特にPHP 7.x系が現役で稼働している本番環境は、今この瞬間も無防備な状態にあると認識してください。Fivenineでは過去に、PHP 7.3で動いていたECサイトがセキュリティインシデントに遭遇したケースを目にしています。対応コストは事前の移行費用の数倍に膨らみました。
「すぐに対応するのが難しい」という場合でも、せめて現状を正確に把握し、移行計画を立てることから始めてください。
バージョン確認の結果、「どこから手をつければいいかわからない」「ステージング環境を用意するのが難しい」という場合は、ぜひFivenine Designにご相談ください。神奈川を拠点に20年以上、Laravel・WordPress・Next.jsを中心とした開発・保守を手がけてきた経験から、お客様の環境に合った安全な移行プランをご提案します。