今ならXeonも搭載可能なPCサーバー「PowerEdge SC440」が2万円台から買える!

マウスコンピューター」ならWindows抜きでもPCが買える。Linuxサーバーとしての利用に最適!

トップページ

  • tarの使い方
  • rpmの使い方
  • psコマンドでプロセスを確認
  • /etc/crontabを編集してアプリを自動実行
  • chkconfigコマンドでプロセスを自動起動

CGIを使えるようにする

 Apacheの標準設定ではCGIが使えないようになっているので設定を変更しなければならない。

 最初にPerlがインストールされているか確認しておこう。「which perl」としてPerlがインストールされているディレクトリ名が表示されればPerlはインストールされている。もし何も表示されないなら、「apt-get install perl」でPerlをインストールできる。

$ which perl
/usr/bin/perl
$

CGIの実行を許可する

 CGIの利用を許可するには、「/etc/httpd/conf/httpd.conf」の830行目あたりにある「#AddHandler cgi-script .cgi」のコメントを解除する。httpd.confを保存したら、「/etc/rc.d/init.d/httpd restart」でhttpdを再起動する。

#
# AddHandler: allows you to map certain file extensions to "handlers",
# actions unrelated to filetype. These can be either built into the server
# or added with the Action command (see below)
#
# If you want to use server side includes, or CGI outside
# ScriptAliased directories, uncomment the following lines.
#
# To use CGI scripts:
#
#AddHandler cgi-script .cgi ←行頭の「#」を削除する

 次にhttpd.confの660行目あたりを見てほしい。次のような記述があるはずだ。
 「ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/」というのは、「http://×××/cgi-bin/」にアクセスがあったときは、「home/httpd/cgi-bin」の内容を使うという意味だ。つまり、CGIスクリプトは/home/httpd/cgi-binディレクトリに入れておけばいいことになる。
 その次の部分は/home/httpd/cgi-binディレクトリではCGIスクリプトの実行を許可するという意味。このディレクトリ以外の場所にCGIスクリプトをおいておいても、ブラウザで開いたときには「Forbidden」と表示されるだけで実行はされない。

ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/

<Directory /home/httpd/cgi-bin>
    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from all
</Directory>

CGIのテストを行う

 CGIが実行できるようになったか確認してみよう。次のCGIスクリプトをviに打ち込んで、「home/httpd/cgi-bin/」ディレクトリに「test.cgi」のような名前で保存しよう。そして、ファイルのパーミッションを755に変更したら、ブラウザのアドレス欄に「http://×××/cgi-bin/test.cgi」と入力する。画面に「test」と表示されれば成功だ。

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<body>\n";
print "test\n";
print "</body>\n";

 もし「Forbidden」とエラーが表示されれば、ディレクトリやCGIスクリプトのパーミッションを確認する。両方とも755にしておく。また、CGIスクリプトがそのまま表示されたときは、上で作業した「AddHandler」の設定が間違っていないか見直そう。


 
掲示板 管理者のサイト トップページへ

お問い合わせや間違いのご指摘はyasu@center-left.comまでメールください。