揮発性のメモ2

http://d.hatena.ne.jp/iww/

apache2.4でCGIを動かすやつ

bashとかpythonとか普通じゃないやつで遊ぶ用


mod_cgid.so を有効にする
コマンドで有効化する(21世紀なので、シンボリックリンクを手で書いたりしない)

sudo a2enmod cgid

よくある設定

Alias "/hoge" "/home/unko/project/hoge"
<Directory "/home/unko/project/hoge">
    # 拡張子.cgi をCGIとみなす
    AddHandler cgi-script .cgi

    # このディレクトリで許すやつ
    Options ExecCGI FollowSymLinks Indexes
    # .htaccessで上書きを許すやつ
    AllowOverride Options AuthConfig FileInfo Limit Indexes

    # このディレクトリにアクセスできる人
    Require all granted
</Directory>
Options このディレクトリで許すやつ
ExecCGI .cgiの実行を許す
FollowSymLinks シンボリックリンクをたどるの許す
Indexes インデックス表示
AllowOverride .htaccessで設定の上書きを許すやつ
Options Options の上書きを許す
AuthConfig BASIC認証
FileInfo mod_rewrite
Limit IPアドレスでのアクセス制限とか用
Indexes インデックス表示

Require all granted

デフォルトではアクセスが無効になっているので、全ての人がアクセスできるようにする

うごかないとき

404
ディレクトリがほんとうにない
/を付けないとDocumentRootになるとか
403
Require all granted を書く
500
実行属性つける
ダウンロードされる
AddHandler cgi-script .cgi を書く
ソースがでる
mod_cgid.so を有効にする

core - Apache HTTP サーバ バージョン 2.4
Apache 2.4.2でCGIが動かない: ■メモ帳
mod_authz_core - Apache HTTP Server Version 2.4
Ubuntu ServerでCGIプログラムを動作させる - サーバーでもUbuntuを使っています
» bashでCGI (1) Apacheの設定 TECHSCORE BLOG
Apacheで動かすphp,python,ruby の Hello World まとめ - Incoming!