CGIをダウンロードして、サーバーにアップロードしたのですが、
CGIが作動せず、「Internal Server Error」となってしまいます。
KENTのフリーCGIほか、いろいろなCGIで試してみても同様です。
転送モードやパーミッション等の基本的な設定は間違っておりません。
他のサーバーであれば、問題なく動きました。
いろいろと試したところ、どうやら改行コードの問題のようだったため、
ダウンロードしたCGIファイルを、エディタにてLFに変換して保存し、
バイナリ転送モードにてアップロードしたところ、作動しました。
通常であれば、このようなことをしなくても、ダウンロードしたCGIファイルを
アスキー転送モード(もしくは自動)でアップロードすれば
作動すると思うのですが、この原因は何なのでしょう?
サーバー側の設定の問題なのでしょうか?
どなたかもし分かりましたら、ご教授お願いいたします。
No.2ベストアンサー
- 回答日時:
他のサーバで問題がなく特定のサーバのみダメなのは、ftp サーバの設定が原因だと思います。
CGI の1行目は #!/usr/bin/perl (または #!/usr/local/bin/perl) になっているかと思いますがが、
末尾の改行を変換していないと、Unix のシェルは #!/usr/bin/perl(CR)(LF) から (LF) のみを除去して、
/usr/bin ディレクトリに perl(CR) というファイルを探しに行き失敗します。
#!/usr/bin/perl を #!/usr/bin/perl -- のように変更すると、アスキーモードでもうまく行くかもしれません。
kumoz様、ご回答ありがとうございます。
やはりWEBサーバーの設定の可能性が高いのですね。
次回作業の際に、ご教示いただいた方法を試してみます。
アドバイス、大変ありがとうございました。
No.1
- 回答日時:
一番高い可能性としてはFTPクライアントSOFTの設定で
拡張子 .cgi はモード指定に関係なくバイナリーモードにするオプション設定されているのかも?
そうでなければ
・FTPクライアントのバグでセッション中にasciiコマンドを送っていない
クライアント側でCR+LF => LF変換もしていない
・またはFTPクライアント側でCR+LF => LF変換はしていないが
asciiコマンドは送っている しかしサーバーのバグでasciiコマンドを無視している
のどちらかになります。
RFCとか見てみましたが
ASCII方式は すべてのコンピュータで必ずサポートされていなくてはならない
とあり
通常はasciiコマンドとともにFileの中身を受け取った側が
自分の環境に合わせて(この場合ならCR+LF => LFに)変換するようです
http://hp.vector.co.jp/authors/VA002682/rfc959j. …
http://www.geocities.co.jp/SiliconValley/4137/tr …
ご回答ありがとうございます。お礼が遅くなり申し訳ありません。
現在、訳あってFTPソフトの設定を確認することはできないのですが、
エディタにてLFに変換してからアップロードした際、
バイナリ転送モードでアップロードすると作動し、
アスキー転送モードするとエラーとなったということは、
モード指定に関係なくバイナリーモードになっているわけでないようです。
ちなみに、ソフトは「FFFTP」を利用しました。
バージョンが古いのが原因かとも思ったため、
最新版もダウンロードしてしてみましたが、同様の結果でした。
> ・FTPクライアントのバグでセッション中にasciiコマンドを送っていない
> クライアント側でCR+LF => LF変換もしていない
FTPクライアントのバグというのは、「FFFTP」のバグということですね?
その他にも、サーバーのバグという可能性も考えられるのですね。
大変参考になりました。
詳しいご回答、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
- ホームページ作成・プログラミング CGIが実行可能なHP領域又はレンタルサーバーでおすすめの所を教えてください 現在ホームページ領域の 1 2023/01/01 11:47
- LINE LINEで動画を送信 その後表示した際の通信量の発生はどうなる? 1 2023/08/04 19:45
- CGI htmlからcgiを自動的に起動させたい 1 2023/02/21 19:39
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- その他(ブログ) ランキングサイトのポイントが発生しない理由 1 2023/01/21 11:40
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- CGI 「CGIにより定義されていない」とは・・・ ? 3 2023/01/01 12:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1日の売上表を作りたいのですけ...
-
cgiファイルのパス指定について
-
-T(汚染モード)でメールが送れ...
-
CGIのEncodeエラーについて
-
古ーくからフリーのtree.cgi掲...
-
EXCELファイルに誰がアクセスし...
-
URLに~/cgi-bin/~を隠す方法
-
CGIの設置が分かりません・・・
-
midi・・・要はhpでbgm鳴...
-
直リンク用バナーの作り方
-
ASPから既存のexcelブックを開...
-
ローカルマシンでCGIソースが出...
-
《エクセルVBA》「他の人が該当...
-
SFTPなどは使わないホームペー...
-
メールフォームのCGIでデータが...
-
cgi アクセス制限 エラー
-
通貨表示で3桁毎にカンマ(?)を...
-
リダイレクト機能
-
perlからJavascriptを起動
-
掲示板のスレッドが消えた!?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
古ーくからフリーのtree.cgi掲...
-
Can't locate R.pm in @INC
-
#!/usr/bin/perl --
-
CGIのEncodeエラーについて
-
#!/usr/local/bin/perlとしたい
-
プロバイダで定められたPerlへ...
-
-T(汚染モード)でメールが送れ...
-
HTTP500内部サーバーエラーと表...
-
SSI(<!--#exec cmd="./XXXpl")...
-
ニフティでメールフォームを使...
-
1日の売上表を作りたいのですけ...
-
sendmailの-fオプション記述
-
コアサーバー(coreserver)でのc...
-
Windows2000上でCGIをテストし...
-
Apache2でSetEnvが動作しない。
-
急にCGIが動作しなくなった。
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
SFTPなどは使わないホームペー...
-
VBAでサーバーにアクセスするに...
おすすめ情報