Apache

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

2018年2月17日

こんにちは!土門大貴(daikidomon)です。

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

多くのレンタルサーバではこの機能を有するCGIは削除されていますが、デバッグ時には重宝するので覚えておくことをオススメします。

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

LinuxにApacheをインストールする方法

こんにちは!土門大貴(daikidomon)です。 Apecheをインストールする手順について紹介します。 Conten ...

導入手順

導入手順は非常に簡単です。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

Copyright© スタートアップIT企業社長のブログ , 2020 All Rights Reserved.