アプリケーション開発ポータルサイト
ServerNote.NET
カテゴリー【ApachenginxDebian
【Apacne/nginx】CGI実行時に付与される環境変数を確認する
POSTED BY
2023-03-26

自前のCGIスクリプト実行時にはWebサーバーによって様々な環境変数が付与されるが、これの一覧をブラウザで確認するには、以下のようなCGIスクリプトを書いて設置する。

Shellenv.cgiGitHub Source
#!/bin/sh

echo 'Content-Type: text/plain;'
echo ''
/usr/bin/env

/bin/shをCGIプログラムとして宣言し、Content-Typeを発行し、最後にenvコマンドで一覧を出すだけ。

実行テスト

chmodで実行権限をつけて、まずローカルマシンで実行してみる。

chmod a+x env.cgi

./env.cgi

Content-Type: text/plain;

HOSTNAME=xxxx.vvv.jp
rvm_bin_path=/usr/local/rvm/bin
GEM_HOME=/usr/local/rvm/gems/ruby-2.3.0
SHELL=/bin/bash
TERM=xterm
HARDWARE_PLATFORM=x86_64
HISTSIZE=1000
SAVEHIST=1000000
SSH_TTY=/dev/pts/0
QT_GRAPHICSSYSTEM_CHECKED=1

...(略)...

CGIとして実行する準備

環境変数一覧が出たので、このスクリプトをcgi実行可能なディレクトリに設置する。
拡張子.cgiをCGIスクリプトとして実行する設定になっている必要がある。

以下、Apache

/etc/apache2/mods-available/mime.conf

AddHandler cgi-script .cgi

これが有効になっており、CGIを置くディレクトリ設定は

<directory>
    Options ExecCGI
</directory>

などと、ExecCGI属性をつける。

ブラウザで実行

上記例だとcgi-binディレクトリにenv.cgiを設置し、ブラウザで叩けば、HTTP_から始まる環境変数が付与されているのをブラウザ上で確認できる。

例)https://www.myexample.jp/cgi-bn/env.cgi

GATEWAY_INTERFACE=CGI/1.1
HTTP_SEC_CH_UA="Google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"
HTTP_USER_AGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Ch
HTTP_UPGRADE_INSECURE_REQUESTS=1
HTTP_ACCEPT=text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
HTTP_SEC_FETCH_DEST=document
REQUEST_METHOD=GET
HTTPS=on
HTTP_SEC_FETCH_SITE=none

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

【キーワード検索】