Carpe Diem

  Top > スポンサー広告> Webサーバ > CGIを使えるようにする  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

CGIを使えるようにする

2011 - 05/18 [Wed] - 15:23

ApacheでCGIを使えるようにするための設定です。注意なのはパーミッションの設定で、これをきちんと意識しないとうまく動きません。

◆セキュリティ設定
なくても動きますが、クラッカー対策に。

$ sudo emacs -nw /etc/apache2/conf.d/security

# 27行目:変更
ServerTokens Prod

# 39行目:変更
ServerSignature
Off


◆MIMEの編集
プログラム用のファイルタイプを登録します。
AddHandler    MIMEタイプ   拡張子 拡張子 ...

と記述することで、その拡張子を持ったファイルをどういう動作で動かすかを設定します。今回はCGIを使うので「.cgi , .pl」といったファイルを登録します。

$ sudo emacs -nw /etc/apache2/mods-enabled/mime.conf

# 218行目:コメント解除し、CGIとして扱う拡張子を設定
AddHandler cgi-script
.cgi .pl

ちなみにこれはmime.confをいじらなくても、次のディレクティブ設定で同じ事を書けば使えるようになります。すべての実行できるのはセキュリティ的にちょっと・・・という人はディレクティブ設定で指定する方がいいと思います。


◆ディレクティブ設定

$ sudo emacs -nw /etc/apache2/sites-available/default
        <Directory /var/www/>
                #ExecCGIを追加
                Options Indexes FollowSymLinks MultiViews ExecCGI
                #MIMEでは設定しない場合は以下のように。今回はMIMEなのでコメントアウト
                #AddHandler cgi-script .cgi .pl
                AllowOverride None  #CGIの挙動を.htaccessで制御するならAll
                Order allow,deny
                allow from all
        </Directory>


設定が完了したらApacheを再起動します。
$ sudo /etc/init.d/apache2 restart


◆シンボリックリンクの作成
$ sudo ln -s /usr/bin/perl /usr/local/bin/perl

これはなくてもいいです。ただLinuxのディストリビューションの違いでperl の実行ファイルが /usr/bin/perl だったり /usr/local/bin/perl だったりするので、書き換えが面倒にならないようにリンクを貼っておくことをオススメします。


◆確認ページの作成
$ sudo emacs -nw /var/www/index.cgi
#!/usr/local/bin/perl

print "Content-type: text/html\n\n";
print <<"EOM";
<html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">
CGI Test Page
</div>
</body>
</html>
EOM
exit;



パーミッションの変更をします。
$ sudo chmod 705 /var/www/index.cgi

これで「CGI Test Page」と大きな文字で表示されればOKです。テストページのソースがテキストのまま表示されたらCGIが使えてません。「500エラー」などが出る場合は

$ less /var/log/apache2/error.log

でエラーの原因を探ってください。


◆パーミッションについて
パーミッションについてです。注意として以下になります。

・700なら所有者はwww-data
・705以上なら所有者は誰でもOK


これを意識しないとよく「500エラー」や「403エラー」が起きます。


ソース:
Apacheのインストール・設定
CGI のためのウェブサーバ設定
ServerTokensによるサーバ情報表示の抑止

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。