初心者に分かりやすい
ホームページ作成
ブログ(レビュー カメラ 写真)
無料CGI(Perl/PHP)配布
写真

 

 

 


 CGI(掲示板やチャット)を設置するのが初めてという人のために、 CGI設置のための各手順について、コツと注意事項をまとめてみました。

 

初めに

 まず、次のことを確認しましょう。

 

CGIの使用を許可されているか?

 あなたが利用しているサーバーで、CGIの使用が許可されてないなら、そのサーバーでCGIを使うことは出来ません。CGIの使用が許可されている有料・無料のサーバーを別に借りてくる必要があります。もしくは、CGIの設置はあきらめて、掲示板やチャットのレンタルサービスを利用するなど、他に活路の道を探しましょう。

 

CGIは専用のフォルダを作って、そこにアップするように指定されてないか?

 CGIの専用フォルダや、専用サーバーが指定されている場合は、そこにCGIファイルを設置しないとCGIは動かないので注意して下さい。指示に従って、フォルダを作ったり、専用サーバーに設置することになります。

 また、場合によってはCGI専用フォルダやCGI専用サーバーでは、画像ファイルが使えなかったり、HTMLファイルが使えなかったりします。その場合は、【画像ファイルとHTMLファイル】と、【CGIファイル】を、それぞれ別々のフォルダやサーバーに転送することになり、それにあわせて、CGIファイルの中の設定を書き換える必要がでてきます。この場合、設定が煩雑となり、初心者にはかなりキツイ作業となるので覚悟してください。

 

Perlが通してあるパスはどこか?

 各CGIファイルには、1行目に「Perlのパス」を書く必要があります。普通は、「#!/usr/bin/perl」です。たまに、「/usr/local/bin/perl」という場合もあります。分からなかったら、この2つを試して、どちらで動くかチェックしましょう(間違えている場合は「500 Internal Error」が表示されます)。また、Perlにはバージョンがあって、スクリプトやサーバーによっては「/usr/local/bin/perl5」など、数字を入れないとだめなこともあるので注意してください。

 

CGIを手に入れる(ダウンロード)

 CGI を手に入れるには、CGIファイルをダウンロードします。方法は簡単。ダウンロードのページにあるリンクをクリックするだけです。

 大抵の場合、ZIPファイルや、LZHファイル等の圧縮形式で配布されているので、ダウンロード後に解凍が必要となります。解凍ツールを何も持っていない人は、予めここからLhasaという解凍ツールをダウンロード、インストールしておき、解凍できる環境を整えておきましょう。

 ダウンロードが終了したら、ダウンロードしたファイルを解凍しましょう。大抵の場合、複数のファイル(場合によってはフォルダ)が生成されます。

 

CGIファイルの設定の書き換え

 CGIは、ファイルをダウンロードしただけでは動きません。ダウンロードしたCGIファイル拡張子が「.cgi」のファイル)の設定を、自分のサーバーで動くように書き換え、更にサーバーに転送し、「ファイルのパーミッション」というものを変更して、ようやく動くようになります。

 この、「CGIファイルの設定を、自分のサーバーで動くように書き換える」作業が、初心者にとってはかなりの難関となります。

 CGIファイルの編集は、Windowsに標準装備されているメモ帳でも十分行えますが、できれば、ちょっと立派なテキストエディタを使ったほうが無難です。お勧めは、無料ソフトのMKEditor か、30日間試用可能なEmEditorです。取り消し機能が充実していたり、操作がし易かったり、行数の表示がされるので、作業効率があがりますし、ミスする確率も減ります。

 書き換えの方法は、各CGIによって異なりますので、そのやり方は各CGIの解説ページを参考にしてもらうとして、ここでは一般的な注意事項を書きます。

 

いきなり全ての設定を書き換えたりしないように

 いきなり全ての設定を書き換えてしまうと、エラーがでた場合、どこの書き換えが原因でエラーがでたのか追及できなくなってしまいます。最初は必要最低限の設定だけを書き換えて、サーバーにアップし、ブラウザ(インターネットエクスプローラー)でCGIファイルにアクセスし(アップロードしたCGIファイルのアドレスを、インターネットエクスプローラーのアドレス欄に入力する)、動くかどうか確認します。

 CGIが正常に動作したら、次に変更したい点を一つだけ変更して、CGIファイルをサーバーに転送します。そして動作確認をします。エラーがでたら、その場所を見直して修正します。正常に動作したら、次の変更点を書き直して転送、動作確認。。。と、徐々に進んでいって下さい。

 

不用意に削除をしないように

 スクリプト内に書かれている文字は、ほとんどが必要なものです。「 , 」や「 ' 」、「 . 」、「 ; 」、「#」など、それのどれか一つが削除されただけでエラーがでます。

 今まで順調にいってたのに突然エラーが出たという場合は、テキストエディタの取り消し機能を使って、2、3ステップ前の状態に戻して、何か必要なものを誤って削除していないかどうか確認しましょう。

 

テキストエディタのウインドウはなるべく閉じないように

 CGI ファイルの書き換えも終わり、転送も終了し、いざCGIファイルにアクセスしたらエラーが出てしまった。こんな時に大切なのは、CGIファイルを編集したテキストエディタのウインドウで、「取り消し」機能を使って自分がどんな作業をしたのか、その作業に間違えはなかったのかを確認することです。

 もし、CGIを編集したテキストエディタのウインドウを閉じてしまっていると、この「取り消し」機能が使えなくなってしまいます。もしもの時のために、CGIが問題なく動くことを確認するまでは、CGIを編集したテキストエディタのウインドウを出来るだけ開いたままにしておきましょう。

 

ファイルをサーバーに転送

 必要最低限の設定だけを書き換えたら、まずはサーバーにファイルを転送(アップロード)して、動作確認をしましょう。プロバイダーから、CGIは「cgi-bin」フォルダに入れる、とか、CGIはwww.bee.ne.jpではなく、cgi.bee.ne.jpに転送すること、等の指定がある場合は必ずそれに従ってください。そうしないと、CGIは動きません。

 ファイルをアップロードするときは、画像ファイル(拡張子が .gif や .jpg のファイル)は「バイナリー」形式で、それ以外のファイル(CGI拡張子や、DAT拡張子のファイル)は「アスキー」形式で転送します。

 最近のFTPソフトは優秀なので、この転送形式についてはあまり意識しなくても、ソフト側で自動的に判断してくれるので大丈夫だとは思いますが、まれにCGIファイルやPLファイル(jcode.pl ファイルなど)をバイナリーで転送していることがあるので、確認して下さい。

 

ファイルのパーミッションの変更

 転送が済んだら、次はファイルの「パーミッション」の変更をします。パーミッションとはファイルの動作許可の設定です。簡単に言ってしまえば、「CGIファイルをCGIとして認め、動作することを許可する」設定となります。

 ホームページエディタに付いているFTPの中には、パーミッションの変更ができないものもあるので、その場合は、ここからFTPツールを入手しましょう。

 基本的に、CGIファイルやPLファイル(jcode.pl ファイルなど)のパーミッションは「755」、ログファイル(拡張子が .log や .dat .txt 等のファイル。スクリプトによって全く異なるので注意してください)のパーミッションは「666」が基本です。

 画像ファイルのパーミッションは、通常はいじらなくてOKです。また、スクリプトによっては、CGIファイルが入っているフォルダのパーミッションを「777」や「755」に変更しなければいけないものもあるので、注意して下さい。

 以上述べたのは、あくまで標準的なサーバーにおける設定の方法です。サーバーによっては、これとは異なったパーミッションを指示されることがあります。その場合は、サーバー側から指示されたパーミッションを設定するようにしてください。

 

CGIの動作確認

 必要最小限の設定を書き換え、必要なファイルを全部転送して、必要なファイルのパーミッションを変更したら、動作確認をします。転送したCGIファイルにアクセスしてみて下さい。はかなくもエラーがでたら、次を参考に原因を追及して下さい。

 

404 Not Found(ファイルが見つかりません)

 一番多いのがアドレスの入力ミスで、次がファイルを転送していないミスです。まずは、(転送したCGIの)アドレスはあっているか、サーバーにファイルは存在するか、確認しましょう。

 特に、プロバイダーから、CGIファイルを別フォルダや別サーバーに入れるように指示されている場合、そのフォルダやサーバーのアドレスをきちんと入れているか確認しましょう。サーバー(プロバイダー)によっては、CGIファイルのアドレスだけ特殊なものになることがあるので、それも確認して下さい。

 また、CGIファイルの名前(拡張子)を気づかないうちに変更して転送している例もあります。FTPソフトを使って、サーバー上にあるCGIファイルの名前を確認しましょう。

 

403 Forbidden(許可されていません)

 パーミッションの変更ミスがほとんどです。CGIの設置解説ページを参考の上、指定されたパーミッション(755や705など)に変更しているかFTPで確認しましょう。また、別途サーバー側からCGIのパーミッションについて指定されている場合は、そちらの指定が優先されます。それも確認しましょう。

 その次に考えられるのが、CGIは指定のフォルダやサーバーに転送するように指示されているのに、それに従っていない場合です。もう一度、プロバイダーのホームページ等で、指定事項がないかどうか確認しましょう。

 

500 Internal Server Error(サーバーエラー)

 このエラーの原因は多岐にわたるため、一番解決しにくいエラーです。

 まずは、全ファイルとフォルダのパーミッションの変更ミスはないか、また、CGIが指定のフォルダやサーバーに転送するように指示されている場合は、きちんとそれに従っているかどうか確認しましょう。

 次に、指定されたフォルダ構造になっているかどうか、指定されたファイルは全て転送しているかどうか、CGIの設置解説ページを参考にFTPソフトで確認してください。

 CGIファイルの先頭に書いてあるPerlのパス(#!/usr/bin/perl など)が間違っていても、このエラーがでます。Perlのパスは、プロバイダーやサーバー管理側から送られてきた資料やホームページ等に書いてあるので、確認して下さい。

 

 次に良くありるのが、設定を書き換えた際に、必要な文字(記号)を消したり、認識されない文字を気づかぬうちに書き込んでいる場合です。エディタの「取り消し」機能を使って、2,3ステップ前に戻って、変なことをやっていないか確認しましょう。特に、「’」「”」「;」「#」等の記号を勝手に削除してないかどうか確認してください。

 また、間違えて削除したのに気づいて入力し直した場合、半角なのに全角で入力してしまっていないかどうか、その逆に不要な「’」や「”」を書き加えてないかどうか、変なところに全角のスペースや、アルファベットなどが入ってないか等も確認してください。うっかりキーボードを押してしまい、不必要な文字が入っている場合が考えられます。

 

 FTPの転送モードが違う場合にもこのエラーがでます。アスキーモードと、バイナリーモードをきちんと区別して転送したか確認しましょう。

 CGIと一緒に「jcode.pl」ファイルや「cgi-bin.pl」ファイルを転送している場合に、CGIファイルに書かれているjcode.pl のパス指定が間違っていたり、「jcode.pl」ファイルや「cgi-bin.pl」ファイルを転送していない場合にもこのエラーがでます。指定されているファイルは全て指定された位置に転送されているかどうか確認してください。

 

また、ある程度慣れてカスタマイズしてると、以下の原因でエラーがでることもあります。

 「 Print " 〜 ";」という文の中に、「"」を使うとエラーになります。

Print "<font size=\"2\">こんにちは</font>";
 …… ○
Print "<font size="2">こんにちは</font>";
 …… ×

 ちなみに、「’」で囲まれている場合は、その中に「”」を使えます。

Print '<font size="2">こんにちは</font>';
 …… ○

 エスケープが必要な文字を使っているとエラーの原因になることがあります。「ソ」「表」「十」「申」「貼」「予」などの文字をCGIで使うときは、エスケープ(その文字の後に「¥」を書くこと)が必要です。サーバーによっては、エスケープしないとエラーがでます。

Print "表\示します"; …… ○
Print "表示します"; …… ×

 

エラー時のまとめ

 いずれにせよ、エラーがでたら、エディタの「取り消し」機能を使って、1つ前の状態に戻し、サーバーにアップして、動作確認をします。まだエラーがでるようだったら、更に1つ前の状態に戻して、サーバーにアップして動作確認、、、と、エラーがでなくなる状態まで戻します。エラーがでない状態にまで戻ったら、「その次にやった作業」がエラーの原因というわけです。その作業にミスがないかどうか、もう一度確認してください。

 

カスタマイズ

 動作確認が終わったら、CGIの解説に従って、自分の好きなようにカスタマイズをしてみましょう。ただし、先程述べたとおり、一気にカスタマイズをしないようにしましょう。必ず、少し修正したら、サーバーにアップして、動作確認。エラーがでなかったら、また少し修正して。。を、繰り返しましょう。

 面倒なようですが、これが一番近道です。一気にカスタマイズしてしまうと、もし、エラーがでたときに、どこを変更したのがエラーの原因か全く分からなくなり、最悪、また最初からやり直しとなってしまい、非常に効率が悪くなります。

 

[ 戻る ]

 

 

人気記事ランキング
   

サイトマップ
コンタクト

文章や画像等の無断利用・転載はご遠慮ください。
当サイトへのリンクは原則フリーです。どのページにリンクされても構いません。
Copyright © CoolandCool. All rights reserved.