ビギナーズ CGI

 初歩から始める初心者向けPerl-CGI講座  

| トップページ | CGI設置 | CGI作成 | 作成事例 | 設置用語 | 作成用語 | 関数リファレンス | FAQ | お問合せ |
  
CGIの設置方法
フリーで配布されているCGIを設置する際の手順や注意事項などの説明です。

CGI作成の初歩
初めてCGIを作る方向けの手順を簡単な例で説明しています。

CGI作成ヒント集
こういう事をする時は、どのように行えばいいのか?など具体的な事例を紹介します。

CGIの設置に関する用語
CGIの作成に関する用語
CGIの設置や作成時に使われている用語や関連知識を掲載しています。

設置に関するFAQ
作成に関するFAQ
設置や作成をする際に起こりがちなトラブルの説明と、よくある質問とその回答を掲載しています。



 
 


CGI を設置する際に良くある質問とその回答




CGI を設置する際に良くある質問とその回答を掲載しています。

Q. CGI の基本的な設定に間違いがないか確認したい
Q. サーバエラーとなってしまったが不具合の箇所が分からない
Q. CGI は間違いなく正常だがエラーとなる
Q. ページの表示で文字化けする特定の文字がある
Q. CGI が動いたり動かなかったり、何も無いページが表示されたりする
Q. 画像が上手く表示されない
Q. 実行するとソースが表示されてしまう、又はダウンロードされる
Q. ロックされています・Lock is Busy などと表示され動作しない
Q. 配布先からCGI をダウンロードしたら内容物が説明より足りない
Q. 突然 core というファイルが出来た しかもデカイ・・・
Q. CGI は使えるのに一部に使えないものがある
Q. 編集しようとしたら、文字化けしていて編集できない
Q. 編集しようとしたら、全ての行がつながっていて編集できない
Q. 投稿時間が出る掲示板などで時間がずれている
Q. 掲示板などで長い間正常だったのに突然エラーが出るようになった
Q. 掲示板やカウンタなどで現行ログや過去ログが全て消えてしまった
Q. 画像や投稿記事など修正や操作をしたのに反映されない
Q. CGI 自体でなく、ライブラリでエラーが出る
Q. メール送信フォームなどで投稿者側アドレスで特定のアドレスのみエラーが出る
Q. 掲示板などの投稿メール通知が上手くいかない
Q. 500 404 403 エラーコードの違い
Q. カウンタなどでSSI を使ったものが上手く動かない
Q. 配布元でバージョンアップ版があったのでバージョンアップしたい
Q. カウンタでたまに画像が正しく表示されない時がある
Q. カウンタを設置しても数字がいつも同じでカウントされない (0000のまま等)





Q. CGI の基本的な設定に間違いがないかを確認したい

A. KENT-WEB さんで配布されているCGI でPerl のパスや、実行権限や改行コードなどをチェックするユーティリティが配布されています。
この CGI はPerl のパスとアクセス権のみ設定すれば動作しますので、確認方法が分からない場合、このスクリプトを使うと便利です。

「Perl Checker」 KENT-WEBさん
http://www.kent-web.com/utility/index.html


ページ先頭へ戻る


Q. サーバエラーとなってしまったが不具合の箇所が分からない

修正などを行う際は、一部分ずつ修正・動作確認をするのが確実ですが複数の箇所を修正後エラーとなり、どこが間違いか全く分からないなどの場合、Windows で利用できるフリーのサーバソフトがありますので、それをインストールしエラーとなる行番号を確認する方法が良いと思います。
インストールから利用方法までを紹介されているサイトが以下の配布先ページ下部のリンクにありますので、利用方法などはそちらでご確認下さい。
エラーの出た行番号が分かると、不具合の修正に絶対便利ですので、とりあえず利用してみると良いと思います。
実際にはエラーの出る箇所の前の処理で不具合があり、その後の処理でエラーとなる場合もありますので、エラー箇所の前後も調べる必要があります。

また、アクセス権限が指定されている場合 (例えば 777 を 700 や 707 など) はホームページスペース側の指示に従い設定してみて下さい。

AN HTTP Server Home Page (Windows9x/Me/NT/2000/XP)
http://www.st.rim.or.jp/~nakata/

ページ先頭へ戻る


Q. CGI は間違いなく正常だがエラーとなる

CGI 自体に間違いが無いように見えても、その中で読み込もうとしているファイルや改行コードなど別の部分がおかしい場合があります。

・ 全く分からない場合、上記サーバソフトを使ってエラー行を確認して下さい。
・ CGI 自身が出しているエラーなのか、サーバ側で出されるエラーなのかを確認して下さい。
・ スペースによってはCGI の動作できるディレクトリやサーバが限られている所がありますので確認して下さい。
・ ご利用環境で Perl のバージョンが低い場合、最近のCGI で動かないものがあるかもしれません。
・ 読み込むファイルが無い、又はアクセス権が無い → require で読み込もうとしているファイルが存在するか、アクセス権は正しいか確認
・ 改行コードが違う → 通常CR+LF 〜 LF へFTPツールで変換しますが、LFで保存されている場合バイナリモードで転送してみて下さい。
・ 全角のスペースが入っている → プログラム部に全角文字があるとエラーになりますので、エディタの検索で全角スペースを確認して下さい。
・ htaccess で間違った設定をしている → htaccessを使っている場合、プログラムのエラーでなくhtaccessの記述ミスの可能性もあります。
・ windows環境で使えない関数を利用している → 利用する環境によっては使えない関数があります windows で flock alarm 等です。

・ その他、特定の部分でエラーとなる場合は周辺の処理を確認して下さい。 例えばメール送信処理が入っていたら sendmail のパスなど
・ アクセス権限が指定されている場合 (例えば 777 を 700 や 707 など) はホームページスペース側の指示に従い設定してみて下さい。

ページ先頭へ戻る


Q. ページの表示で文字化けする特定の文字がある

A. CGI で書き出すページで 可能性 や 表示 などの文字を書き出すと文字化けを起こします。
これらの文字に含まれる 能 や 表 は文字コードに \ 記号を表すコードが入っている為、そのまま書き出すと文字化けします。
このような場合は \能 など文字の前に \記号を付けてエスケープします。

この他にも文字化けする文字は多くあり、カタカナでも文字化けする文字があります。

ページ先頭へ戻る


Q. 動いたり動かなかったり、何もないページが表示されたりする

A. 原因はこれだけではありませんが、使おうとしているCGI が異常に負荷の高いものの可能性があります。
負荷が高い又は実行時間を長く使うものの場合、サーバ側で強制終了させられている場合があります。
大抵のプロバイダのホームページスペースでは負荷の高いCGI は動作しません。

ページ先頭へ戻る


Q. 画像が上手く表示されない

A. CGI が動かせる場所と、画像の読み出しが許可されている場所が決められているスペースもあります。
この場合画像は画像で許可されているスペースに置き、パスなどの設定を修正する必要があります。

ページ先頭へ戻る


Q. 実行するとソースが表示されてしまう、又はダウンロードされてしまう

A. お使いの環境でCGI が許可されていない可能性がありますので、ホームページスペースのマニュアルなどでご確認下さい。

ページ先頭へ戻る


Q. ロックされています、Lock is Busy などと表示される

A. 掲示板やカウンタなどではログを保護する為にロック機構が備わっていますが、このファイルが残ってしまっている場合があります。
大抵の場合時間を置くと削除される仕組みになっていますが、この削除が上手く行われずサーバ上に残ってしまい、その後動作しないなどの不具合が出てしまう場合は、FTPツールで接続して 〜.lock (CGI によってロックファイル名は違います) を削除しましょう。

ページ先頭へ戻る


Q. 配布先からCGI をダウンロードしたら説明より内容物が足りない

A. 配布されているCGI は全てが入っているとは限りません (例えばカウンタのカウンタ画像やライブラリなど) ので、説明をよく読んで必要なものを揃える必要があります。
また、全て入っていると記載されているのに解凍したら足りなかった場合、ダウンロードに失敗している可能性がありますので、ブラウザの一時ファイルを削除後、再度ダウンロードして下さい。
IEの場合、【ツール】→【インターネットオプション】→インターネット一時ファイル の 【削除】
一時ファイルを削除していない場合、再度ダウンロードしてもキャッシュから読み込まれる為、必ず一時ファイルを削除して下さい。

ページ先頭へ戻る


Q. 突然 core というファイルができた・・・

A. core というファイルは、ホームページスペースのサーバが重いなどCGI が何らかの原因で強制終了してしまった時などに出来る場合があるファイルで、激しく巨大な場合もありますが、削除しても問題ありません。
先に core というファイルを作り、書き込めないアクセス権を設定しておけば生成されるのを防ぐ事ができます。

ページ先頭へ戻る


Q. CGI は使えるのに一部に使えないものがある

A. 一般に配布されているCGI は全てのサーバで使えるとは限りません。
負荷の高いもの、必要とするモジュールがサーバ側に入っていない、バージョンが低いなど色々な原因がありますが、このあたりは配布先で説明がされている場合がありますので、確認してみましょう。

ページ先頭へ戻る


Q. 編集しようとしたら、文字化けしていて編集できない

配布されているCGI で保存されている文字コードをエディタ側で読めない場合、文字化けを起こします。
フリーで配布されているテキストエディタが多くありますので、それらを利用してみて下さい。

「Tera Pad」
http://www.vector.co.jp/soft/win95/writing/se104390.html

ページ先頭へ戻る



Q. 編集しようとしたら、全ての行がつながっていて編集できない

テキストエディタ側で、保存されている改行コードが読めない場合があります。
上のFAQで紹介しているテキストエディタは自動で認識しますので、これらを使えば正常に読めると思います。
また、作成者側がサイズを小さくする為、スペースなどを消している場合もありますが、この場合は正常です。

ページ先頭へ戻る


Q. 投稿時間が出る掲示板などで時間がずれている

ホームページスペース側の時刻設定が違っているか、配布されているCGI の不具合か分かりませんが、とりあえず配布されているCGI を実際に使っているサイトなどを探し、同じように時刻が違っていないかを確認してみましょう。
同じように違っている場合、スクリプト側の不具合の可能性があります。
自分のスクリプトのみ違っている場合は、サーバ側の時刻設定に問題があるかもしれませんので、サポートに問い合わせてみてください。

ページ先頭へ戻る


Q. 掲示板などで長い間正常だったのに突然不具合が出た

過去ログ機能を持つ掲示板や日記などの場合、通常の投稿処理は問題なくても過去ログの設定などが間違っている場合、突然不具合がやってくる可能性があります。
特に設定変更などを行っていないのにエラーが出たりする場合は、その辺りの設定に間違いが無いか、過去ログディレクトリやファイルのアクセス権は間違っていないかなどを確認してみましょう。

また、特に画像などのファイルが投稿できる掲示板などの場合、ホームページスペースの容量を超過している可能性もありますので、そちらも問題ないかを確認して下さい。

ページ先頭へ戻る


Q. 掲示板やカウンタなどで現行や過去ログが全て消えてしまった

複数の人が書き込み操作をするスクリプトの場合、ロック機構がついていますが、その設定を行っていないなどの理由でロックが働いていない可能性があります。
ロック機構は非常に重要なので、必ず設定しましょう。
一度消えてしまったログは特別な機能がついているスクリプト以外では二度と戻りません。


ページ先頭へ戻る


Q. 画像や投稿記事など修正や操作をしたのに反映されない

大抵はブラウザのキャッシュ機能によるもので、ページの更新やインターネット一時ファイルを削除すれば反映されます。
ブラウザによっては強力にキャッシュするものもあるので、とりあえずキャッシュを疑ってみてください。

ページ先頭へ戻る


Q. CGI 自体でなくライブラリでエラーが出る

CGI に同封されている場合は、動作するバージョンだと思いますが、別のスクリプトでも使いまわしをする場合、ライブラリのバージョンが低いと正しく動作しない場合があります。 (ライブラリとは例えば日本語変換の jcode.pl など)
新しいバージョンにするか、CGI に同封されているライブラリを使って下さい。

ページ先頭へ戻る


Q. メール送信フォームなどで投稿者側アドレス入力で特定のアドレスのみエラーが出る

メール送信フォームなど投稿者側にメールアドレスを入力させるようなものは、メールアドレスの表記が間違っていないかをチェックするものがほとんどで、メールアドレス自体は正しいのにチェックで弾かれる場合があります。
これはスクリプト側の問題で、知識があれば自分で修正やその部分を消してしまうか、知識がなければ配布元に相談してみましょう。

ページ先頭へ戻る


掲示板の投稿メール通知などが上手くいかない

大抵の場合、メール送信プログラム sendmail などのパス指定の間違いか、sendmail が許可されていないなどが問題ですが、それが違う場合、メールアドレスの @ 部分に \ を付けて設定してみて下さい。
例えば、 aaa@bbb.com であれば aaa\@bbb.com という感じです。
@は CGI 内で配列として扱われるのでそれが原因でエラーとなっている可能性もあります。

ページ先頭へ戻る


500 404 403 エラーコードの違い

エラーコード 500
500の場合、スクリプトのエラーとなりますが原因は数多くありますので、とりあえず修正した箇所があればそこを確認します。
また、転送モードを間違えていたり、改行コードによる不具合、先頭行のPerl のパスの間違いなども確認して下さい。
このFAQの中にある、不具合の箇所が分からない で紹介しているサーバソフトを利用するとより詳細に不具合が探せます。

エラーコード 404
このエラーはディレクトリ又はファイルの指定間違いで、スクリプトにアクセスしようとしてエラーが出た場合はURLの入力ミスです。
設置したディレクトリと、指定したURLをよく確認し、再度アクセスしてみましょう。

エラーコード 403
403のエラーはアクセス権限によるエラーです。
例えば適当な画像ファイルをアップロードし、他人の指定部分を0など 例えば644 を 640 などにしてアクセスしてみて下さい。
403のエラーが出ると思います。
ページや画像、ログファイルなども同様に、このアクセス権の設定が間違っているとサーバ側に弾かれ、正しく動作しません。
CGI を置くディレクトリやサーバの指定がある場合、それも疑ってみて下さい。


ページ先頭へ戻る


Q. カウンタなどSSI を使ったものが上手く動かない

カウンタなどで画像を使わず、そのまま数字で表示するようなカウンタの場合SSI などを使っていると思いますが、ホームページスペースで CGI 許可とされていても、このSSI は非許可の場合がほとんどです。
SSI ではなく CGI で書き出すカウンタがありますので、SSI が許可されていない場合 CGIで書き出すカウンタを使いましょう。

ページ先頭へ戻る


Q. 配布元でバージョンアップ版があったのでバージョンアップしたい

大抵配布元で指示があると思いますので、それにしたがって上書きなどを行います。
特に記載されていない場合、初めの設定は必要ですがスクリプト自体を上書きすればOKな場合が多いです。
また、配布元WEBサイトで記載されていなくても、スクリプト内に説明書きが記載されているものもあるので、注意して見て下さい。

ページ先頭へ戻る


Q. カウンタでたまに画像が表示されない時がある

画像ファイルを連結して表示するカウンタの場合、表示するべき数字用の画像が正しくアップロードされていないと、
該当の数字を表示する時のみ全ての数字が表示されない状態になります。
(表示部がフォームの一行テキストのような状態になります)
数字用の画像が正しくアップロードされているか、画像が破損していないかを確認してみましょう。

ページ先頭へ戻る


Q. カウンタを設置しても数字がいつも同じでカウントされない

記録ファイルのアクセス権を確認して下さい。 記録ファイルは通常 666 などと他人も書き換え可能な権限を設定しますが、
これが 644 などになっていると、カウンタ部分が×印やカウンタによってはカウントアップされず同じ数字が表示されます。
また、設定したドメインやURL以外の場所から読み出しできないようにする機能がついているカウンタの場合、セキュリティ
ソフトによりアクセス元(リファラー)情報が遮断されている事により正しく表示されない場合もあります。
意外にあるのが、ホームページ容量の不足によるもので、容量いっぱいになると記録ファイルの書き出しの際に受け付け
られなくなる為、結果記録ファイルが空になってしまい、カウンタが動作しない、記録が全て消えてしまうなどの状況になる
事もあります。

ページ先頭へ戻る





Beginner's CGI  - Copyright (C) 2003 aimix. All Rights Reserved -