- ベストアンサー
さくらインターネットのCGIの設置について
現在ビルダー関連(ジャングルのビジネステンプレート)ホームページを作り、さくらインターネットのcgiを利用してメールフォームを作成していますが、下記の内容のコメントが出てしまいます。作成会社にもサーバー会社にも問い合わせをしたのですが互いに相手の方に問題があると言われてしまいます。申し訳ありませんが解決方法をご存知の方がいらしたら教えてください。お願いします。 Method Not AllowedThe requested method POST is not allowed for the URL /contact.html. Apache/1.3.37 Server アカウント.sakura.ne.jp Port 80 最初450でしたが現在405 Method Not Allowedになっています。 この表示について調べるとapacheの調整やPOSTをGETにすなどの解決方法があるとありますが良くわかりません。 解決方法を教えてください。宜しくお願いします。 CGI専用の質問コーナーだったためここで質問してみました。質問する場所が違うようならすみません。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>[contact.cgi:126:die] Can't locate ./inc/contact_error.inc これはライブラリファイルが見つからないと言う意味です。 例えば contact.cgiを置いているディレクトリが /home/tarou/www/testcgi/ だと仮定すると、その下の /home/tarou/www/testcgi/inc/ に contact_error.inc と言うライブラリファイル(大雑把に言うとCGIの部品として読み込むFILEの事) を置かなければいけません。 contact_error.inc を contact_error などとFILE名の一部を変えても駄目ですし Contact_error.inc などと一部を大文字にしても駄目です。 また、そのパーミッションは特にいじっていなければ、取り合えずそのままで構いませんが sakuraインターネットのようなSUEXEC環境であれば /home/tarou/www/testcgi/inc/ は 700 /home/tarou/www/testcgi/inc/contact_error.inc は600 にすれば安全性は高まります。 (その辺りの話は http://oshiete1.goo.ne.jp/kotaeru.php3?q=2202319 )
その他の回答 (4)
- umasikajiro
- ベストアンサー率67% (545/803)
え~っと<A HREF="">タグは判りますよね? 同じようにHTML文中のFORMタグで .cgiファイルを指定するのです 例えば form.cgi と言うfile名なら <FORM ACTION="form.cgi" METHOD="post"> などと記述します たぶん質問者さんの場合は contact.htmlと言うHTMLファイルの中にFORMタグが記述してあって <FORM METHOD="post"> などとACTIONで.cgiを指定していないのではないですか? その場合はFORMタグを記述してあるcontact.html自体にPOSTでデータを送信してしまいますので ご質問のようなエラーになります。 >さくらインターネットのcgiを利用してメールフォームを と有りますが、私自身もsakuraのレンタルサーバーを使っていますが sakura側で用意されたメールフォーム用のCGI、もしくは、その説明ページは、どこにあるのか判りませんです [補足要求]説明ページなどのURLを教えてください (サーバーコントロールパネルの中にある「 メッセージの投稿も出来るWebアンケート"Message ENQ"」 ってのは違いますよね?)
補足
質問させていただいているのに遅くなってすみませんでした。 早速教えていただいた記述を直したところ以前までのメッセージは出なくなりました。有難うございます。 ところで、代わりに次のメッセージが出てしまいました。 Catch: Thu Sep 7 18:43:06 2006 [contact.cgi:126:die] Can't locate ./inc/contact_error.inc in @INC (@INC contains: ./lib /usr/local/lib/perl5/5.8.8/BSDPAN /usr/local/lib/perl5/site_perl/5.8.8/mach /usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.8.8/mach /usr/local/lib/perl5/5.8.8 .) at contact.cgi line 126. > require './inc/contact_error.inc'; contact.cgi with Perl 5.008008 for freebsd contact_errorというファイルは一緒にアップロードするように作成会社に支持されたのでそうしていますが、内容はわかりません。今日先方に言われ上記の文章をメールにて送付しましたが回答は時間がかかるとのことです。 テンプレートはビルダーベースで、ジャングルのデザインテンプレートビジネス版を使っています。メールフォームはここの会社のもので、説明は特にありません。 さくらの質問コーナーです。 http://faq.sakura.ad.jp/cgi-bin/sakura.cfg/php/enduser/std_alp.php?p_page=1&p_cat_lvl1=4&p_cat_lvl2=%7Eany%7E&p_search_text=&p_new_search=1 大変申し訳ありませんがまたよろしくお願いいたします。
- umasikajiro
- ベストアンサー率67% (545/803)
少なくともsakuraで使っているApache1.3系の場合 #2さんの言われるとおり、普通のhtmlぺーじなど POSTを処理できないページに送信してしまうと、そのメッセージになります。 また.cgiであっても AddHandler cgi-script .cgi などが記述されていない、つまりCGIとして設定されていない状態でPOSTで送ると同じエラーになります。 FORMタグのActionでPOSTを処理出来るページを指定してください。 また過去にあった例として、ActionできちんとCGIを指定したのにうまくいかないと言う質問が某所で有りましたが その時は、間違えてFORMタグを2重に記述していました。 ## で、うちで試した限りではですが、Apacheでも2.0.55と2.2.0では普通の.htmなどにPOSTで送ってもエラーになりませんでした もっとも、処理は出来ませんので何も変化無しですが、、、 #2さんへ >contact.htmlの最後に「.」(ドット)があるのは エラーメッセージでは 末尾に ドットが付くようです
お礼
本当にご丁寧に有難うございます。 因みに追加なんですが、上記4の時間なんですが、更新するたび、その時間になります。
補足
質問をしたのに遅くなりましてすみません。 ご丁寧に教えていただき有難うございました。 FORMタグのActionでPOSTを処理出来るページを指定してください、 というのは、 FormDate.pmというところを変更すればよいのでしょうか? 因みに変更しようとするとこのファイルは開けませんと出てしまいます。宜しくお願いいたします。
- necomimi
- ベストアンサー率41% (633/1540)
>/contact.html. 通常、POSTのactionで指定するのはcgiだと思うのですが その辺は大丈夫でしょうか? あと、contact.htmlの最後に「.」(ドット)があるのは 記述ミス?
- Kuppycat
- ベストアンサー率50% (109/216)
サーバでPOSTメソッドが許可されていないということかと。 apacheの調整というのは、このPOSTメソッドを許可するということでは。 .htaccessの設定でできませんか? できないようであれば、POSTに変わるもの(GETなど)にする必要があるということです(GETはお勧めしませんが)。 質問の本題とは違いますが。 ↓こちらの質問はサイトとしては別のところだったのでしょうか。 http://okwave.jp/kotaeru.php3?qid=2377864 同じ「OKWave」ベースなので2重投稿になってます。気をつけてください^-^。
補足
umasikajiroさんに教えていただいたとおり設置したところ 起動させることが出来ました。大変ありがとうございました。 送信すると文字化けするのですが、さくらのQ&Aをみると プラウザの調整をするようにとあります。明日こちらの方は明日さくらの方に問い合わせをしたいと思います。 本当にありがとうございました。