• 締切済み

CGIフォームが作動しない原因について

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

  • CGI
  • 回答数5
  • ありがとう数5

みんなの回答

回答No.5

#! /usr/bin/perlにスペースが入っているからでは? #!/usr/bin/perlにしてもダメですか?

回答No.4

サーバによってはcgiは特定のフォルダ、たとえばcgi-binに入れないと動作しない場合もあります。 ヘルプとかに書いてないの?

haruka0124
質問者

お礼

ご回答ありがとうございました! 実は、ヘルプを確認したいのですが、少々事情がありまして、サーバーの管理会社のサイトを確認できない状態なのでございます。 本来確認すべき部分を確認できずに、このようなオネガイは勝手ではございますが、 パールのパスやパーミッションなどを、こちら側から確認する方法を、もしご存知でございましたら、ご教授いただけませんでしょうか? 再度お手数おかけいたしますが、どうぞよろしくおねがいします。

  • Desires
  • ベストアンサー率40% (173/424)
回答No.3

perlのパスは通常、貸し出ししているサイトのQ&A等に明示的に書かれているので、それに合わせないと、動作しません! また、sendmailを使うCGIの場合、sendmailも許可しているサイトでないと使うことは出来ませんが… その辺も、キチント調べましたか? 使える場合は、Q&Aに書かれてるハズですよ。 まぁ、ここに書かれている情報では、これぐらいしかアドバイスは出来ません。 ※情報が少なすぎです。

haruka0124
質問者

お礼

ご回答ありがとうございました!遅くなりましてすみません。。 実は、ご指摘いただきました件なのですが、 サーバーの管理会社のサイトを確認したり、連絡をとるなどして、情報を得たいのですが、少々事情がありまして、確認が取れない状態なのでございます。 本来ならばサーバーの情報等も確認できない状態で、CGIをまともに作動させようなど、勝手すぎる言い分ではございますが、、 パールのパスやパーミッションなどを、こちら側から確認する方法は、あるのでしょうか? もしご存知でございましたら、ご教授いただけましたら幸いでございます。 再度お手数おかけいたしますが、どうぞよろしくおねがいします。

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

Perlのパスは #! /usr/bin/perl #! /usr/local/bin/perl の二種類だけとは限りません。 特殊な関数を使用している場合、その関数をインストールしないと使えない場合もあります。 使用するファイル(cgi-lib.pl等)が足りないということもあります。

haruka0124
質問者

お礼

ご回答ありがとうございました!(お礼が遅くなりまして、すみません!) やはり、perlのパスは沢山の種類があるのですね。 ちょっと事情がありまして、サーバーの管理会社のサイトやFAQや、確認がとれませんで、パスを知ることができないのですが、サーバー会社に連絡を取る以外にパスを知る方法はないのでしょうか? また、ムーバブルタイプも一緒に使用しているのですが、そちらのcgiは問題なく動いております。(こちらはperlのパスを設定する箇所がありませんでしたので、動いているのかも知れません)←ムーバブルタイプとほかのCGIが一緒に問題無く作動することは、他のサーバーで確認済みです。 また、関数に関してましては、簡単なCGIもアップしてテストしてみましたところ(使った関数はprint程度です)、そちらも動きませんでしたので、もっと他の原因があるようなのです。 お手数をおかけしまして恐縮ですが、ご教授いただけましたら嬉しいです。 宜しくお願いいたします。

  • YamaYoshi
  • ベストアンサー率29% (91/313)
回答No.1

サーバがCGIに対応してないと動きませんよ。 あと考えられるのが、バイナリモードで転送しているとか、、、、

haruka0124
質問者

補足

早速の回答ありがとうございました! サーバーは、ムーバブルタイプなども入っておりますので、CGI対応はしているようです。。 また、モードも、アスキー転送モードでしてみたのですが、作動いたしませんでした・・ 説明足らずですみません! 他に考えられる原因はあるのでしょうか??

関連するQ&A

  • メールフォームCGIの設置について

    下記のサイトのメールフォームCGIをさくらインターネットのサーバーで設置したいのですが、うまく作動せず送信できません。 前にロリポップサーバーで設置したところ、作動し送信も問題なくおこなえたのですが、パーミッションやそれぞれのファイルの中身までロリポップで設置したものとまったく同じファイル・条件でさくらインターネットのサーバーに設置したのですが「500 Internal Server Error」がでてしまい、送信できません。 CGIの提供先は下記になります。 http://pgd.jp/cgiscript.html さくらインターネットのパスなどは下記の通りです。 Perl:5.8.x perl:/usr/bin/perl sendmail:/usr/sbin/sendmai CGIの動作環境は下記の通りです。 Perl5 # /usr/sbin/sendmail が使えること # モジュール HTML::Template, Jcode が動作すること 色々試してはみたのですが、CGIやPerlの知識はほとんどありませんので結局何をやってもだめでした。 パーミッションの設定やファイルのアップロードは間違いなくできております。 よろしくお願い致します。

    • ベストアンサー
    • CGI
  • CGIがうまく作動せず困っています。

    CGIがうまく作動せず困っています。 先日、サーバー変更に伴いCGIデータをアップロードしたのですがうまくいきません。 Perlパス・Sendmailパスも以前とは違っていたので変更したのですが…。 テキストモードでアップしています。 You don't have permission to access /cgi-bin/webform.cgi on this server. とでます。 アクションの設定の仕方がおかしいのでしょうか? 前回は、cgi-bin が cgi-local でしたので その部分を変えただけなのですが。 初心者なのでできるだけやさしく教えてください。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • CGIが作動しません

    ロリポップというサーバーでNetCleverというCGIを使おうと思いアップロードしたのですがエラー500とでます。 ロリポップの説明では Q.500 error が表示されます。 以下の状況が考えられます。 ・指定されたページのCGIが異常終了している。 ・指定されたページのCGIのパーミッションが間違っている。 ・指定されたページのCGIが間違ったモードで転送されている。 次のことをお試しください。 ・再度読み込みを行ってみる。 ※ご利用中のユーザー様は以下の点をご確認ください。 ・CGIの1行目は「#!/usr/bin/perl」になっていますか? ・ファイルやディレクトリのパーミッションが「777」になっていませんか?セキュリティ上、パーミッション「777」は動作しないようになっています。設定頂いているパーミッションをご確認ください。 ・バイナリーモードで転送していませんか? ・改造などを施した際に記述ミスをしていませんか? ・命令文の終わりの「 ; 」が抜けていたりしませんか? ・CGIはどのディレクトリでも動作いたします。「cgi-bin」というディレクトリに入れる必要はありません(入れてもかまいません)。 となっているのですが思い当たる点がありません

  • CGIが動きません

    uranai.cgiのパーミッションは755です。 #!/usr/local/bin/perlではなく #!/usr/bin/perlを使っていますが、 これはサーバの説明にありました。 下記URL内の3ファイルをCGIフォルダに格納して サーバにアップしましたが、エラーになります。 cgi-binにする必要はないとのサーバ設定の記述にありました。 動かない理由がお分かりの方は、ご教授いただけると幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • レンタルCGIが動きません。アドバイスお願いします!

    CGI初心者です。 レンタルのCGIをテキストモードでCGI可のサーバーにアップしました。 Internal Server Errorと表示され、動いてくれません。 パスは#!/usr/bin/perl パーミッションはスクリプトが755でその他が644です。 何でも結構ですのでアドバイスをお願い致します。

    • ベストアンサー
    • CGI
  • cgiが動作しないのは?

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

  • CGIの最初の記述

    つい先日、CGIをテキストエディタで開き編集をしていたところ最初にPerlの場所を示すパスらしきものが記述されていました。#!/usr/bin/perlみたいなのです。 そこで質問なのですが、/usr/bin/perlとはどこを示しているのでしょうか? 私、ウィンドウズPCでWWWサーバーを開設しておりますのでやはり気になってしまいます。それと言うのも、Apacheというソフトで開設しているのですがそのソフトでCGIを動かそうとすると、動かしたいCGIプログラムの最初の記述である/usr/bin/perlを私のサーバーのPerlをインストールしているフォルダへのルートに書き換えなくてはCGIが動かないからなんです。大変困っております。どうか、皆様私にお力をお貸し下さい。

    • ベストアンサー
    • CGI
  • サクラのレンタルサーバーです。CGIが動きません

    サクラのレンタルサーバーを借りました。 早速CGIを試そうと思ったのですが、原因不明のInternal Server Errorが出ます。 cgi-binはいらないとのことですので、wwwにそのまま入れました。 index.htmlも同じ場所にありそれは出ますのでパス間違いではないです。 またパーミッションも777にしてみましたが駄目です。 #!/usr/local/bin/perl print "Content-Type: text/html\n"; print "\n"; print "<html>"; print "<body>"; print "abc"; print "</body>"; print "</html>"; こんな感じで、TELNETでログインして実行も出来ます。 bash-2.05b$ ./index.cgi Content-Type: text/html <html><body>abc</body></html>bash-2.05b$ いろいろ調べたのですが ◆パーミッション→OK ◆TELNETで実行してみる→OK ◆perlへのパスは?→/usr/local/bin と /usr/bin どちらでもいいそうです。験しに変えましたが状況変わらず。 何か気が付いたことがあれば教えてください

    • ベストアンサー
    • CGI
  • CGI設置時に500エラーになります

    CGIを設置しようとしたところ、500 Internal Server Error になります。 共用サーバーIDを使用しています。 CGIファイルは「cgi-bin」の中に入れています。 たとえばこんな簡単なCGIでテストしたのですが、500 Internal Server Errorになってしまいます。 ↓ #!/usr/local/bin/perl print "Content-type: text/html \n\n"; print "Hello"; #!/usr/local/bin/perlを #!/usr/bin/perlにしても結果は同じです。 (サーバーの指定は#!/usr/local/bin/perl) パーミッションは755にしています(705に変えてもダメでした)。 CGIファイルの改行コードはLFにしており、テキスト(ASCII)モードでアップロードしています。 それでも500 Internet Server Errorになります。 サーバーではエラーログが見られないのでみなさんにお聞きしたいのですが、他にどんな原因が考えられるでしょうか?

  • DebianのApache(掲示板)CGIエラー 500エラー

    debianでkent-webさんのASKA BBSを使いたいんですが うまくいきません http://www.kent-web.com/bbs/aska.html aska BBS rootで/lib/usr/cgi-binに移動してvi test.cgi ------------------------------- #!/usr/bin/perl print "Content-type: text/html \n\n"; print "Hello"; -------------- を試して http://192.168.1.12/cgi-bin/test.cgi は動くんですが which perl /usr/bin/perlです パスはあっています 本題のBBSをデスクトップにDLし tar -xvzf 解凍をし rootで/usr/lib/cgi-bin/に aska.cgi askalog.dat jcode.plを置き パーミッションをhttp://www.kent-web.com/bbs/aska.htmlにあわせて わらかないのでsuEXECサーバ CGIWrapサーバ用のパーミッションと一般サーバを両方ためしてみたんですが http://192.168.1.12/cgi-bin/aska.cgi?mode=checkで試したんですが 500エラーがてしまいます ちなみにaska/aska.cgi?mode=check のaskaフォルダは作らず cgi-bin/aska.cgiです かわらなそうなので http.confの設定は <IfModule mod_alias.c> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ # # "/usr/lib/cgi-bin" could be changed to whatever your ScriptAliased # CGI directory exists, if you have that configured. # <Directory /usr/lib/cgi-bin/> AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> </IfModule> AddHandler cgi-script .cgi .sh .pl ちゃんと#を外してあります それとほかの質問者の方を参考にしたんですが mod_aliasなんたら モジュールとかよくわからず apt-cache search module cgiなどといろいろ探したんですが無く これのperlのパスをわざと間違えさせてやっると500でエラーが出るってことはちゃんと動いてるはずだと思うんですが ちゃんともどすとhelloと表示されます 間違えーー>#!/hogehoge/hogehge/perl 元-->#!/usr/bin/perl #!/usr/bin/perl print "Content-type: text/html \n\n"; print "Hello"; それと疑いがあるのが aska.cgiのパスはちゃんと/usr/bin/local/perlを whichでみたperlのパス /usr/bin/perlに設定したんですが 動かないみたいです もしかしてgnome-text-editorなどviで開くと文字コードがかわったりしてだめなんでしょうか? もう思い当たる節がありません どなたか詳しい方教えてくださいお願いします

専門家に質問してみよう