PHPアプリケーションを開発および展開するとき、環境問題はしばしばデバッグするのが難しい問題になります。さまざまなオペレーティングシステム、Webサーバーの構成、PHPバージョンの違いにより、一部の機能が適切に機能しない場合があります。これらの問題を迅速に診断するために、PHPは非常に実用的なツールであるphpinfo()関数を提供します。それを通して、PHPバージョン、有効な拡張機能、構成ファイルの場所などを含む現在のPHP環境の詳細な構成情報を表示できます。これにより、問題の発見に役立ちます。次に、 PHPINFO()を使用して、PHP環境の一般的な問題をデバッグおよびトラブルシューティングする方法に飛び込みます。
Phpinfo()関数は、PHPに組み込まれた非常にシンプルで強力なツールです。 PHPスクリプトで呼び出すだけで、ブラウザは現在のPHP構成の完全な情報を表示します。 phpinfo.phpなどの簡単なPHPファイルを作成し、次のコードを追加するだけです。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-title function_ invoke__">phpinfo</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
ファイルを保存した後、Webサーバーにアップロードします。ブラウザを介してファイルにアクセスするとき、PHPは現在のPHP環境の詳細を含むWebページを生成します。ページのコンテンツには、次の側面が含まれますが、これらに限定されません。
PHPバージョン:現在実行中のPHPバージョン。
オペレーティングシステム情報:サーバーのオペレーティングシステムとそのアーキテクチャ。
PHP構成:PHP.iniファイルの場所、構成オプションのロード、環境変数など。
拡張情報:すべての有効なPHP拡張機能とそのバージョンをリストします。
サーバー情報:Webサーバー(ApacheやNginxなど)、有効なモジュールなどの構成など。
PHPの異なるバージョンにより、一部のコードが互換性がないか、一部の機能が利用できない場合があります。たとえば、PHP 5とPHP 7の間にはいくつかの違いがあり、PHP 8は多くの新機能を導入しています。 phpinfo()を使用して、PHPの現在のバージョン番号を簡単に確認し、コードがバージョンと互換性があるかどうかを確認します。
PHPINFO()ページでは、現在実行中のPHPバージョンを表示するPHPバージョンというフィールドを見つけることができます。
多くのPHPアプリケーションは、MySQL、GD、Curlなどの特定の拡張機能に依存しています。拡張機能が正しくロードされていない場合、アプリケーションはエラーを経験したり、適切に機能したりしない場合があります。現在有効になっている拡張機能とそのバージョンは、PHPINFO()出力のロードされた拡張機能セクションで表示できます。
拡張機能が欠落していることがわかった場合は、 php.ini構成ファイルを変更するか、欠落している拡張機能パッケージをインストールすることで有効にすることができます。たとえば、Linux Systemsでは、次のコマンドを使用して拡張機能をインストールできます。
<span><span>sudo apt-get install php-curl
sudo apt-get install php-mbstring
</span></span>
PHP環境の問題は、誤ったPHP.ini構成ファイルの使用によるものである場合があります。 phpinfo()を使用すると、現在使用されているphp.iniファイルのパスを簡単に見つけることができます。 [出力]ページで、読み込まれた構成ファイルフィールドを探して、それが指すファイルパスを表示します。
このパスが正しくない場合は、サーバー上の正しいphp.iniファイルを手動で指定するか、Webサーバーの構成をチェックして、正しいPHP構成ファイルをロードすることを確認できます。
場合によっては、PHPアプリケーションがファイルのアップロードや読み取りファイルを処理できない場合があります。 upload_max_filesize 、 post_max_size 、 max_file_uploads 、その他のフィールドなど、 phpinfo()を介したファイルアップロードに関連する構成オプションを表示できます。これらの構成項目は、PHPが処理できる最大ファイルサイズ、許可される最大要求ボリュームなどを決定します。
ファイルアップロード機能に問題がある場合は、これらの値が予想どおりかどうかを確認できます。必要に応じて、 php.iniで調整できます。
<span><span><span class="hljs-attr">upload_max_filesize</span></span><span> = </span><span><span class="hljs-number">10</span></span><span>M
</span><span><span class="hljs-attr">post_max_size</span></span><span> = </span><span><span class="hljs-number">20</span></span><span>M
</span></span>
同時に、ファイルの許可設定を確認して、PHPが指定されたファイルディレクトリに読み書きまたは書き込み許可があることを確認します。
PHPスクリプトが適切に実行できない場合、Webサーバーの構成に関連している可能性があります。 phpinfo()を使用すると、PHPがサーバーAPIフィールドなどのWebサーバーと統合する方法を表示し、PHPがApacheモジュール、FastCGI、またはその他の方法として実行されるかどうかを表示できます。異なる統合方法には、異なる構成またはチューニングが必要になる場合があります。
phpinfo()は非常に便利ですが、機密情報を漏らすこともあります。 phpinfo()ページを公開すると、攻撃者がサーバーの詳細情報を取得してから攻撃を実施できるようになります。したがって、デバッグが完了したら、 PHPINFO()ページを削除するか、アクセス権を制限してセキュリティリスクを回避してください。
次を制限できます。
一般に公開されていないディレクトリに入れてください。
特定のIPアドレスのみがアクセスできるなど、このファイルのこのファイルのアクセス制御を設定します。
PHPINFO()は、PHP環境の問題を迅速に理解しトラブルシューティングするのに役立つ非常に強力なツールです。それを通して、PHPバージョン、ロードされた拡張機能、構成ファイルパス、およびその他の情報を表示して、アプリケーションの操作中にさまざまな問題を診断できます。ただし、使用中にセキュリティに注意を払って、 phpinfo()出力が外部にさらされていないことを確認する必要があります。この手法を習得した後、PHP環境の問題のデバッグとトラブルシューティングは、より効率的かつ正確になります。