• 締切済み

CGIのサーバーへの転送

CGIは素人です。商品の申込みフォームでCGIを使おうとしています。 マニュアルどおりにすすめていますが、サーバーへ送って、送信ボタンを押すとエラー画面になってしまいます。Perlパスにも書き換えていて、アスキーで送っています。ヒントになるご回答おまちしています。

  • CGI
  • 回答数2
  • ありがとう数0

みんなの回答

  • burn
  • ベストアンサー率65% (25/38)
回答No.2

お答えは、anglyさんのテスト環境では上手く動いていて、 サーバー上ではエラーになってしまう・・・と言う事で良いのでしょうか? 又、CGIはご自身で用意されたものと言う事で良いですね。 上記の点を前提としてお答えすると、エラーの原因として考えられるのは、以下の点です。 1.そのCGIが読み書きしている、ファイルのパーミッションが間違っている。 CGIで書き込みをしている、ファイルは無いですか? あったら、そのファイルのパーミッションは666、ディレクトリは777にしてみてください。 2.Perlのパスが間違っている。 これは、今回はクリアされていると思います。 3.sendmailのパス、もしくは構文エラー もし、angelyさんがWindows環境で開発されたものならば、sendmailはサーバーに送って初めて稼動する部分だと思います。 良くあるのは、sendmailのパスの記述ミス。 そして、メールヘッダーと、本文との間に空行を開けて居ない場合等です。 多分、商品の申込みフォームと言う事ですから、オーダーをメールで送信する様な仕様になっていると思います。 良くチェックしてみてください。 他にもエラーを起こす要因はありますが、今の情報だけだと、この辺りからチェックしてみるのが良いと思います。 今までの開発経緯など、もう少し詳しい情報を頂けたら、 エラー原因を特定できると思います。

angely
質問者

補足

早速お答えいただいて嬉しいです。もう少しというかだいぶ詳しく説明いたします。orderというフォルダの中にordersheet.cgi(パーミッション755←サーバーの指示)ordersheet.htm(パーミッション604)cgi-lib.pl(パーミッション404)jcode.pl(パーミッション404)ordersheet.dat(パーミッション606)でこれをFTPでアップロードしました。755以外のパーミッションは本を見ながらしました。cgiスクリプトで送信ボタン後の部分は以下のようになっています。お答えいただいた、sendmailというのが何かわからなかったのですが・・・。私が作っているこのCGIには必要なものですか? # -----ここから出力----- print "Content-type:text/htm\n\n"; print <<END_OF_HTML"; <html> <head><title>申込み</title></head> <body>ありがとうございました。早速商品をお送りします。</body> </html> END_OF_HTML

  • inoue64
  • ベストアンサー率29% (334/1115)
回答No.1

・最初に「Content-type: なんとかかんとか」 と、  空行を1行Printするようにしましたか?  http://tohoho.wakusei.ne.jp/wwwcgi.htm ・このサイトを参考にしてみてはどうですか。

参考URL:
http://tohoho.wakusei.ne.jp/wwwcgi7.htm,http://www.att.or.jp/perl/cgi-debug-env/deb-tech.html

関連するQ&A

  • mailformのCGI設置で「Internal Server Error」が出て・・・

    いつもお世話になります。 メールフォームのCGIを設置しようと あれこれやっているのですが 「Internal Server Error」と表示されうまくいきせん。 たぶんCGIファイルの記述がマズいのだと思うのですが・・・ パーミッションなどはマニュアルどおりに設定してます。 CGIの一部を掲載してみますので よろしくお願い致します。 #!/usr/bin/perl #jcode.pl のパス(相対パス指定) $jcode = './jcode.pl'; #sendmail のパス(要変更) $sendmail = '/usr/sbin/perl/sendmail'; #一時保存用ファイルのパス(相対パス指定) $tempfile = './tempfile.dat'; #メールを受け取るアドレス $getmail = '********@rose.plala.or.jp'; #送信完了画面のパス(http://~の絶対パス指定) $complete = 'http://challenger.****.ne.jp/*********/public_html/mailform/complete.html'; #送信確認用テンプレートのパス(相対パス指定) $checktemplete = './check.html'; #エラー表示用テンプレートのパス(相対パス指定) $errortemplete = './error.html'; #コピーメールの送信者名 $copymailfrom = 'from@form.mail'; #入力フォームのアドレス(http://~の絶対パス) $enterformurl = 'http://challenger.****.ne.jp/*********/public_html/mailform/form.html'; #このCGIのアドレス(http://~の絶対パス) $ownurl = 'http://challenger.****.ne.jp/*********/public_html/mailform/mail.cgi'; ディレクトリやメールアドレスの部分の「*」は ブラインドのために変更して載せてます

    • ベストアンサー
    • CGI
  • CGIフォームが作動しない原因について

    メールフォームのCGIを作成したところ、起動せず、500番のISEエラーになってしまいます。 他のサーバーに置いたところ問題なく起動し、 perlのパスは #! /usr/bin/perl #! /usr/local/bin/perl どちらもためし、 パーミッションも、705や755などで試したのですが、作動いたしませんでした。 また、メールフォームCGIに問題があるのかと、簡易的なCGIを設置し、パスやパーミッションをいじってみたのですが、そちらも作動いたしませんでした。(他サーバーでは機動確認済み) やはり、パーミッションやperlのパスがサーバーによって独自の設定になっているのでしょうか? その場合、サーバー管理会社に連絡をとらずに、確認する方法はあるのでしょうか? CGIやサーバーなどのネットワークに詳しくないもので、 どうかご教授ください!

    • 締切済み
    • CGI
  • CGIの動かないサーバ

    いつもお世話になっています。 携帯サイト内で使用するメールフォームを設置中です。フリーで配布されているものを使用させていただいていますが、以下のような問題点に突き当たり困っています。 テストサーバ上では動くが、実際のサーバ上では動かない(「Internal Server Error」と出てしまう)。 ↓ ・sendmail、perlのパスは間違っていませんでした。 ・パーミッションも合っています。 ・サーバ会社に問い合わせたところ、OSにRedhatLinuxを使用しているので、テストサーバのOSが違ったらプログラムを直す必要あるかもと言われましたが、意味が分かりません。テストサーバのOSはLinux 2.4です。これってOSが違うというのでしょうか?RedhatLinuxというのは初めて聞いたので同じものなのか違うものなのかすら分かりません。 上記のような問題点があるのですが、 ・携帯に対応しているフォームを使いたい ・入力項目は自分で増やしたり減らしたい ・サーバの都合でphpは使用できない ・デザインを他のページと揃えたい というワガママな希望に応えるには私は何をしたら良いのでしょうか? たぶん全てを叶えるのはムリなんだろうなと思っており、これをガマンすればできる、ということでも構いません。何かヒントになりそうなことがあれば教えて下さい。 CGIはサーバが用意しているものか、kent-webさんのような無料配布してくださっているものを使用したことしかありません。 知識不足で恐縮ですが、どうぞ宜しくお願いします。

    • ベストアンサー
    • CGI
  • さくらレンタルサーバーでのCGI設置について

    さくらレンタルサーバー(スタンダード)を使って、HPを作成しています。 そこで、HP検索CGI(Free)を設置しようとしたら、500エラーがでて先に進みません。 使用したHP検索CGI(Free)は、Web Search Ver 2.03です。 URL: http://www.web-liberty.net/download/search/index.html#setup perlファイルのコマンドパスは、/usr/bin/perl と /usr/local/bin/perl パーミッションは705、755共にエラーでした。。 送信もアスキーモード(テキストモード)で行いました。 両方を試しましたがエラーでした。 何が原因なのでしょうか? ソース自体はダウンロードしてコマンドパスと『検索開始ディレクトリの相対パス』と『検索開始ディレクトリの絶対パス』以外、いじっていないので、ソースが壊れているということはないと思います。 お手上げ状態で困っています。 助言をお願いいたします。

    • 締切済み
    • CGI
  • これはサーバー側の設定?

    お世話になります。 ろくにperlも書けない初心者です。 Flash(SWF)内でメールフォームを作っています。 丁度良いサンプルがあり、そのCGI(perl)をそのまま拝借。 テスト用(自前)のサーバーでは問題なく動作。 ところが実際に使用するサーバーに上げてみると動かないのです。 仕組みとしては、swfからgetURLで変数(送信元、送信先、メッセージなど)をcgiへPOST送信。 cgiは未記入のモノがあったらerror、埋まっていればOKの変数を返す。 (swf内のテキストボックスを受信用に空けています) その変数によって、飛ぶフレームを判断、「送信完了」「送信エラー」などを表示する。 といったモノです。 CGIの設置位置(perlへのパス、cgiへのパス)は確認しました。 パーミッションも確認済み。 何より、返り値の無い、HTMLを生成するタイプのCGIは動作しています。 さて、どうすれば上手く表示されるか分かりませんか? サーバーによってそういった違いってあるのでしょうか? 念のため、仕様は以下の通りです。 ウェブサーバーソフト(httpd) Apache1.3.22 Cコンパイラ gcc (ver2.8.1)/usr/local/bin/gcc OS Solaris2.6 SPARC版 利用可能なPerl Perl5 ( 5.005_03 ) よろしくお願いします。

    • ベストアンサー
    • Perl
  • 自前サーバでCGIを~

     まずはLAN内だけで掲示板などのCGIを実行できるようにしてみよう、ということでApacheを使ってCGIの設定をしているんですが、ブラウザからCGIファイルを起動してもInternal Server Errorと出てしまいます。よってそれ以前ということで・・・  コマンドラインから「perl test.cgi」のようにCGIファイルを実行してみるとちゃんと動作するんですが、「type -a perl」で検索したフルパスをそのままCGIファイルに「#!/usr/bin/perl」などのように書いても、ファイルがコマンド化されてくれません。でも、perlの実行ファイルは存在していました。  これは、どうすれば解決できるのでしょうか?

  • cgi-perl の sendmail について

    cgi-perlのsendmailを使ってWebサイトに問い合わせフォームを作っています。 2つのサイトを同じサーバーに持っているのですが、かたやきちんと送信できるのに、片方はメールが届きません。 メールが届かない方も送信ボタンを押すときちんと出るべき”メールが送信されました”というメッセージは出ます。 このような場合、どこをチェックしたらいいのでしょうか。 もう何度もcgiファイル、htmlファイルを確認して、属性なども確認しているつもりなのですが、きっとどこかが違っているのだと思います。 いっそエラーが出てくれれば、わかりやすいのですが、行き詰っています。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • CGI
  • CGIのデバッグについて

    CGIを組み、自分のコンピューターでAPACHEを使ったテストでokなことを確認してからサーバーに上げてみたのですが、「500 Internal Server Error」が出てしまい動作しません。 サーバーへの転送時にアスキーモードで送る、文字コードはEUCである、属性は正しいか、Perlのパスは正しいか、必要なファイルは全てそろっているか、についてはチェックしてあるのですが動作しません。 もちろんPerlソフトを使っての構文チェックもしてあります。 これ以外になにか考えられることはあるでしょか。 あったら教えて下さい。よろしくお願いします。 ちなみに「CGIデバッグ」で検索した過去のQ&Aは全て参照しました。

    • ベストアンサー
    • CGI
  • cgiのサーバー設置

    現在知り合いのHPを作っていてメールフォームを設置しようとしたところ 500番のエラーが出てしまいます。 同じメールフォームを別のサーバーに設置したところ正常に動作しました。 Perl文法チェッカーでチェックしたところ文法エラーとなり 「sh: perl: command not found」がでてきます。 本等を見ても対処方が見つかりません。 cgiになにか付け足したらいいのでしょうか? お解りの方いらしたら宜しくお願いします。

    • 締切済み
    • CGI
  • cgiが動作しないのは?

    サーバー移転でメールフォームのcgiを移動させたらcgiが動作しなくなりました。 パーミッション・perlのパス等は移転する前と同じ設定にしています。 メールの内容の確認ボタンをクリックすると、cgiが動作し確認画面へいくのが正しい動作なのですが、現状はメールの内容の確認ボタンをクリックするとcgiの内容が表示されてしまいます。 サーバー側の設定の問題なのでしょうか?

専門家に質問してみよう