ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.4183916 Forbiddenの意味
質問者:stephaniy サイトを作り、CGIを設置したはずなんですけどフォームの送信ボタンを押すとこのメッセージが出てきます。

Forbidden

You don't have permission to access /postmail/postmail.cgi on this server.

どんな意味なんでしょうか?ご指導お願いします。
困り度:
  • すぐに回答を!
質問投稿日時:
08/07/17 17:31
この質問に対する回答は締め切られました。

回答

ANo.6 すみません。

前の投稿を見たら、ディレクトリ構成が間違ってました。
正しくは、「data」ディレクトリ、「tmpl」ディレクトリ、「lib」ディレクトリは「postmail」ディレクトリの下に置いて下さい。
+- index.html (トップページ)
|
+-- postmail[705] / postmail.cgi [705]
|         postmail.html
  |
  +-- lib[705] / jcode.pl
  |        mimew.pl ... 任意
  |        io-socket.pl
  |
  +-- data[705] / log.cgi [606]
  |
  +-- tmpl[705] / body.txt
           conf.html
           err1.html
           err2.html
           thx.html
(※無印は全てパーミッション[604])

です。
回答者:t-sazen
種類:回答
どんな人:専門家
自信:自信あり
回答日時:
08/07/23 12:27
この回答へのお礼おかげさまで、なんとかわかりました。

ありがとうございました。

回答

ANo.5 ASJ。。。調べてみましたが、やはりPerlはSuEXEC環境で動いてるようです。

+- index.html (トップページ)
|
+-- postmail[705] / postmail.cgi [705]
|           postmail.html
|
+-- lib[705] / jcode.pl
|        mimew.pl ... 任意
|        io-socket.pl
|
+-- data[705] / log.cgi [606]
|
+-- tmpl[705] / body.txt
         conf.html
         err1.html
         err2.html
         thx.html
(※無印は全てパーミッション[604])

にしてみてください。
ASJの詳細がユーザーではないのでわかりませんが、これでもForbiddenが出るようなら、サーバー側の設定の問題かもしれません。

対策として(普通レンタルサーバではありえないけど・・)、postmailディレクトリに追加で「.htaccess」(カッコ不要)というファイルを
アップしてみてください。(パーミッションは[644]or[600])
内容は以下の通りです。

Options +ExecCGI
AddType application/x-httpd-cgi .cgi .pl

あと、KentWebさんのサイトにも書いてあったんですが、直接postmail.cgiを叩いてチェックする方法があるようですね。
http://〜〜/postmail/postmail.cgi?mode=check

うまく動作することを願ってますよ!
回答者:t-sazen
種類:回答
どんな人:専門家
自信:自信あり
回答日時:
08/07/18 13:31
この回答へのお礼遅くなってすいません。

あれからやってみたのですが、全然です。
でも、ファイルをバイナリモードで送ってたのでテキストで送ってみたのですが、それでも、まだダメです。

ましては、マックではhttp://〜〜/postmail/postmail.cgi?mode=checkで確認すると、何も表示されない白紙のページがでてくるんですが、
windows(IE)だと、インターネットサーバーエラーがでます。

もう訳がわからない状態です…

回答

ANo.4 No.3です。
ダウンロード先は一般的な設定を説明することが大半です。
もちろんその設定でOKな事も多いですが、サーバー側の設定が詳細に書いてあればそちらを優先してください。
後、サーバー側の設定で、特定のディレクトリでしか動作しないこともあります。
例えばinfoseekであればルートディレクトリの下のcgi-binディレクトリの下でないと動作しません。
その辺ご確認ください。
回答者:t-sazen
種類:アドバイス
どんな人:専門家
自信:自信あり
回答日時:
08/07/17 20:49
この回答へのお礼親切な回答ありがとうございます。

う〜やっぱりできないです。
ちなみにレンタルサーバーは「ASJ」ってところで、フリーのCGIはKENT WEBさんからダウンロードしたものなんです。

ルートディレクトリもindexの下で大丈夫みたいなんです。
パーミッションも間違ってはいないはずなんですが…

回答

ANo.3 意味は他の人が仰ってるので割愛します。
この例だと、postmail.cgiのパーミッションが755(SuEXEC環境では700)になってない事が考えられます。
FTPでパーミッションを見て確認してください。

余談ですがメール送信を許可していないサーバが多いので、メール送信を許可していないサーバでは、仮にCGIがうまく動作しても500 Internal Server Errorが出ます。
回答者:t-sazen
種類:回答
どんな人:専門家
自信:自信あり
回答日時:
08/07/17 18:38
この回答へのお礼755にしたんですけど、やっぱりForbiddenがでてしまいます。

それともう1つ質問なんですが、このCGIはフリーのところでダウンロードしたものなんですけど、そのダウンロードした所が指定したパーミッションを優先すればよいのか?それとも、レンタルサーバーのほうで指定されてるパーミッションにすればよいのか?
どっちだかわからないんです。

回答良回答20pt

ANo.2 禁止を意味する英語ですね.
ファイルやディレクトりが存在するが,アクセス許可がない時にでます.

You don't have permission to access /postmail/postmail.cgi on this server.
あなたはこのサーバ上にある/postmail/postmail.cgiに対するアクセス権を持っていません.

これは,メールフォームのプログラムで送信した場合っぽいですね.
そのサーバでpostmailの使用が許可されているかとか見直したら良いと思います.
回答者:aigaion
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/07/17 17:43
この回答へのお礼回答ありがとうございます。

許可をするには、どうしたら…?

回答良回答10pt

ANo.1 ドイツ語・・「禁止」
回答者:tono-todo
種類:回答
どんな人:経験者
自信:自信あり
回答日時:
08/07/17 17:35
この回答へのお礼ありがとうございます。