• ベストアンサー

cgiがうまく稼動しません。

【環境】 os Windows XP サーバー Apache2.0.55 perl active perl5.6 お世話になります。Windows環境でApacheでサーバーを立てたのですが、cgiがうまく稼動しません。基本的な設定はconfで設定しています。 実際にcgiにアクセスすると、 Forbidden You don't have permission to access /bbs/xxxx.cgi on this server. と表記されてしまいます。 Windows環境なので、permissionは関係ないと思うんですが。 いろいろ調べたのですが、わかりません。 考えられる原因等、ご教授下されると幸いです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.8

> どこをどう設定すれば、wwwroot以下のディレクトリのcgiが使えるのか すみません、一番知りたいこれに答えていませんね。 <Directory "C:/wwwroot"> AddHandler cgi-script .cgi AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> ###です。ScriptAliasの指定は不要です **条件として 1. DocumentRoot "C:/wwwroot/" が指定されている 2. C:/wwwroot/ 以下全てのフォルダ内にcgiを設置できる 3. 同じフォルダツリーに .htmlや画像なども置く 4. CGIは拡張子 .cgi でだけ使えればOK と言う事です。  当然ながらuserdirなど他のフォルダツリーでもCGIを使う場合は 別途 <Directory コンテナによる指定が必要です。

その他の回答 (7)

回答No.7

まずは http://httpd.apache.org/docs/2.0/howto/cgi.html#configuring を読んで下さい。 そのページにあるようにScriptAlias(ま、よくあるcgi-binですな) の場合はデフォルト状態でCGIが動くようになっています。 CGIを動かすだけならば<Directory "cgiを置くディレクトリ">~</Directory> の設定もAddHandler cgi-scriptも不要です。 で、ScriptAliasに置いたFileは .htmlだろうが.txtだろうが.jpgだろうが CGIとして処理してしまうのでこれが逆に不便な場合も有ります http://oshiete1.goo.ne.jp/kotaeru.php3?qid=2047461 にあるように ScriptAliasの中にCGI以外のFileを置く場合には新たにCGIでは無いことを示すように AddHandlerを設定する場合も有ります (もっとも、わざわざScriptAliasにCGI以外のFileは置くなという意見も多いですが) それやOrder allow,denyによってScriptAliasへの アクセスを制限する場合には<Directory >コンテナに記述する必要があります。 ><Directory "C:/wwwroot/>にしたら、 全体設定によりAddHandler cgi-script .cgiが指定され <Directory コンテナにより Options ExecCGIが指定されていますので当然そうなります #6に対する補足に書かれた設定のままですと C:/wwwroot/home2/bbs/ に例えば #! /perl/bin/perl print"Content-type: text/html\n\n"; print "<HTML><H1>\$0 = $0 </H1>\n"; と言う全く同じ内容のFileを0.cgiと0.txtの2つおきます C:/wwwroot/ にもその2つのFileをコピーしておきます その4つのFileにそれぞれアクセスしてみてください

回答No.6

> #!C:perl/bin/perl (デフォルトでPerlを入れた場合) #! C:/perl/bin/perl が正解です。perlの前の/が足りません apacheとperlのパーティションが同じC:ならC:であれば #! /perl/bin/perl でもOKです。 http://mm.apache.or.jp/pipermail/newbie/2000-November/000049.html http://mm.apache.or.jp/pipermail/newbie/2000-November/000050.html あとはコマンドラインから C:\wwwroot\home2\bbs>perl -wc hoge.cgi で文法チェックしてみてください。 > 書き直した箇所は ScriptAlias 、、、 ん? ScriptAliasの場合は Options None でも動きますよ Forbiddenに成るはずが無いのですが? 前回はScriptAliasではなく普通のAliasだったということでしょうか? またScriptAliasであればAddHandler cgi-script .cgi も要りません ScriptAliasのディレクトリに入れた全てのFileがデフォルトでCGIと見なされますので

armstrong-us
質問者

補足

ありがとうございます。なんとか動きました。perlのディレクトリをいじって元に戻しておかなかったから、うまくcgiが動かなかったみたいです。 ところで、 ScriptAlias /bbs/ "C:/wwwroot/home2/bbs/" の箇所と <Directory "C:/wwwroot/home2/bbs/"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> の箇所はどう違うんでしょうか? 僕が思うには、ScriptAliasが全体の許可するディレクトリで <Directory "C:/wwwroot/home2/bbs/"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> の箇所が個別に設定する際に使用するってところなんでしょうか? 今回、<Directory "C:/wwwroot/home2/bbs/">のところを <Directory "C:/wwwroot/>にしたら、 ヴァーチャルホストで運用してる、ほかのHPのcgiも使えるようになったんですけど、設定的にはあっているんでしょうか? どうも間違えているような気がするんですけど。 つまりは、どこをどう設定すれば、wwwroot以下のディレクトリのcgiが使えるのかってことなんですけど。一応、今の設定でも動くのは動くんですけど、これで正しいのか不安なので、よろしくお願いします。 最後にScriptAliasと普通のAliasってどういう意味だったんでしょうか?

回答No.5

何度もすみません #4のAllowOverride AllはAllowOverride None に変えてください そのままでも動くけど .htaccessの全許可となってセキュリティ的にまずいので  (別の場所からコピーして直し忘れた(^^;)

armstrong-us
質問者

補足

何度もありがとうございます。 実際に書き直して設定しました。 今度はよくある Internal Server Error が出てしまいました。 一歩前進といった感じではありますが、どうにもこうにもわかりません。 書き直した箇所は ScriptAlias /bbs/ "C:/wwwroot/home2/bbs/" <Directory "C:/wwwroot/home2/bbs/"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> です。 それから一応,CGIの一行目のperlパスも #!C:perl/bin/perlなどに書き直して試してみましたが、ダメでした。ここは別にWindowsなら書き直さなくてもかまわないんですかね・・ なにが原因かおさっしつけば、よろしくお願いします。

回答No.4

う~~んんLocationかあ、、使ってもいいけど http://httpd.apache.org/docs/2.0/ja/mod/core.html#location の注意を読んでからの方がいいかも知れない やはり確実に行うなら Alias /bbs/ "C:/home/bbs/" <Directory "C:/home/bbs"> AddHandler cgi-script .cgi Options ExecCGI AllowOverride All Order allow,deny Allow from all </Directory> みたいに成りますね。

  • entree
  • ベストアンサー率55% (405/735)
回答No.3

httpd.conf などに以下のような設定を追加してみてください。(全角スペースが含まれているので、下の内容をそのまま貼り付けないでください) AddHandler cgi-script .cgi <Location "/bbs">  Options ExecCGI </Location>

回答No.2

参考URL を追記

参考URL:
http://httpd.apache.org/docs/2.0/ja/mod/core.html#options
回答No.1

Options ExecCGI が設定されていないためです 該当する Directory コンテナか 有効な.htaccessで指定してください

関連するQ&A

  • Fedora7でCGIが動きません

    CGIとPHPを使おうと思い、 Apacheで設定したんですけど CGIとPHP両方共に403 Forbiddenと表示されて You don't have permission to access /test.php on this server. ---------------------------------------------------------------- Apache/2.2.8 (Fedora) Server at 192.168.11.240 Port 80 この様に表示されてしまいます。 エキサイトで翻訳してみると あなたはこのサーバにアクセス/test.phpに許可を持っていません。 って書いて有るようですが如何すればアクセスした人全てに 許可をする事が出来るんですか?Apacheのhttpd.confの何処を修正 すれば宜しいのでしょうか?CGIの方はchmod 755 フォルダ名.cgi って打ち込んでパーミッションを変更しましたが駄目でした。

  • apacheで自宅サーバー cgi設置ができません。

    はじめまして。 よろしくおねがいします。超初心者です。インターネットで色んな サイトをみながら、苦労してサーバーを立ち上げました。 どう調べてもさっぱりわからないことがありまして........ どなたかご教授いただきたくメールさせていただきました。 よろしくお願いいたします。 【質問です】 XPにapacheをインストールして、サーバーを運営中です。 Tinyftpdもインストールして、ftpサーバーも運営中です。 自サイトにcgiファイルを置いてるのですが、全てのファイルの パーミッションが505になり所有者は、nooneになってしまいます。 ffftpで、パーミッションを変更してみたのですが、何度変更しても 505から変わりません。いったいどうすればいいのでしょうか? cgi-binフォルダを作って、httpd.confの設定も間違っていない みたいなのですが、 Forbidden You don't have permission to access..............on this server. となってしまいます。 パーミッションをapacheサーバーで設定できるようにするには、 どうすれば良いのでしょうか?

    • 締切済み
    • CGI
  • CGIの設定について

    現在、 HDE Linux Controller2.0 を使用してサーバを管理しているのですが、 CGIの設定ができません。 ファイルをアップしアクセスしますと Forbidden You don't have permission to access /cgi-bin/××××.cgi on this server. ------------------------------ Apache/1.3.22 Server at www.××××.jp Port 80 のメッセージが出てしまいます。 どのようにしたらCGIが使えるのでしょうか、教えてください。 よろしくお願いいたします。

  • OSXでcgi

    OSXでperlで作ったcgiを動かしたいと思い色々といじってるのですが全く動きません。 apacheのhttpd.confの設定で AccessFileName .htaccess AddHandler cgi-script .cgi AddHandler cgi-script .pl についてはコメントをはずして使えるようにして Perlのパスも#!/usr/bin/perlとしてsiteフォルダとcgiを置いてるディレクトリに.htaccessを下のように記述して作り AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .cgi/ パーミッション設定をちゃんとしてあげてるのですがブラウザからアクセスするとForBiddenとでてしっかりと設定してるはずのパーミッション設定が間違ってますと言われてしまいます。 OSXでcgiを動かすには他にももっと色々と設定しなければダメなんでしょうか?

    • ベストアンサー
    • Mac
  • CGIの設定で困っています

    FREEのスケジュール表を2つのサーバーに アップいたしました。 一つのサーバーは問題なく作動するのですが、 もう一つのサーバーはエラーが出てしまいます。 CGIファイルにブラウザでアクセスした際の 表示内容は、下記の通りです。 Forbidden You don't have permission to access /test/cgi-bin/history.cgi on this server. -------------------------------------------------- Apache/1.3.12 Server at www.ドメイン名.jp Port 80 です。 CGI、SSIともに使用はできるのですが、 どのように設定すればよろしいでしょうか。 どうか教えてください。よろしくお願いいたします。

    • 締切済み
    • CGI
  • Apacheの設定の問題でしょうか?

    Windows XPにApacheをインストールしてサーバーにしています。 ブラウザからcgiファイルを呼び出す以下のメッセージが表示されます。 Windowsサーバーはパーミッションの設定は必要ない思っているのですが、どなたか何が原因かお分かりでしょうか?ご教授願います。 (呼び出しURL) http://hostname/~******/cgi-bin/******.cgi Forbidden You don't have permission to access /~*******/cgi-bin/*****.cgi on this server. -------------------------------------------------------------------------------- Apache/1.3.24 Server at localhost Port 80

    • 締切済み
    • CGI
  • apache・cgiの設定?

    phpの勉強をしようと思い、apacheとphpをインストールしまいした。 ついでに、cgiの設定も試みてみました。 それで、掲示板を設置してアクセスしてみたのですが、開いた掲示板に表示されるgifアイコンが表示されません。(gifアイコンは、掲示板下の/imagae/に格納されています。) apache等の設定が悪いのでしょうか?また、cgiを設置したcgi-binフォルダー以下を表示すると、 Forbidden You don't have permission to access /cgi-bin/ on this server. と表示されます。 どなたか、ご指導お願い致します。

    • 締切済み
    • CGI
  • エラーメッセージ

    下記のようなエラーメッセージが出てしまうのですが どのような意味なのかおしえていただけないでしょうか? Forbidden You don't have permission to access /perl/itser_part3.cgi on this server. -------------------------------------------------------------------------------- Apache/1.3.17 Server at 192.168.0.29 Port 80

    • 締切済み
    • CGI
  • 自宅サーバがうまくいかない

    困っています。解決方法を教えてください。 環境:windowsXPHomeSp2 CGIの勉強するために、自宅にサーバ機能を入れようと思いました。 それでApacheをインストールし、http://127.0.0.1/が見れることで確認し、 ActivePerlインストールし、プロンプトにて”perl -v”で確認しました。 そのあと、実際にcgiファイルを試しに見てみようと思い、単純なもの(”aaa”とだけ表示するもの)で実行したのですが ”403 Forbidden You don't have permission to access /a.cgi on this server.” と出ます。 それなので、htmlファイルで同じものを作ったのですが見れました。 それでpermissionについて調べてみたのですが、windowsだと特に設定しなくても見ることは出来るとあります。 これはActivePerlの設定が間違ったということでしょうか? それだとどのようにしたら見れるようになるのでしょう。 わかる方がおればお願いします。

    • 締切済み
    • CGI
  • apache で /cgi-bin/にアクセスできません。

    Forbidden You don't have permission to access /cgi-bin/ on this server. Apache/1.3.19 Server at localhost Port 80 ブラウザで見ようとすると上のようなエラーが表示されます。 htdocs内の初期のテストのindex.htmlは参照できます。