• ベストアンサー

「Forbidden」のエラーばかりです。お願いします。

CGI(perl)を始めたのですが、下記のエラーばかり出て、判らなく困っています。(TT) Forbidden You don't have permission to access /****/perl/bin/aaa.cgi on this server. 自分なりに調べましたが、このエラーは主にパーミッションの設定が悪い時に出てくると、勉強しましたが、他の原因でも出るのでしょうか?(出てくるんだろうな....) 念の為、レンタルサーバーでのperl指定の記述も確認しaaa.cgiもaaa.pl等の書換済みです。 また、パーミッションの設定も自身がありませんでしたので、レンタルサーバー会社のお奨めの(755)に統一してみましたが、エラーが出てしまいます。 レンタルサーバーは http://www.asj.ne.jp/techinfo/cgi5.html です。 今、作っているコンテンツの流れ(内容?)は、名前・性別・出身・メールアドレス・他を最終的に aaa.datファイルに収める事が最終目的です。 一連の作業(流れ)で、 aaa.htm aaa.cgi aaa.pl cgi-lib.pl jcode.pl aaa.dat の6個のファイルを使用しています。 語学力が無いので、質問の内容もうまく書けていないと思いますが、どうぞ宜しくお願い致します。

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

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.4

補足して頂いた内容から考えますと、下記の様になると思いますが、 “●●●フォルダ/aaa.htm”: 閲覧できる “●●●フォルダ/perl/bin/aaa.cgi”: Forbiddenエラー aaa.cgi を ●●●フォルダ に移動させて、 “●●●フォルダ/aaa.cgi” として実行したらどうなりますでしょうか? 参考URLにも有るように「public_html」以下のフォルダであれば、CGIが実行出来るはずです。 これで、パーミッションも755なのにForbiddenエラーが出るようでしたら、一度、レンタルサーバ会社さんに問い合わせてみては?

参考URL:
http://www.asj.ne.jp/faq/cgi_08.html
broi
質問者

お礼

この度は、お時間を頂き、親身にアドバイス頂き有難う御座いました。問題はサーバー側とファイルのパーミッションの様でした。新たなサーバーの利用開始が出来たので、双方で試したところ、新たなサーバーは、パーミッションの変更で動いてくれました。ファイルの説明では、<755>との事でしたが、<705>で動作し、他のファイルも説明書?とは異なるパーミッションでした。また、見かけた際には、アドバイスお願い致します。ご心配お掛け致しました。本当に有難う御座いました。

その他の回答 (3)

  • duckling
  • ベストアンサー率47% (88/185)
回答No.3

cgi-bin や、perl-bin という ディレクトリの中じゃないと動かない、 とかいうことはないですか?

broi
質問者

お礼

この度は、お時間を頂き有難う御座いました。また、見かけた際には、アドバイスお願い致します。 問題はサーバー側とファイルのパーミッションの様でした。有難う御座いました。

broi
質問者

補足

ducklingさん。こんにちは。お世話に成ります。 一応、レンタルサーバー側は"場所は指定なく動作する"との事でした。しかし、私も、もしかしたらと思いcgi-binのディレクトリを新たに作り、パーミッションも設定しましたが、動きません。 URLの後に、aaa.cgi?~~~~と主導で指定する方法?でも同様のエラーでした(TT) 何か引っかかる点など有りましたら、宜しくお願い致します。

  • root139
  • ベストアンサー率60% (488/809)
回答No.2

perlのパスについてですが、そのまま、サーバー会社指定の“#!/usr/local/bin/perl5”のままにしておいてください。これはCGIスクリプトを処理するperlの(インタープリタの)パスなので、そのサーバ全体で共通になっていると思います。 また、フォルダの構成もCGIを動作させるという点において問題は無いと思います。(CGIが動くようになったら、セキュリティためにlogファイルの場所を再考したほうが良いと思います。) 補足要求ばかりで申し訳ないのですが、もう、3点補足して頂きたいことがあります。 1. エラーメッセージに下記のような部分があるのですが、 “/****/perl/bin/aaa.cgi on this server. ” 補足していただいた内容を見ると、aaa.cgiのパスは “●●●フォルダ/aaa.cgi” となりますが、ファイルの場所を変更されたということでしょうか? 2. エラーメッセージは、やはり“Forbidden”(403)が出ていますでしょうか? “Not Found”(404)や“Internal Server Error”(500)は出ていないでしょうか?(括弧の中の数字はエラーコードです。サーバによってはこれが表示される場合があります。) 3. CGIスクリプトがあるフォルダかその上の階層に、もし、.htaccessファイルがあれば、問題ない範囲で内容をお教え下さい。

broi
質問者

補足

本当に親身にアドバイス頂き、またお手数お掛けして恐縮です。 >(CGIが動くようになったら、セキュリティためにlogファイルの場所を再考したほうが良いと思います。) 有難うございます。考えてもいませんでしたので、また1つ勉強させて頂きました。 1.ですが、私の下手な図で、誤解を招いてしまいました。大変申し訳有りませんm(_ _)m aaa.cgiは、初めから”●●●フォルダ/perl/bin”の中に入れています。 2.ですが、やはり“Forbidden”(403)のエラーです(TT) 3.ですが、.htaccessファイルは今のところ有りません。UPする予定はしていまして、内容は携帯電話からのみのアクセス許可で予定しています。 ご迷惑かもしれませんが、補足不足でありましたら、すみませんが、お申し付け下さい。どうぞどうぞ宜しくお願い致します。m(_)m

  • root139
  • ベストアンサー率60% (488/809)
回答No.1

お使いのレンタルサーバでは、CGIスクリプトもHTMLファイルと同じフォルダで動作するようですが、同じフォルダにあるHTML(aaa.htmなど)は閲覧できますでしょうか? もし出来なければ、 ・ファイルがpublic_html以外のフォルダに設置されている ・フォルダ(上の階層も含めて)のパーミッションが不適切 ・HTML/CGIファイルのパーミッションが不適切 のどれかが原因だと思われます。

broi
質問者

補足

こんにちは。宜しくお願い致します。 aaa.htmは観覧できます。フォルダのパーミッションの変更が必要とは・・・ボーッと考えていましたが、知りませんでした。確認をしましたら、index.htmのフォルダ~したの階層のbinフォルダまで(755)でした。 また、色々と考えていまいたら、自分で理解していない所が出てきたのですが、.cgiのパスはサーバー会社指定の”#!/usr/local/bin/perl5”を記述していますが、私が作ったフォルダの構成は、usr/●●●フォルダ/perl/bin/log の順で作っています。 *************************************************** ●●●フォルダ----index.htm           |--aaa.htm           |--perl(フォルダ)--bin(フォルダ)--log           |           |--aaa.cgi           |--他.pl 等 *************************************************** 分かり難くてすみません。こんな感じにしていまして、思っていたのが、自分でのフォルダの構成が間違っているような気がしてどうしようもないのですが、どうでしょうか?やはり間違っていますでしょうか? 何度もすみませんが、どうぞ宜しくお願い致します。

関連するQ&A