Webサーバーの環境変数やHTTPヘッダーを表示するprintenv.cgiを利用する方法

ApacheなどのWebサーバでサーバーの環境変数やHTTPのヘッダー情報を表示するとデバッグ作業が非常に効率的になります。

多くのレンタルサーバではこの機能を有するCGIは削除されていますが、

デバッグ時には重宝するので覚えておくことをオススメします。

まだApacheがインストールしていない人は↓の導入手順を参照してください。

あわせて読みたい
LinuxにApacheをインストールする方法 Apacheをインストールする手順について紹介します。 インストール環境 今回のインストール環境は以下になります。 Apacheのモジュール名は「httpd」なので注意してくだ...
目次

導入手順

導入手順は非常に簡単です。PHPで「printenv.cgi」に以下のソースを記述します。

#!/usr/bin/php

<? php phpinfo(); ?>

一行目の「#!/usr/bin/php」は各環境で違います。

which perl 

PHPが使えない環境では、Perlなどで記載してもOKです。。

一行目の「#!/usr/bin/perl 」は

#!/usr/bin/perl

print "Content-type: text/plain\n\n";
foreach $var (sort(keys(%ENV))) {
$val = $ENV{$var};
$val =~ s|\n|\\n|g;
$val =~ s|"|\\"|g;
print "${var}=\"${val}\"\n";
}

一行目の「#!/usr/bin/perl 」は各環境で違います。

which perl 

わからない場合は↑のコマンドでperlのパスを確認してみてください。

作成したprintenv.cgiを「/var/www/cgi-bin」に配置します。

Apacheの設定によっては、「/var/www/cgi-bin」が違う場所に設定されている可能性があります。

httpd.conf」の中で「cgi-bin」で確認してみてください。

実行方法

実行方法は簡単で「http://ホスト名 or IPアドレス:ポート番号/cgi-bin/CGIファイル」にアクセスすればOKです。

以下のような画面が出力されます。

詳細な時刻結果を載せたいのですが、重要な情報がのっているため一般的な値と内容を記載します。

内容
UNIQUE_IDHTTPリクエストのユニークID(一意識別子)。
HTTP_HOSTApacheの起動起動ホスト名。
HTTP_CONNECTIONHTTPのコネクション情報。正常にアクセスできている時は、”keep-alive”が入る。
HTTP_USER_AGENTユーザが使用するブラウザ情報。
HTTP_UPGRADE_INSECURE_REQUESTShttp: をhttps: に書き換えること支持する値。
HTTP_ACCEPT利用可能なメディアタイプ( MIMEタイプ )で何の拡張子が使用できるかが入る。
HTTP_ACCEPT_ENCODING利用可能なエンコーディング形式。gzipなどが入る。
HTTP_ACCEPT_LANGUAGE利用可能な言語コード。
PATHサーバーの$PATH変数の値。
SERVER_SIGNATUREサーバーのバージョン名とバーチャルホスト名の文字列。
SERVER_SOFTWAREWebサービスを提供しているソフトウェア。
SERVER_NAMEサーバー名。
SERVER_ADDRサーバーのIPアドレス。
SERVER_PORTサーバーのポート番号。
REMOTE_ADDRクライアントのIPアドレス。
DOCUMENT_ROOThtmlファイル置き場のルートディレクトリ。
REQUEST_SCHEME使用するプロトコル。HTTPやHTTPSが入る。
CONTEXT_PREFIXルートディレクトリに付与されたプレフィックス。http://ホスト名/○○/test.html の○○に相当。
CONTEXT_DOCUMENT_ROOTサーバーから見たディレクトリパス。
SERVER_ADMINWeb サーバーの設定ファイルの SERVER_ADMINディレクティブ にセットされている値。
SCRIPT_FILENAMEサーバーから見た、実行したスクリプトファイル。
REMOTE_PORTクライアントが使用したポート番号。
GATEWAY_INTERFACEサーバーが使用している CGI のバージョン。
SERVER_PROTOCOLページがリクエストされた際のプロトコル名とバージョン。
REQUEST_METHODページにアクセスする際に使用されたリクエストのメソッド名。GETやPOSTが入る。
QUERY_STRINGページがアクセス時に使用した検索引数。
REQUEST_URIページにアクセスするために指定されたURI。
SCRIPT_NAME実行したスクリプトファイル。

その他アプリケーションから渡された情報を

サーバ構築の実際がわかる Apache[実践]運用/管理 (Software Design plus)posted with ヨメレバ

鶴長 鎮一 技術評論社 2012-03-23

Amazon

Kindle

楽天ブックス

7net

honto

e-hon

紀伊國屋書店

  • システム開発、アプリ開発
  • マッチングアプリ開発
  • インフラ構築支援等、なんでもご相談ください。
よかったらシェアしてね!
  • URLをコピーしました!
目次