FetchでのCGIアップロードについて

このQ&Aのポイント
  • CGIについては、何度か設置はしたことありますが、プログラムについては全くわかりません。
  • いくら試してもエラー500 Internal server errorになってしまって困っています。
  • 普通に転送すると実行できなくて、ISOコード変換で転送すると実行できるCGIというのは何が問題なのでしょうか?
回答を見る
  • ベストアンサー

FetchでのCGIアップロードについて

CGIについては、何度か設置はしたことありますが、 プログラムについては全くわかりません。 いつもフリーのCGIスクリプトをDLして使用しております。 今回も、フリーのCGIスクリプトを利用していますが いくら試してもエラー500 Internal server error になってしまって困っています。 もちろん、perlのパスも間違えはなく、 ディレクトリ、ファイル共にパーミッションの設定済です。 アスキー/バイナリーも注意して転送しています。 転送にはMacで主流のFetch 3.0.3J2を使用しており、 [カスタム]-[初期設定]-[Misc]の中にある 「ISOコードを変換する」にチェックを入れて転送すると 不思議とエラー500は出ずにCGI実行可能になります。 ただし、ISOコード変換しているので当然文字化けします。 サーバーの問題かとも思い、いくつかのCGIを試しましたが S-JISのCGIで同じ症状が出るものもあれば 正常に動作するものもありました。 CGIはカスタムしていないので、転送時の問題か ファイル形式の問題のような気がします。 普通に転送すると実行できなくて、 ISOコード変換で転送すると実行できるCGIというのは 何が問題なのでしょうか? 元のファイルの日本語コードや改行コードの問題、 Macのリソースフォークの問題などあると思いますが 何をチェックすれば良いかわからず困っています。 情報をお持ちの方、助けてください。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • marimo_cx
  • ベストアンサー率25% (873/3452)
回答No.2

> 他のShift-JISのCGIが問題なく動作するサーバーでも > Shift-JIS対応ではないということなのでしょうか? Shift-JISの中に問題を起こす文字が存在するということです。 Shift-JISを使っていても問題を起こす文字を含んでいなければ非対応環境でも正常動作します。なので動いたからといって対応しているという証明にはなりません。 > 逆に言い換えると、Shift-JIS未対応のサーバーでも > Shift-JISのプログラムは動作することがあるのでしょうか? 同上です。 > また、プログラムの文字コード変換というのは > プログラム自体を全く別ものに書き換えなくてはならないのでしょうか? 原則はその通りです。 > 何かソフトで一発変換・・・なんていうワケにはいかないですよね、、、?(^^;) コメント行(1行目以外の行で先頭に#の付いている行)以外に日本語が使われていないのであれば、MacだとJ-editなどでEUCなど別の文字コードで変換しなおしたり、文字コード変換専用のフリーソフトもありますので、それで一発変換できます。また、コメント行にしか日本語が使われていないのなら、読みにくくなりますが、行自体や日本語部分を全部削除してしまっても動作すると思われます。 それ以外の場合はスクリプトの改造が必要です。

Hiromun
質問者

お礼

引き続き、ご回答ありがとうございます。 コメント行がエラーを出す原因になるとは・・・(^^;) 掲示板の設置なので、コメント行以外にも日本語があり 私には手が追えないものだとわかりました。 EUCで書かれているスクリプトを探して試そうと思います。

その他の回答 (1)

  • marimo_cx
  • ベストアンサー率25% (873/3452)
回答No.1

この問題は古来より、何故インターネットでShift-JISが嫌われてきたのかを考えてみるとわかります。 具体的な説明は割愛しますが『こういう事があるから』が理由です。 実行環境や実行用のインタープリタがShift-JISに対応していない場合、Shift-JISの中に誤動作を起こす文字コードがあるからです。 ということで、Hiromunさんのローカル環境には恐らく問題は無く、プログラムの文字コードを変更するか、サーバーをShift-JIS対応にしないと解決しないと思われます。

Hiromun
質問者

お礼

早速の回答ありがとうございます。 他のShift-JISのCGIが問題なく動作するサーバーでも Shift-JIS対応ではないということなのでしょうか? 逆に言い換えると、Shift-JIS未対応のサーバーでも Shift-JISのプログラムは動作することがあるのでしょうか? また、プログラムの文字コード変換というのは プログラム自体を全く別ものに書き換えなくてはならないのでしょうか? 何かソフトで一発変換・・・なんていうワケにはいかないですよね、、、?(^^;)

関連するQ&A

  • CGIプログラムエラー

    今まで見ていたサイトが急に見られなくなりました。 こちらで過去の質問等見ましたが 私はPCについて無知なのでどのプログラムを立ち上げて どのようにすればいいのかまったくわかりませんでした。 詳しい方、どうか助けてください。 よろしくお願いします。 以下はエラーの内容です。 ******************************** CGIプログラムエラーのため表示することが出来ません。(500 Internal Server Error) ・多くの場合、以下のような理由が考えられます。  ・パスの指定違い   perlのパスは/usr/local/bin/perlです。  ・スクリプトの改行コードに問題があります。   ファイルの転送時はアスキーモードで転送してください。  ・スクリプトの記述に誤りがある可能性があります。   文法チェック等を行ってください。 ・上記が正しい場合、以下のような理由が考えられます。  ・サーバー負担が高いため実行できないcgi   負担が高いスクリプトは、自動的に処理が中断されてエラーとなる場合があります。  ・サーバー仕様が異なるため対応できないcgi   セキュリティ上の問題等で一部利用が制限されている関数があります。  ・混雑時等、サーバー全体の負担が高くなっている状態   時間をおいてから再度アクセスしてください。

  • CGIをアスキー転送モードでアップすると「Internal Server Error」となります。

    CGIをダウンロードして、サーバーにアップロードしたのですが、 CGIが作動せず、「Internal Server Error」となってしまいます。 KENTのフリーCGIほか、いろいろなCGIで試してみても同様です。 転送モードやパーミッション等の基本的な設定は間違っておりません。 他のサーバーであれば、問題なく動きました。 いろいろと試したところ、どうやら改行コードの問題のようだったため、 ダウンロードしたCGIファイルを、エディタにてLFに変換して保存し、 バイナリ転送モードにてアップロードしたところ、作動しました。 通常であれば、このようなことをしなくても、ダウンロードしたCGIファイルを アスキー転送モード(もしくは自動)でアップロードすれば 作動すると思うのですが、この原因は何なのでしょう? サーバー側の設定の問題なのでしょうか? どなたかもし分かりましたら、ご教授お願いいたします。

    • ベストアンサー
    • CGI
  • 「CGIプログラムエラー」って何ですか?

    Win.MEを使ってます。 今まで見れていたサイトがある日突然見れなくなり、以下の画面になるのですが、どうしたらまた見れるようになるでしょうか? すみませんが、素人にもわかるような説明でお願いします。 ***************************************************** 500-Internal Server Error CGIプログラムエラーのため表示することが出来ません。 多くの場合、以下のような理由が考えられます。 ・ パスの指定間違い perl のパスは /usr/bin/perl です。 ・ パーミッション(権限)が正しく設定されていません FTPソフトなどで、パーミッションを適切に設定してみてください。 ・ スクリプトの改行コードに問題があります ファイルの転送時はアスキーモードで転送して下さい。 ・ スクリプトの記述に誤りがある可能性があります 文法チェック等を行ってください。 上記が正しい場合、以下のような理由が考えられます。 ・ サーバーへの負荷が高いため実行できないCGI 負荷が高いスクリプトは、自動的に処理が中断されてエラーとなる場合があります。 ・ 混雑時等、サーバー全体の負荷が高くなっている状態 時間をおいてから再度アクセスしてください。

  • 「CGIプログラムエラー」って何ですか?

    Win.MEを使ってます。 今まで見れていたサイトがある日突然見れなくなり、以下の画面になるのですが、どうしたらまた見れるようになるでしょうか? もう3ヶ月位この状態です。 すみませんが、素人にもわかるような説明でお願いします。 ***************************************************** 500-Internal Server Error CGIプログラムエラーのため表示することが出来ません。 多くの場合、以下のような理由が考えられます。 ・ パスの指定間違い perl のパスは /usr/bin/perl です。 ・ パーミッション(権限)が正しく設定されていません FTPソフトなどで、パーミッションを適切に設定してみてください。 ・ スクリプトの改行コードに問題があります ファイルの転送時はアスキーモードで転送して下さい。 ・ スクリプトの記述に誤りがある可能性があります 文法チェック等を行ってください。 上記が正しい場合、以下のような理由が考えられます。 ・ サーバーへの負荷が高いため実行できないCGI 負荷が高いスクリプトは、自動的に処理が中断されてエラーとなる場合があります。 ・ 混雑時等、サーバー全体の負荷が高くなっている状態 時間をおいてから再度アクセスしてください。

  • 私の作ったCGIスクリプトを見てください。どこが間違えていますか

    アクセスありがとうございます。 Red Hat Linux8.0でサーバを構築してCGIスクリプトを実行しようとしているのですが、どうもうまくいきません。 私が作成したCGIスクリプトは次のようなものです。 ファイル名「first.cgi」 #!/usr/bin/perl print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<HEAD>\n"; print "<TITLE>First CGI</TITLE>\n"; print "</HEAD>\n"; print "<BODY>\n"; print "文字を表示するCGIです。\n"; print "</BODY>\n"; print "</HTML>\n"; そして文字コードを「EUC」、改行コードを「LF」に変換しサーバにアップロードしました。 その後SSHでサーバにログインし $ chmod 755 /home/burn/public_html/first.cgi と「first.cgi」に実行権限を追加し $ /home/burn/public_html/first.cgi と作成したCGIスクリプトをテストしてみたのですが : bad interpreter: No such file or directory とエラーメッセージが表示されてしまいます。 「そのようなファイルやディレクトリはありません」というような意味でしょうか。 しかし、そんなはずはないと思います。 $ ls /home/burn/public_html first.cgi と「ls」コマンドを実行すれば「first.cgi」が表示されるのですから。 他に何かする必要があるのですか。 このCGIスクリプトを動作させるにはどうすればいいのか教えてください。

  • Fetch4.0.3、CGIアップロード時の設定

    Fetch4.0.3 ( Mac os10.2.8 ) レンタルサーバーへのCGIのアップロードをしたのですが失敗。送信設定にミスがあるのではと思うのですが このバージョンの詳しい設定の仕方が見つからなくて困ってます。(サーバの使用条件は問題ありません。) ↓これで設定 漢字変換=jis モード、形式=自動 環境設定のアップロード=自動判定、以下5項目のチェックなし もしお心当たりがございましたらアドバイスをお願いします。

    • 締切済み
    • Mac
  • CGIからの文字が化ける

    フリーのCGIスクリプト(bbs)を Iモード用に応用して使いました。CGIから出力される文字がPCで使うには問題ないのですが、携帯から操作するとCGIから出力される文字が化けます。sub cgi_headの中でキャラクターを指定していますが、print "Content-type: text/html; charset=euc-jp\n"; ここを直したらよいのでしょうか?それともスクリプトの中でHTML文の出力の前に、何か文を書込めばよいのか良く分かりません。ご存知の方教えて下さいませ。ちなに、WIN98使用でファイルはEUC-LFで作成、アスキーモードで文字コード無変換で転送しています。よろしくお願いします。

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

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

    • ベストアンサー
    • CGI
  • FC2レンタルサーバーでCGI設置方法についてご存知の方

    FC2レンタルサーバーでCGIを呼び出すとエラーが出て困っております。 FC2レンタルサーバーにCGIを設置できた方どなたかご教授ください。 まず/cgi-bin/ にCGIをおきましてFFFTPにてファイル転送をShift-jis で転送しパーミッションを755にしておりますがエラーが出ます。 尚、プログラムは自宅疑似環境では動いておりました。 後は、文字コード UNIX改行コードも「FC2 Plesk Control Panel」 で「UNIXの改行コードに変換」など色々しましたがわかりません。 /cgi-bin/test/test.cgiというサンプルが動きましたがコピーして 同じ場所にアップすると動かなくなります。 一度だけ色々いじっていたら動きましたがどのような規則があって 動くのか分かりません。 FC2で基本的にCGIを作りアップするまでに気をつけなければ いけないことを教えてもらえませんか? 当方はVista32です。 よろしくお願いします。 -------------------------------------------------------- IEのエラー 500 Internal Server Error サーバーログ [error] [client xxx.xxx.xxx.xxx] Premature end of script headers: saikoro.cgi [error] [client xxx.xxx.xxx.xxx] Premature end of script headers: saikoro.cgi [warn] RSA server certificate CommonName (CN) `plesk' does NOT match server name!?R (※plesk:FC2 Plesk Control Panelだと思います) 大体上の3点のエラーが出ます。(簡単なCGI3種類位で色々試したとき)

  • 出欠のCGIを探してす。CGIが表示できません。

    フリーファイルを色々ダウンロードしてみてトライしてみたのですが、CGIファイルが実行されません。 転送(データなど)や、一行目も変更しました。 どうすれば実行された、画面が表示できますか?

    • ベストアンサー
    • CGI

専門家に質問してみよう