質問: 「#!/usr/bin/perl --」でなければ動作しないのはなぜ? 新しい職場に来て、あるcgiの設定を依頼されたのですが、どのような設定になっているのか、どのプログラムをアップしても「internal server error」になってしまいました。 人に聞いて、「#!/usr/bin/perl」を「#!/usr/bin/perl --」としなければ動かないことまでは分かりました。 確かに、先に他の方が作成されたらしいcgiプログラム(単純な構成のものばかりです)ではすべて「#!/usr/bin/perl --」となってました。 こうしなければ、どんな簡単なプログラムでも絶対に動かないようです。 「*.cgi」というファイルが1つのみ(他の構成ファイルは他の形式)というプログラムならその方法で動いたのですが、複数の「*.cgi」ファイルで構成されているものはどうしても動きませんでした。 構成するファイルの中に、先頭に「#!/usr/bin/perl」の行がないファイルもあるのですが、もしかしてそのせいでしょうか? その場合、どうしたら解決できますか? そもそも何が原因なのでしょう? 今まで、色々な会社でcgiをいじってきましたが、初めての経験で戸惑っています。 ffftpの設定(開業など)の問題ではないように思えるのですが、サーバーの設定がおかしいのでしょうか? 「#!/usr/bin/perl --」としなければ絶対に動かないというのは、どういう場合に起こる現象なのですか?
回答: ffftp の設定および操作で、cgi ファイルがアスキーモードで転送されているのなら問題ありません。 おそらくサーバー側の問題で、ftp サーバーの設定でアスキーモードでのアップロードが許可されていないと思います。 >複数の「*.cgi」ファイルで構成されているものはどうしても動きませんでした。 その原因がサーバーの設定かどうかは特定できません。 >先頭に「#!/usr/bin/perl」の行がないファイルもあるのですが 実行ファイル以外のデーターファイルなど、その記述はありません。