クラウドで 伸びる人沈む人 |
|
|
|
CGIファイルの先頭行の扱いを知ろう
<概要> 一番簡単なCGIファイルをアップロードして動かすことが出来ましたね。 忘れてしまった方は、こちらを復習しましょう。 一番簡単なCGIファイルとは、以下のような、たった3行のプログラムでした。 #!/usr/bin/perl print "Content-type: text/html \n\n"; print "Hello"; ※もしエラーが出たら、先頭行を、#!/usr/bin/perl → #!/usr/local/bin/perlに変更します。 ですが、この3行のプログラムは、基本を知る上で重要です。 特に先頭行でドツボにはまって挫折してしまう人も多いので、その辺をみていきましょう。 <先頭行はおまじない> 先頭行をみてみましょう。 #!/usr/bin/perl いきなり、 全くの意味不明でしょうねえ。 でも 初心者は、 意味を考えてはいけません。 これは、おまじないと同じで、 理屈無しで暗記してしまうのがいいでしょう。 とにかく、 CGIファイルの先頭行は、 #!/usr/bin/perlなのです。 ※ いえ、詳しく言うと理屈はあるのですよ。先頭行はサーバー上のPerlへのパスを表しています。 つまり、サーバー上で、Perlがインストールされているディレクトリを記述するのです。 まあ、初心者は、読み流しておいて、おまじないのように暗記してしまって、エラーが起きた時の対処方法だけしっておけば十分でしょう。 <エラーになった時の対処方法だけ知っておこう> 先頭行は、#!/usr/bin/perlと述べましたが、 実は、(レンタル)サーバーによっては、こんなエラーがでます。 「Internal Server Error」 この場合は、CGIファイルの先頭行を #!/usr/local/bin/perlに書き換えましょう。 通常のレンタルサーバーでしたら、これで対処できるはずです。 初心者のうちは、理屈なしで、このような対処方法を知っておきましょう。 <レンタルサーバーのQAに必ず掲載されています> 先頭行は、 「#!/usr/bin/perl」か、「#!/usr/local/bin/perl」 どっちかにしなければなりません。 しかし、 どっちなんだ?!って言いたくなりますよね。 ご心配ありません。 必ずレンタルサーバーのQAには掲載されているはずです。 たぶん、レンタルサーバーのQAや説明書の「CGI(Perl)の設定について」「CGI(Perl)のパス」という項目があるはずですので、それを、各自確認してみてください。 例えば、ロリポップ(レンタルサーバー)の場合は、こちらのQAに掲載されていました。 (提供元:ロリポップQA) ロリポップの場合、どっちでもいいのですね。 最近のサーバーは、初心者が戸惑うので、どっちでもいいようにしてあるサーバーが多いようです。 しかし、どちらか一方に限定しているサーバーも多いので、 初心者のエラーが続出しています。 レンタルサーバーの説明やQAには必ずCGIの先頭行をどうするのか?という情報が掲載されていますので、あなたが契約されたレンタルサーバーの説明をよくチェックしてみましょう。ということで、結論。 CGIを扱う場合は、 先頭行を必ず確認しましょう。 |