• 締切済み

フォームで送信ボタンを押すと、postmail.cgiのプログラムリストが表示してしまう。

CGI初心者です! http://www.kent-web.com/data/postmail.htmlを参考にして cgiで送信フォームを作成しています。 perlへのパスも確認し、sendmailのアドレスも $mailprog = /usr/lib/sendmail; で確認して、動作させました。 また、cgiのプログラムはcgi-bin配下に格納し、 $script = ../../cgi-bin/postmail.cgi; という形で修正しました。 ところが、フォームで送信ボタンを押すと、postmail.cgiのプログラムリストがブラウザで表示してしまい、メール送信が出来ない情況です。 うまく動作させたいのですが、どのようにすればよろしいでしょうか。

みんなの回答

  • turbo27
  • ベストアンサー率40% (166/414)
回答No.4

根本的なところの確認ですが、 サーバーはどこを使ってますか?

回答No.3

>テキストを表示するだけの簡単なcgiは動く いくつか質問します  ・質問1、postmail.cgi と同じディレクトリに その簡単なcgiを置いて動きますか?  ・質問2、 ほんとにプログラムリストが表示されているとしたら   1行目に #!/usr/local/bin/perl が表示されている状態になりますが、   そうなっていますか?   ありがちな例としてソースリストではなく   CGIの実行結果やエラーメッセージがテキスト状態で   ブラウザ内にズラーット表示されたりダウンロードしようとしたりする場合が   有りますけどそれでは有りませんか?   もし後者なら全然別の問題ですが?

maiko100
質問者

お礼

有難う御座いました! 質問1:動きますか? 質問2:1行目に #!/usr/local/bin/perl が表示されている状態になります

回答No.2

実行権限付与(Optionsやパーミッション)が無い場合は403Forbidden になりますので スクリプトのソースがそのまま表示又はダウンロードされてしまうなら 拡張子 .cgiをCGIとして設定されていません http://oshiete1.goo.ne.jp/kotaeru.php3?q=2150813 にも書きましたが Apacheならhttpd.confか.htaccessに AddHandler cgi-script .cgi 他 http://httpd.apache.org/docs/2.0/ja/mod/mod_mime.html#addhandler 但しApacheの場合 ScriptAlias でcgi-bin を設定してあれば AddHandler もOptionsもいらないので 質問者さんのケースでは cgi-binに入れても意味が無いことになりますね IISならスクリプトマッピングします インターネットサービスマネージャ>既定のwebサイトまたは 他の仮想ディレクトリのプロパティ>構成>アプリケーションのマッピング>.cgi c:\Perl\bin\perl %s %s

  • tsukachan
  • ベストアンサー率42% (202/470)
回答No.1

CGIの格納してあるフォルダに実行権限与えられてないですね。 レンタルサーバですか?自宅サーバですか? 自宅サーバならapacheですよね?httpd.confの設定でCGIの実行許可を与えましょう。 apacheの設定に付いてはしたのURLで。

参考URL:
http://www.miloweb.net/win/server/index.html
maiko100
質問者

お礼

有難う御座います。テキストを表示するだけの簡単なcgiは動くので、実行許可はあるとおもうのですが