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_ID | HTTPリクエストのユニークID(一意識別子)。 |
HTTP_HOST | Apacheの起動起動ホスト名。 |
HTTP_CONNECTION | HTTPのコネクション情報。正常にアクセスできている時は、”keep-alive”が入る。 |
HTTP_USER_AGENT | ユーザが使用するブラウザ情報。 |
HTTP_UPGRADE_INSECURE_REQUESTS | http: をhttps: に書き換えること支持する値。 |
HTTP_ACCEPT | 利用可能なメディアタイプ( MIMEタイプ )で何の拡張子が使用できるかが入る。 |
HTTP_ACCEPT_ENCODING | 利用可能なエンコーディング形式。gzipなどが入る。 |
HTTP_ACCEPT_LANGUAGE | 利用可能な言語コード。 |
PATH | サーバーの$PATH変数の値。 |
SERVER_SIGNATURE | サーバーのバージョン名とバーチャルホスト名の文字列。 |
SERVER_SOFTWARE | Webサービスを提供しているソフトウェア。 |
SERVER_NAME | サーバー名。 |
SERVER_ADDR | サーバーのIPアドレス。 |
SERVER_PORT | サーバーのポート番号。 |
REMOTE_ADDR | クライアントのIPアドレス。 |
DOCUMENT_ROOT | htmlファイル置き場のルートディレクトリ。 |
REQUEST_SCHEME | 使用するプロトコル。HTTPやHTTPSが入る。 |
CONTEXT_PREFIX | ルートディレクトリに付与されたプレフィックス。http://ホスト名/○○/test.html の○○に相当。 |
CONTEXT_DOCUMENT_ROOT | サーバーから見たディレクトリパス。 |
SERVER_ADMIN | Web サーバーの設定ファイルの 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