▼8-1 プロバイダはCGIを許可してる? |
実際にサーバーにアップしようとしても、そのサーバーがCGIを許可してなければ、意味がありません。 加入しているプロバイダがCGIが使えるかどうかは、たいがいそのプロバイダのホームページ上に 載っています。どうしても見つからない場合は、メールで問い合わせるのも良いでしょう。 ですが、CGIを認めていないサーバーは以外と多いものです。それには、次のような理由があります。
ただし、加入しているプロバイダでCGIが使えないからといって、諦めることなかれ! 私のように、無料サービスを使うなどの方法があります♪ |
▼8-2 Perlのパスを設定しよう |
ローカルでCGIスクリプトが無事動いたからと言って、サーバー上でも確実に動くというわけではありません。 ただし、この場合原因のほとんどは、
まず、Perlのパスの説明です。Perlのパスとは、CGIスクリプトの1行目にある #!/usr/local/bin/perl を指します。この部分は、「CGIを書くときのおまじない」と表現していましたが、 実は、サーバーによって違う場合があります。 実際、私が使っているサーバーでは、 #!/usr/bin/perl でした。Perlのパスについてはサーバーのほうで説明があると思うので、それにあわせて書き直せばOKです♪ |
▼8-3 パーミッションとは? |
パーミッションは、「このファイルは見るだけ」、
「このファイルは、見ることと書き込むことができる」
などのアクセス権限のことをいい、「644」のような3桁の数字で表現されます。 上の図を使いながら説明すると、パーミッションの3桁は、左から順に「オーナー」「グループ」「その他」 のアクセス権限を表しています。 次にそれぞれの桁の数字は、読み込み(r=4)、書き込み(w=2)、実行(x=1)として、許可されているものの合計で表されます。 上の図では、「オーナー」は読み込みと書き込みができるので、パーミッションは(4+2)=6 「グループ」と「その他」は読み込みしかできないので、パーミッションは4 よって、このファイルのパーミッションは「644」になります。 ……と、まあこのように言っても分かりにくいので、具体例でいきましょう。
ちなみにパーミッションの変え方ですが、FFFTPを使っている方は ファイルを右クリックして「属性変更」をクリックすると上の画面がでてくるので、そこで変えてください。 |
▼8-4 転送モードはあってる? |
FTP転送には、「アスキーモード」と「バイナリモード」があります。 画像や音声データなどは「バイナリーモード」で転送しますがCGIスクリプトはアスキーモードで転送する必要があります。 CGIをアップロードする前に、FTPソフトの設定を確認してください。 次に転送モードの設定法ですが、FFFTPを使っている方は 「ファイル名で転送モードを切り換え」に設定しておけば、自動的に拡張子を識別して 転送モードを切り換えてくれます。 |
▼8-5 動かない!そんなときは… |
CGIが動かないときには、サーバーはエラーメッセージを返します。メッセージの種類は
このエラーメッセージから、動かない原因を予想してみましょう。
|
▼8-6 それでも500エラー!? |
ローカルでCGIスクリプトが無事動いた。 Perlのパスもチェックしたし、パーミッションや転送モードもOK。 ……でも、それでも「500 Internal Server Error」といわれる場合があります。(ってか、実際ありました;) こうなってしまうと、どこがエラーだか分かりません。 こんな時は、KENT WEBのPerlチェッカを利用してみてください。 エラーメッセージが表示されるので、参考になると思います。 |