【PHP8.x】phpinfo関数の使い方

phpinfo関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

phpinfo関数は、現在のPHP環境に関する広範な情報をWebブラウザ上に表示する関数です。この関数を実行すると、PHPのバージョン、使用しているOSやコンパイラなどのビルド情報、ApacheなどのWebサーバーの情報、ロードされているPHP拡張モジュールとその設定、PHP設定ファイル(php.ini)の内容、環境変数、そしてPHPライセンス情報など、非常に多岐にわたる詳細な情報が一覧形式で出力されます。

主に、システム開発者がPHP環境の設定内容を確認したり、問題が発生した際にデバッグ情報を収集したりする目的で利用されます。例えば、特定のPHP拡張モジュールが正しくロードされているか、またはphp.iniで設定したメモリ制限などの値が意図通りに適用されているかなどを手軽に確認することができます。

ただし、phpinfo関数が出力する情報には、サーバーのファイルパス、データベース接続情報の一部、PHPの実行ユーザー名など、潜在的にセキュリティ上のリスクとなる機密情報が含まれる可能性があります。そのため、インターネットに公開されている本番環境のサーバーでは、安易にphpinfo関数を使用したファイルを配置したり、実行結果を放置したりすることは強く推奨されません。本番環境で一時的に使用する必要がある場合は、情報確認後すぐにそのファイルを削除するなど、厳重なセキュリティ対策を講じることが不可欠です。

この関数は、PHPの初期設定や環境依存の問題を特定する上で非常に強力なツールですが、その情報公開の危険性を十分に理解した上で慎重に扱うことが求められます。

構文(syntax)

1<?php
2phpinfo();
3?>

引数(parameters)

int $flags = INFO_ALL

  • int $flags = INFO_ALL: 出力する情報を制御するための整数。デフォルトはINFO_ALLで、全ての情報を出力します。

戻り値(return)

bool

phpinfo関数は、PHPの実行環境に関する情報をHTML形式で出力します。戻り値は常にTRUEです。

サンプルコード

phpinfo()でPHP環境情報を表示する

1<?php
2
3/**
4 * PHPの環境設定情報を表示します。
5 *
6 * phpinfo()関数は、PHPの設定、ビルドオプション、有効なエクステンション、
7 * サーバー情報、PHPバージョン、PHPの実行時設定など、広範な情報を
8 * HTML形式で出力します。主にデバッグや環境確認のために使用されます。
9 *
10 * @param int $flags 表示する情報の種類を指定します。デフォルトは INFO_ALL で全ての情報を表示します。
11 *                   例: INFO_CREDITS, INFO_MODULES, INFO_CONFIGURATION など。
12 * @return bool 常に true を返します。
13 */
14phpinfo();

phpinfo()関数は、PHPが動作している現在の環境設定に関する詳細な情報を、整形されたHTMLページとして出力します。この関数を実行すると、PHPのバージョン、サーバー情報、読み込まれている設定ファイル(php.ini)の場所、有効になっている拡張機能(モジュール)の一覧、その他PHPの動作に関連する様々な設定値などをまとめて確認できます。主に、開発環境を構築した際の設定確認や、プログラムが期待通りに動作しない原因を調査するデバッグ目的で広く利用されます。

引数 $flags を使うと、表示する情報の種類を絞り込むことができます。例えば、モジュールに関する情報だけを見たい場合は INFO_MODULES を指定します。引数を何も指定せずに phpinfo() と呼び出した場合は、デフォルトですべての情報を意味する INFO_ALL が適用されます。この関数の戻り値は常に true(ブール値)となり、処理が成功したことを示します。出力内容にはサーバーの機密情報が含まれる可能性があるため、運用中のWebサイトで安易に公開しないよう注意が必要です。

phpinfo()関数は、PHPの環境設定に関する詳細な情報を画面に出力するため、デバッグ時に非常に便利です。しかし、この情報にはサーバーの設定やバージョンなど、セキュリティ上重要な情報が多く含まれています。そのため、誰でもアクセスできる本番環境でこの関数を実行したままにすると、攻撃者にシステムの脆弱性を知られる原因となり大変危険です。開発時の環境確認にのみ使用し、確認後は必ずそのコードを削除してください。また、この関数は情報を直接HTMLとして出力するため、戻り値を変数に代入して利用するものではない点にも注意が必要です。

関連コンテンツ