サンプルコードを使ったCGI(Perl)動作確認

Perl を使って CGI スクリプトを作成し、実際に Apache のドキュメントルートや ScriptAlias ディレクティブで設定したディレクトリに配置して、 Apache で CGI が利用可能になっているかどうかを確認します。

(Last modified: )

CGIスクリプトのサンプル

CGI の動作確認用に簡単なサンプルを作成します。 Perl を使用して CGI を記述する場合、 1 行目には Perl へのパスを決められた書式で記述する必要があります。

XAMPP を使って Perl をインストールした場合、 Perl の実行ファイルは XAMPP をインストールしたディレクトリの下の perl\bin\perl.exe にあります。

CGIスクリプトのサンプル(1)

テキストエディタで次のように CGI スクリプトを記述しました。

#!D:\xampp\perl\bin\perl.exe

print "Content-type: text/html\n";
print "\n";
print "<!DOCTYPE html>\n";
print "<html lang=\"ja\">\n";
print "<head>\n";
print "<meta charset=\"UTF-8\">\n";
print "<title>CGI Sample</title>\n";
print "</head>\n";
print "<body>\n";
print "<p>Hello</p>\n";
print "</body>\n";
print "</html>\n";

作成したファイルをドキュメントルートに hello.pl という名前で保存しました。またまったく同じ内容のファイルをもう一つ作成し hello.txt として保存しました。

CGIスクリプトのサンプル(2)

ドキュメントルートにCGIスクリプトを設置する

それでは Apache が起動した状態で、ブラウザから http://localhost/hello.pl へアクセスしてください。拡張子 .pl のファイルは CGI として実行され、その結果が画面に出力されます。

ドキュメントルートにCGIスクリプトを設置する(1)

同じようにブラウザから http://localhost/hello.txt へアクセスしてください。拡張子 .txt のファイルは CGI スクリプトとは認識されないので、ファイルの内容がそのまま画面に出力されます。

ドキュメントルートにCGIスクリプトを設置する(2)

ScriptAliasディレクティブで設定したディレクトリにCGIスクリプトを設置する

次に先ほど作成した hello.pl と hello.txt を ScriptAlias ディレクティブで設定した D:/xampp/cgi-bin/ にコピーします。

ScriptAliasディレクティブで設定したディレクトリにCGIスクリプトを設置する(1)

ブラウザから http://localhost/cgi-bin/hello.pl へアクセスしてください。 /cgi-bin/xxx の URL でアクセスがあった場合は、ドキュメントルート以下ではなく ScriptAlias ディレクティブで設定された D:/xampp/cgi-bin/xxx のファイルが CGI として実行されてその結果が画面に出力されます。

ScriptAliasディレクティブで設定したディレクトリにCGIスクリプトを設置する(2)

ブラウザから http://localhost/hello.txt へアクセスしてください。 ScriptAlias ディレクティブで設定したディレクトリに設置したファイルは、ファイルの拡張子に関係なくすべて CGI スクリプトとして実行されるため、拡張子が .txt のファイルですが CGI スクリプトとして実行されてその結果が画面に表示されます。

ScriptAliasディレクティブで設定したディレクトリにCGIスクリプトを設置する(3)

-- --

Perl を使った CGI スクリプトのサンプルを作成し、 Apache 経由で CGI が利用可能かどうかを確認しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。