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

広告

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

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

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。