OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

apacheでcgi

  • 困ってます
  • 質問No.169069
  • 閲覧数80
  • ありがとう数4
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 20% (12/58)

AddHandler cgi-script .cgiを有効にして.htaccess の中にOptions +ExecCGIAllを記述してhttpd.confのowOverride Options としてcgiを実行しようとしたら下記エラーになりました。
[Thu Nov 15 11:16:54 2001] [error] (13)許可がありません: exec of /home/jin/WWW/cgi-bin/tslbbs.cgi failed
[Thu Nov 15 11:16:54 2001] [error] [client 192.168.0.9] Premature end of script headers: /home/jin/WWW/cgi-bin/tslbbs.cgi

それで、
#AddHandler cgi-script .cgi
として、
<Directory /home/*/WWW>

Options ExecCGI

</Directory>
にしたら
cgiのソースが見えてしまいます。

cgiのPermissionsは755になっております。

ScriptAliasで/cgi-bin/ /home/*/WWW/cgi-bin/を記述してOptions ExecCGIにしてもソースが見えてしまいます。

cgiを実行させるのにはどうすればいいのでしょうか??

(以前Linuxを良くわからないときに(今でも解っていませんが・・)同じような質問をここに挙げてその時は単純な自分の間違いで動かなかったのですが単純なソースのミスでした。それで今度はLinuxをインストールをしなおしたら動かなくなったのです。
http://apachetoday.com/news_story.php3?ltsn=2000-06-05-001-10-NW-LF-SW
等覗いてそれをやっても動かないのです。
多分単純なことなのかもしれませんが行き詰まって困っております。

昨日の質問でユーザーのHTMLが見れないのはURLの指定で最後に'/'をつければ問題なく見れました。今はイントラネットでLinuxを動かしているのですが、実際のインターネットでは最後の/は入れたり入れなかったりでも問題なく見れるのですが、正しくは最後に/を入れるみたいですね。)
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全3件)

  • 回答No.1
レベル10

ベストアンサー率 25% (32/128)

>それで、 >#AddHandler cgi-script .cgi >として、 ><Directory /home/*/WWW> >Options ExecCGI ></Directory> #AddHandler cgi-script .cgi とコメントアウトしたら当たり前、ソースが見えてしまいますよ。 A ...続きを読む
>それで、
>#AddHandler cgi-script .cgi
>として、
><Directory /home/*/WWW>
>Options ExecCGI
></Directory>

#AddHandler cgi-script .cgi
とコメントアウトしたら当たり前、ソースが見えてしまいますよ。
AddHandler cgi-script .cgi
として、#をはずしたら言いと思います
補足コメント
jincyan

お礼率 20% (12/58)

#AddHandler cgi-script .cgi
はhttpd.confのデフォルトです。この場合デフォルトのScriptAliasの/cgi-bin/ ではCGIは動作するとapacheのマニュアルにありますが??
AddHandler cgi-script .cgi
は.htaccessをつかってフォルダ毎のコントロールに使うものだとマニュアルを読みまして受け取ったのですが私の理解能力が不足しているのでしょうか??

私の知りたかったのはではどうすれば動くかということを伺いたかったのですよ!
投稿日時 - 2001-11-15 21:36:03


  • 回答No.2
レベル10

ベストアンサー率 35% (56/160)

><Directory /home/*/WWW> >Options ExecCGI ></Directory> とりあえず、CGIが cgi-bin にあるのなら、ディレクトリの指定は   "/home/*/WWW/cgi-bin" じゃないでしょうか? ...続きを読む
><Directory /home/*/WWW>
>Options ExecCGI
></Directory>

とりあえず、CGIが cgi-bin にあるのなら、ディレクトリの指定は

  "/home/*/WWW/cgi-bin"

じゃないでしょうか?
補足コメント
jincyan

お礼率 20% (12/58)

ScriptAliasで/cgi-bin/ /home/*/WWW/cgi-bin/を記述しているのですが・・・

上の記述はUserDirの記述です。

ScriptAliasで/cgi-bin/があればそこが動くようにマニュアルにあるのですが・・・???
投稿日時 - 2001-11-16 08:02:07
  • 回答No.3
レベル9

ベストアンサー率 53% (52/98)

>それで、 >#AddHandler cgi-script .cgi >として、 ><Directory /home/*/WWW> > >Options ExecCGI > ></Directory> >にしたら >cgiのソースが見えてしまいます。 この手の設定ファイル一般に言えるのですが、 先頭の ...続きを読む
>それで、
>#AddHandler cgi-script .cgi
>として、
><Directory /home/*/WWW>
>
>Options ExecCGI
>
></Directory>
>にしたら
>cgiのソースが見えてしまいます。
この手の設定ファイル一般に言えるのですが、
先頭の# は、コメントを表します。
ので、
#AddHandler cgi-script .cgi
なる記述は、コメント(=有効な記述として読んでくれない)として解釈されます。
ので、今回のhttpd.conf に
AddHandler cgi-script .cgi
=「ファイル名の末尾に.cgi がついているファイルはCGIスクリプトとして扱う」
の設定がされているかどうかは、この時点では実は不明です。
(ここでは設定されていません。が、他の場所にあるかもしれません)
もし、.htaccess 内に
AddHandler cgi-script .cgi
と書いてあれば、.htaccess での設定が有効になるように設定されていれば、
(AllowOverride) 設定は有効になると思われます。

/cgi-bin/ 以下のファイルがデフォルトで実行可能になる、というのは、
そのcgi-bin にAlias されたディレクトリについて、<Directory> でCGI が実行可能に設定されているからそうなる話であって、そのAlias を変更した状態では話が変わってくるような気がします。

>cgiのPermissionsは755になっております。
>ScriptAliasで/cgi-bin/ /home/*/WWW/cgi-bin/
>を記述して Options ExecCGIにしてもソースが見えてしまいます。
上記のとおり、コメントになっているために、設定がされていないのではないか、とのご回答があったのだと思います。

長い前置きでしたが、以下に本題を。
状況がつかめないので、可能性があるとしか言えませんが...。

>cgiを実行させるのにはどうすればいいのでしょうか??

>[Thu Nov 15 11:16:54 2001] [error] (13)許可がありません: exec of /home/jin/WWW/cgi-bin/tslbbs.cgi failed
>[Thu Nov 15 11:16:54 2001] [error] [client 192.168.0.9] Premature end of script headers: /home/jin/WWW/cgi-bin/tslbbs.cgi

このエラーメッセージって、cgi 自体は実行されたけど、その実行されたcgi がパーミッションのエラーを起こした場合にもこのように出る気がします。
CGI の実行ユーザ(httpd の実行ユーザか、httpd.conf 内に書いてあるUser/Group が有効ならば、そのユーザ/グループ)でアクセスできるファイルのパーミッションになっているでしょうか?
補足コメント
jincyan

お礼率 20% (12/58)

>先頭の# は、コメントを表します。
>ので、
>#AddHandler cgi-script .cgi
>なる記述は、コメント(=有効な記述として読んでくれな
>い)として解釈されます。
#がコメントなのはわかっております。
GNOMEのapacheの設定で初期設定したのですが、(そのときExecCGIは有効にしておりました)展開されたhttpd.confのAddHandler cgi-script .cgi はコメントになっておりました。
ScriptAliasで記述したフォルダがデフォルトでCGIを実行するときAddHandler cgi-script .cgiは関係ないと思ったのです。(HPでみたapacheのマニュアルにもScriptAliasで記述したフォルダでOption ExecCGIでCGIは動くと書いてあり、AddHandler cgi-script .cgi は任意のフォルダ下の、.htaccessによるCGI実行をさせたいときに使うと書いてあると私は解釈しました。)
ようはtailkuppaさんはCGIを動かすときはAddHandler cgi-script .cgiが必須だと云われているのですね??

>[Thu Nov 15 11:16:54 2001] [error] (13)許可がありません: exec of /home/jin/WWW/cgi-bin/tslbbs.cgi failed
>[Thu Nov 15 11:16:54 2001] [error] [client 192.168.0.9] Premature end of script headers: /home/jin/WWW/cgi-bin/tslbbs.cgi
CGIを実行しようとしてでたメッセージなのは理解できます。apacheのUser・Groupeはnobodyになっております。
jinユーザーは何処のグループにも属していません。
素朴な疑問なんですが、IEでCGIを起動するのにそのLinuxのユーザーまたはグループでなければ起動がかからないのですか??(なら世間の掲示板やチャットは誰でも何故使用できるのでしょうか??)
パーミション755ってことは後の5で誰でも読込と実行が出来ることではないのですか??

(前インストールしたときにCGIがユーザーフォルダで動いたときはOption ExecCGIとするだけで動いたようなきがします・・・が思い違いでしょうか??)
投稿日時 - 2001-11-16 19:58:53
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ