PHP

最終更新日: 2023.11.24 (公開: 2023.11.24)

phpinfo関数の使い方は?PHPの設定内容の確認方法や使いどころを解説

phpinfo関数の使い方は?PHPの設定内容の確認方法や使いどころを解説

「PHP」に設定されている情報を表示できるphpinfo関数について、その概要やどのように使用するか、使用するにあたっての注意点について解説していきます。

phpinfoとは、「PHP」に設定されている情報を表示させる関数です。ローカルでphpinfoを実行するには、「PHP」とWebサーバーソフトウェア(たとえばApacheやNginxなど)が必要です。

本記事では、phpinfoの概要と使い方、使用時の注意点を解説します。

phpinfo関数とは?

phpinfo関数とは?

phpinfoとは、「PHP」に設定されている情報を表示させる関数です。

php.iniという設定ファイルに変更を加えた際、その変更が反映されているかを確認する場面で使用されます。またローカルでphpinfoを実行するには、「PHP」とWebサーバーソフトウェアのApacheが必要です。

しかしphpinfoは、現在の「PHP」の状態についてのあらゆる情報を表示する関数であるため、使いどころが限られる関数でもあります。

phpinfo関数を使うにあたっての注意点

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関数の使い方

phpinfo関数には、以下のような使い方があります。

  1. ブラウザにPHP情報を表示させる
  2. コマンドラインにPHP情報を表示させる
  3. 表示するセクションを変更する
  4. アクセスできるIPを制限する
  5. 表示できる情報を選択する
  6. php.iniファイルの位置を確認する
  7. EGPCS変数を確認する
  8. 拡張機能がインストールされているかを確認する
  9. 環境変数を確認する

ここからは、それぞれの使い方について解説します。

ブラウザにPHP情報を表示させる

最初はブラウザにPHP情報を表示させましょう。

メモ帳などのテキストエディタに、以下のコードをペーストしてください。

<?php
phpinfo();
?>

その後、名前をつけて保存します。ファイル名はどれでも問題ありませんが、拡張子は「.txt」から「.php」に変更してから保存してください。そして、保存したファイルを自身のローカル環境のドキュメントルートに移動し、ローカルサーバーを起動します。

最後に、ブラウザのアドレスバーに「localhost(もしくはIPアドレス)/先ほどつけたファイル名」と入力し移動することでPHPの設定が表示されます。

コマンドラインにPHP情報を表示させる

phpinfo関数は、Windowsのコマンドラインでも使用できます。

コマンドラインとは、コマンドを入力することでコンピュータに対して命令を送れる黒い画面です。コマンドプロンプトなどのアプリケーションを開き、以下のコマンドを入力し実行してください。

php -r phpinfo();

すると、「PHP」のバージョンなどさまざまな情報が画面に表示されます。ブラウザに表示する方法と比べると、コマンドを入力するだけで「PHP」の詳細な情報が得られるので、こちらの方法がおすすめです。

php -r phpinfo(); の実行結果

しかし、コマンドラインの結果表示は表にまとめられずに文字だけが表示されるので可読性は悪くなってしまいます。そのため、「自分がどのような情報を得たいか」によってブラウザ表示とコマンドライン表示を使い分けましょう。

表示するセクションを変更する

phpinfo関数は、引数を指定することで表示するセクションを変更できます。

たとえば、ドキュメントルートに配置したファイルの内容を、以下のように変更してみましょう。

<?php
phpinfo(INFO_MODULES);
?>

コマンドラインを使用する際にも、同様に引数を指定します。

“php -r phpinfo(INFO_MODULES);”

結果として、phpinfoのさまざまな情報の中から「PHP」のモジュール設定に関する情報だけを表示できます。

“php -r phpinfo(INFO_MODULES);”の実行結果

アクセスできる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関数を使うPHPファイルは確認後に削除しよう

phpinfoを使うことで、サーバーに関するさまざまな情報がページに記述され閲覧できるようになります。しかしphpinfoが記述されたファイルを悪意のあるハッカーが検索し、悪用されてしまう可能性も出てきます。

セキュリティの観点から、phpinfoの使用を禁止しているサーバーもあるほどです。そのため、Web上でphpinfoを使用するのはおすすめできません。

どうしても必要な場合に使った場合は、phpinfoを使い終わったらphpinfoページを必ず削除しましょう。

phpinfo関数はどうしても必要なときに慎重に使おう

phpinfo関数はどうしても必要なときに慎重に使おう

phpinfoは現在の「PHP」の状態についてのあらゆる情報を表示し、PHPの拡張機能や環境変数・php.iniファイルの場所などの確認をブラウザとコマンドラインでおこなえます。

しかし、Web上では重要なサーバー内の情報がパブリックな場に上がることになるため、悪質なハッカーの標的にもなり得ます。本記事を参考にphpinfo関数はローカル環境のみで使用し、Web上でどうしても使用しなければいけないときには十分に注意し、使用後はphpinfoページを必ず削除しましょう。

アクセスランキング 人気のある記事をピックアップ!

    コードカキタイがオススメする記事!

    1. 子供におすすめのプログラミングスクール10選!学習メリットや教室選びのコツも紹介

      2024.01.26

      子供におすすめのプログラミングスクール10選!学習メリットや教室選びのコツも紹介

      #プログラミングスクール

    2. 【完全版】大学生におすすめのプログラミングスクール13選!選ぶコツも詳しく解説

      2022.01.06

      【完全版】大学生におすすめのプログラミングスクール13選!選ぶコツも詳しく解説

      #プログラミングスクール

    3. 【未経験でも転職可】30代におすすめプログラミングスクール8選!

      2024.01.26

      【未経験でも転職可】30代におすすめプログラミングスクール8選!

      #プログラミングスクール

    4. 初心者必見!独学のJava学習方法とおすすめ本、アプリを詳しく解説

      2024.01.26

      初心者必見!独学のJava学習方法とおすすめ本、アプリを詳しく解説

      #JAVA

    5. 忙しい社会人におすすめプログラミングスクール15選!失敗しない選び方も詳しく解説

      2024.01.26

      忙しい社会人におすすめプログラミングスクール15選!失敗しない選び方も詳しく解説

      #プログラミングスクール

    1. 【無料あり】大阪のおすすめプログラミングスクール14選!スクール選びのコツも紹介

      2022.01.06

      【無料あり】大阪のおすすめプログラミングスクール14選!スクール選びのコツも紹介

      #プログラミングスクール

    2. 【目的別】東京のおすすめプログラミングスクール20選!スクール選びのコツも徹底解説

      2024.01.26

      【目的別】東京のおすすめプログラミングスクール20選!スクール選びのコツも徹底解説

      #プログラミングスクール

    3. 【無料あり】福岡のおすすめプログラミングスクール13選!選び方も詳しく解説

      2024.01.26

      【無料あり】福岡のおすすめプログラミングスクール13選!選び方も詳しく解説

      #プログラミングスクール

    4. 【徹底比較】名古屋のおすすめプログラミングスクール13選!選び方も詳しく解説

      2024.01.26

      【徹底比較】名古屋のおすすめプログラミングスクール13選!選び方も詳しく解説

      #プログラミングスクール

    5. 【徹底比較】おすすめのプログラミングスクール18選!失敗しない選び方も徹底解説

      2024.01.26

      【徹底比較】おすすめのプログラミングスクール18選!失敗しない選び方も徹底解説

      #プログラミングスクール