- 締切済み
フォームで送信ボタンを押すと、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のプログラムリストがブラウザで表示してしまい、メール送信が出来ない情況です。 うまく動作させたいのですが、どのようにすればよろしいでしょうか。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- turbo27
- ベストアンサー率40% (166/414)
根本的なところの確認ですが、 サーバーはどこを使ってますか?
- umasikajiro
- ベストアンサー率67% (545/803)
>テキストを表示するだけの簡単なcgiは動く いくつか質問します ・質問1、postmail.cgi と同じディレクトリに その簡単なcgiを置いて動きますか? ・質問2、 ほんとにプログラムリストが表示されているとしたら 1行目に #!/usr/local/bin/perl が表示されている状態になりますが、 そうなっていますか? ありがちな例としてソースリストではなく CGIの実行結果やエラーメッセージがテキスト状態で ブラウザ内にズラーット表示されたりダウンロードしようとしたりする場合が 有りますけどそれでは有りませんか? もし後者なら全然別の問題ですが?
- umasikajiro
- ベストアンサー率67% (545/803)
実行権限付与(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)
CGIの格納してあるフォルダに実行権限与えられてないですね。 レンタルサーバですか?自宅サーバですか? 自宅サーバならapacheですよね?httpd.confの設定でCGIの実行許可を与えましょう。 apacheの設定に付いてはしたのURLで。
お礼
有難う御座います。テキストを表示するだけの簡単なcgiは動くので、実行許可はあるとおもうのですが
お礼
有難う御座いました! 質問1:動きますか? 質問2:1行目に #!/usr/local/bin/perl が表示されている状態になります