簡単なページを出力してみる

まずは、簡単な HTML によるページを表示する CGI プログラムを作ってみます。
lighttpd を導入した時に、以下のような簡単なテスト用 CGI プログラムを作りました。

#!/usr/local/bin/perl

print "Content-Type: text/html\n\n";
print "Hello, world!\n";

この CGI プログラムをブラウザで開くと、ただ単に「Hello, world!」と表示されるだけですが、このメッセージの代わりに HTML 文を出力する事で、ページを表示する事ができます。

#!/usr/local/bin/perl

print "Content-Type: text/html\n\n";
print <<HTML;
<html>
  <head>
    <title>Hello, CGI world!</title>
  </head>
  <body>
    <h1>Hello, CGI world!</h1>
    <p>Welcome to CGI world! This is a test page.</p>
  </body>
</html>
HTML
# "HTML" の後ろに改行が必要です

この CGI プログラムは、簡単なページを出力します。HTML については詳しい説明を省略しますが、わからない部分はお気軽にコメントなどでお尋ねください。
hellocgi.cgi 実行結果
上のリンクは、ぱるも砂場内のページへ移動します。広告はサーバーによって自動的に挿入されたものです。以降 CGI の実行結果は、ぱるも砂場内のページにて行なう予定です。
Hello, CGI world! というページが表示されました。簡単ですね。(^_^)


ところで、CGI プログラムを UNIX 系のウェブサーバー上で実行させる場合、パーミッションの設定が必要です。パーミッションとは「許可」という意味で、「ファイルのオーナー」「グループ内のユーザー」「その他のユーザー」それぞれに対して、「読み込み」「書き込み」「実行」の許可/不許可を、ファイルごとに行なう事ができます。
「実行」に対する許可は通常はオフになっているはずですので、CGI を実行する為には「実行」に対する許可が必要です。どのようなパーミッションにすれば実行できるようになるかは、サーバーによって異なるので一概には言えませんが、「755」(rwxr-xr-x)や「705」(rwx---r-x)などが多いように思います。
パーミッションの設定は FFFTP などの FTP クライアントソフトを使えば簡単にできます。(^_^)