CGI を動かす方法

http://localhost/manual にマニュアルがあることに気づいた。少しずつ読んでいこう。


今日はとりあえず CGI を動かす方法について。
まず、Apache2 の設定ファイルは

  1. /etc/apache2/httpd.conf
  2. /etc/apache2/users/eagletmt.conf

の2つがある。当然、eagletmt はユーザ名です。
きっと前者は全体にわたる設定で、後者はユーザ毎の設定だと思う。未確認。
そこで、後者を弄ることにした。

$ sudo vi /etc/apache2/users/eagletmt.conf

んで、例えば

<Directory /Users/eagletmt/Sites/cgi-bin/>
  Options +ExecCGI
  AddHandler cgi-script .cgi
</Directory>

こうすれば、/Users/eagletmt/Sites/cgi-bin/*.cgi なファイルが CGI として実行されるようになる。


試しにいろいろやってみた。

$ pwd
/Users/eagletmt/Sites/cgi-bin
$ cat hello.pl.cgi
#!/opt/local/bin/perl
print "Content-type: text/plain\n\n";
print "Hello, World!\n";

$ cat hello.c
#include 

int main(int argc, char *argv[])
{
  printf("Content-type: text/plain\n\n");
  puts("Hello, World!");
  
  return 0;
}

$ gcc hello.c -o hello.c.cgi
$ chmod a+x hello.pl.cgi

こんなかんじにして、http://localhost/~eagletmt/cgi-bin/hello.c.cgihttp://localhost/~eagletmt/cgi-bin/hello.pl.cgi をブラウザでみたところ、
ちゃんと Hello, World! と表示された。やったね!