「PHP」に設定されている情報を表示できるphpinfo関数について、その概要やどのように使用するか、使用するにあたっての注意点について解説していきます。
phpinfoとは、「PHP」に設定されている情報を表示させる関数です。ローカルでphpinfoを実行するには、「PHP」とWebサーバーソフトウェア(たとえばApacheやNginxなど)が必要です。
本記事では、phpinfoの概要と使い方、使用時の注意点を解説します。
目次
phpinfo関数とは?

phpinfoとは、「PHP」に設定されている情報を表示させる関数です。
php.iniという設定ファイルに変更を加えた際、その変更が反映されているかを確認する場面で使用されます。またローカルでphpinfoを実行するには、「PHP」とWebサーバーソフトウェアのApacheが必要です。
しかしphpinfoは、現在の「PHP」の状態についてのあらゆる情報を表示する関数であるため、使いどころが限られる関数でもあります。
phpinfo関数を使うにあたっての注意点

phpinfo関数を使う際には、次のことに注意しなければなりません。
- WordPress5.2以降を使っている場合はphpinfoを使わなくていい
- サイト情報がすべて外部に見えてしまうのでリスクが高い
ここからは、phpinfo関数を使うにあたっての注意点を解説します。
WordPress 5.2以降を使っている場合はphpinfoを使わなくていい
WordPressは、バージョン5.2からサイトヘルス機能というタブに飛ぶことで環境の詳細情報を得られる機能が追加されています。
そのためphpinfoはサイトヘルス機能では得られないような、より詳細な情報を把握したい場合に限り利用することになります。通常、phpinfoが必要になる場面は発生しにくいことから、phpinfoを使うシーンは少ないでしょう。
サイト情報がすべて外部に見えてしまうのでリスクが高い
phpinfoはサイトに関するさまざまな情報を表示するため、扱う際のリスクが高く、Web上に公開されているWordPressのサイトで実行するのは非常にリスクが高いです。
そのためphpinfoは主にローカル環境で使用します。たとえば「ローカル環境に「PHP」をダウンロードした際に問題なく動作しているか」や、「ローカル環境で「php.ini」というPHPの設定ファイルが配置されている場所の確認」などに使用するのがよいでしょう。
phpinfo関数の使い方

phpinfo関数には、以下のような使い方があります。
- ブラウザにPHP情報を表示させる
- コマンドラインにPHP情報を表示させる
- 表示するセクションを変更する
- アクセスできるIPを制限する
- 表示できる情報を選択する
- php.iniファイルの位置を確認する
- EGPCS変数を確認する
- 拡張機能がインストールされているかを確認する
- 環境変数を確認する
ここからは、それぞれの使い方について解説します。
ブラウザにPHP情報を表示させる
最初はブラウザにPHP情報を表示させましょう。
メモ帳などのテキストエディタに、以下のコードをペーストしてください。
<?php phpinfo(); ?>
その後、名前をつけて保存します。ファイル名はどれでも問題ありませんが、拡張子は「.txt」から「.php」に変更してから保存してください。そして、保存したファイルを自身のローカル環境のドキュメントルートに移動し、ローカルサーバーを起動します。
最後に、ブラウザのアドレスバーに「localhost(もしくはIPアドレス)/先ほどつけたファイル名」と入力し移動することでPHPの設定が表示されます。
コマンドラインにPHP情報を表示させる
phpinfo関数は、Windowsのコマンドラインでも使用できます。
コマンドラインとは、コマンドを入力することでコンピュータに対して命令を送れる黒い画面です。コマンドプロンプトなどのアプリケーションを開き、以下のコマンドを入力し実行してください。
php -r phpinfo();
すると、「PHP」のバージョンなどさまざまな情報が画面に表示されます。ブラウザに表示する方法と比べると、コマンドを入力するだけで「PHP」の詳細な情報が得られるので、こちらの方法がおすすめです。

しかし、コマンドラインの結果表示は表にまとめられずに文字だけが表示されるので可読性は悪くなってしまいます。そのため、「自分がどのような情報を得たいか」によってブラウザ表示とコマンドライン表示を使い分けましょう。
表示するセクションを変更する
phpinfo関数は、引数を指定することで表示するセクションを変更できます。
たとえば、ドキュメントルートに配置したファイルの内容を、以下のように変更してみましょう。
<?php phpinfo(INFO_MODULES); ?>
コマンドラインを使用する際にも、同様に引数を指定します。
“php -r phpinfo(INFO_MODULES);”
結果として、phpinfoのさまざまな情報の中から「PHP」のモジュール設定に関する情報だけを表示できます。

アクセスできるIPを制限する
phpinfoは、サイトに関するさまざまな情報を表示するリスクのある関数です。そのため、やむなく公開サーバーに設置する場合は、アクセスできるIPを制限することをおすすめします。
アクセスできるIPを制限する際は、phpファイルに以下のような記述をしてください。
<?php if ($_SERVER['REMOTE_ADDR'] !== 'xxx.xxx.xxx.xxx') die(); ?> <?php phpinfo(); ?>
上記の記述をおこなうことで、IPアドレス「xxx.xxx.xxx.xxx」以外から接続した場合は、phpinfoの情報が表示されなくなります。
表示できる情報を選択する
phpinfo関数で指定する引数は、あらかじめ割り振られている数値でも指定できます。
引数に割り振られている数値は、以下の通りです。
INFO_GENERAL | 1 |
INFO_CREDITS | 2 |
INFO_CONFIGURATION | 4 |
INFO_MODULES | 8 |
INFO_ENVIRONMENT | 16 |
INFO_VARIABLES | 32 |
INFO_LICENSE | 64 |
INFO_ALL | -1 |
例として、「INFO_CREDITS」を指定したい場合は以下のように指定します。
<?php phpinfo(2); ?>
php.iniファイルの位置を確認する
phpinfoの情報にはphp.iniファイルの場所が記載されているため、使用することによってphp.iniファイルの位置を確認可能です。php.iniファイルは、「PHP」のプログラムを動かすための設定ファイルです。サーバー上で「PHP」が起動する際に読み込まれます。
php.iniファイルの場所は、phpinfo情報内の「Loaded Configuration File」に記載されており、引数を指定して記述することで、「Loaded Configuration File」が含まれるセクションのみを表示できます。
<?php phpinfo(INFO_GENERAL); ?>
EGPCS変数を確認する
phpinfoの情報には、EGPCS変数の情報も記載されています。
EGPCSとは、Environment (環境変数)・Get・Post・Cookie (クッキー)・Serverの頭文字を取った用語で、スーパーグローバルと呼ばれるスクリプト全体を呼び出しできる変数です。
EGPCS変数は、phpinfo情報内の「PHP Variables」というセクションに記載されています。
以下のように引数を指定して記述することにより、「PHP Variables」セクションのみを表示することもできます。
<?php phpinfo(INFO_VARIABLES); ?>
なお、特定のスーパーグローバル変数(たとえば $_SERVER)の情報を表示したい場合は、以下のように直接print_rなどを用いて表示できます。
<?php print_r($_SERVER); ?>
拡張機能がインストールされているかを確認する
「PHP」にはさまざまな拡張機能がありますが、phpinfoでどの拡張機能がインストールされているのかの確認が可能です。「PHP」にインストールされている拡張機能の情報は、それぞれの拡張モジュール名のセクション内にphpinfo情報が記載されています。
以下のように引数を指定して記述することで、「Loaded Modules」項目が含まれるセクションのみの表示も可能です。
<?php phpinfo(INFO_MODULES); ?>
環境変数を確認する
phpinfoの情報には、環境変数の情報も記載されています。環境変数とはサーバーサイドに設定されている変数のことで、PHPプログラム内で自由に呼び出せる変数です。
環境変数の情報は、「Environment」セクションに記載されています。以下のように引数を指定して記述することで、「Environment」セクションのみを表示することもできます。
<?php phpinfo(INFO_ENV_VARS); ?>
上記コードを記述することで、サーバー環境変数が表示されます。
phpinfo関数を使うPHPファイルは確認後に削除しよう

phpinfoを使うことで、サーバーに関するさまざまな情報がページに記述され閲覧できるようになります。しかしphpinfoが記述されたファイルを悪意のあるハッカーが検索し、悪用されてしまう可能性も出てきます。
セキュリティの観点から、phpinfoの使用を禁止しているサーバーもあるほどです。そのため、Web上でphpinfoを使用するのはおすすめできません。
どうしても必要な場合に使った場合は、phpinfoを使い終わったらphpinfoページを必ず削除しましょう。
phpinfo関数はどうしても必要なときに慎重に使おう

phpinfoは現在の「PHP」の状態についてのあらゆる情報を表示し、PHPの拡張機能や環境変数・php.iniファイルの場所などの確認をブラウザとコマンドラインでおこなえます。
しかし、Web上では重要なサーバー内の情報がパブリックな場に上がることになるため、悪質なハッカーの標的にもなり得ます。本記事を参考にphpinfo関数はローカル環境のみで使用し、Web上でどうしても使用しなければいけないときには十分に注意し、使用後はphpinfoページを必ず削除しましょう。