Ubuntu Server 10.10, Apache2, CGI 設定

http://twitter.com/ka_ が Apache2 の設定に苦労したその軌跡
0
@ka_

だめだ.てかもし仮に www-data:www-data で動いたとして,それじゃあルート権限の無いユーザが chown 出来なくて CGI 動かせないので詰む.

2011-03-17 16:24:41
@ka_

多分もっともっとシンプルな,ほんの一箇所か二箇所設定するだけで動かせられるように出来るとオイラの直感は言っている (個人の感想です

2011-03-17 16:25:52
@ka_

レンタルサーバだと /usr/local/bin/perl か /usr/bin/perl の違いとパーミッションに気をつけるくらいでごく当たり前に CGI 動かせてたけどそれって管理者側はそんなに大変なことしてたのかなぁ,と.

2011-03-17 16:29:24
たけしけー @takeshik

@ka_ まずターミナル上で実行できるかってところから

2011-03-17 16:30:52
@ka_

@takeshik ターミナル上ではバッチリ動きます

2011-03-17 16:31:15
@ka_

@takeshik ターミナル上ではバッチリ動きます

2011-03-17 16:31:15
@ka_

だから多分もう Apache さんのツン状態をデレさせれば勝つると思うんですよ ^w^

2011-03-17 16:31:45
Atsushi SUGAWARA @peanutsjamjam

設定方法には「このディレクトリ内の実行ファイルはCGIとして実行する」という設定と「この拡張子の実行ファイルはCGIとして実行する」という2つの方法があるよね。 RT @ka_: よーするに Apache の思想を理解しないとダメなんだな ^w^

2011-03-17 16:33:59
@ka_

@peanutsjamjam 後者で行きたいですね

2011-03-17 16:34:32
@ka_

もしかして /usr/lib/cgi-bin/ って「このディレクトリの~~は CGI」って意味のディレクトリなのか!?

2011-03-17 16:35:08
@ka_

あああああそういうことだったああああああ

2011-03-17 16:37:02
@ka_

/usr/lib/cgi-bin/ に unk.cgi (内容は #!/usr/bin/perl print "unk" だけ) を設置して, http:スラスラhogehoge.domain/cgi-bin/unk.cgi 実行したら成功してるわこれ.

2011-03-17 16:38:33
@ka_

今まで必死で弄ってた /usr/lib/cgi-bin/ ディレクトリとかの設定は「このディレクトリ内にある実行可能ファイルは CGI だよ」っていうアレだったのか.そりゃ中身最初空っぽなわけだわ…

2011-03-17 16:39:43
@ka_

各ユーザの public_html (http:スラスラhoghoge.domain/~ユーザ名/ で見えるとこ) 以下に設置した Permission 755 なファイルも例外なく CGI にしたい.

2011-03-17 16:41:45
Atsushi SUGAWARA @peanutsjamjam

なら、まず、ScriptArias ディレクティブは関係ないね。 RT @ka_: @peanutsjamjam 後者で行きたいですね

2011-03-17 16:42:34
@ka_

あああそっか! <Directory /> のセクションにある Options に今 FollowSymLinks しかないけど ExecCGI を追加するのか! QT @tsubu_srs: @ka_ ならDocumentRoot にExecCGIかな

2011-03-17 16:45:08
@ka_

さっき青猫さんが言ってたのはこういうことだったのか… QT @AonekoSS: @ka_ CGIの置き場所を区別しないってのなら、ルートのディレクティブでOptions ExecCGIとか入れちゃえばOK。

2011-03-17 16:45:29
@ka_

だめだやっぱり Forbidden になる.

2011-03-17 16:48:38
@ka_

多分あと一息,どっか設定変えてやればいいと思うんだが…

2011-03-17 16:48:53
Atsushi SUGAWARA @peanutsjamjam

@ka_ 後者なら、AddHandlerで拡張子を教えてあげて、ExecCGIオプションで「このディレクトリには静的なhtmlファイルだけじゃなく、CGIスクリプトもあるよ」と教えてあげる感じ。

2011-03-17 16:49:17
@ka_

/etc/apache2/mods-available/userdir.conf の Directory セクションの Options ディレクティブに ExecCGI を追加して完璧になった.

2011-03-17 16:53:21
Atsushi SUGAWARA @peanutsjamjam

extra/httpd-userdir.confのOptionsの行にExecCGIの7もじを追加でしょうか。スペースいれたら8文字か。 RT @ka_: public_html ~ユーザ名/ で見えるとこ以下に設置した 755なファイルも例外なくCGIにしたい.

2011-03-17 16:55:03
@ka_

/etc/apache2/mods-enabled/mime.conf の AddHandler cgi-script .cgi にも .pl と .rb を追加してみて動作確認.これが無いとスクリプトファイルがダウンロードされるだけだったのが実行してくれるようになった.

2011-03-17 16:56:34