はじめに
先日にLinux環境においてCGIプログラムをコマンドラインで動作確認しようとした時、パラメーターなどのヘッダ情報をどうやってコマンドラインで渡すのかがパッと分かりませんでした。
時間が経つとせっかく調べた事を忘れそうなので、その時に調べた事を備忘録として記事にまとめてみました。
ヘッダ情報なしで実行する場合
- ヘッダ情報がない場合は、以下のようにCGIプログラムをそのまま実行するだけでOKです。
- CGIプログラムがバイナリではなくスクリプトの場合、スクリプト内にShebang(シバン)でインタプリタのパスが指定されていない時は、
perl ./test.cgiやruby ./test.cgiなどと書きます。
[root@akagi ~]# ./test.cgi
ヘッダ情報をつけて実行する場合
-
envコマンドでヘッダ情報を環境変数として一時的に設定してCGIプログラムを実行します。- パラメーターが不要な場合は
QUERY_STRINGは削除して下さい。
- パラメーターが不要な場合は
-
envコマンドを使ってヘッダ情報を設定するというのが思いつかず、ChatGPTに教えて貰いました💦
[root@akagi ~]# env GATEWAY_INTERFACE="CGI/1.1" \
SERVER_PROTOCOL="HTTP/1.1" \
REQUEST_METHOD="GET" \
HTTP_HOST="localhost" \
SERVER_PORT="80" \
SCRIPT_NAME="/test.cgi" \
QUERY_STRING="param1=abc¶m2=def"
./test.cgi