また、実行時のURLは
htmlファイルとcgiファイルを連携させたプログラム(チャットスクリプト等)
の実行時に陥りやすい間違い
index.htmlはcgi-binに設置しても作動しません。必ずhtmlディレクトリに設置します
form method="post" action あるいは "get"
action でcgiスクリプトを実行させる 場合には、cgiが設置してある場所(cgi-bin)のパスを正確に指定します。パスを指定
する場合には、cgi-binと指定します。
パーミッションの設定方法は、ご使用のFTPソフトウェアのマニュアルをご参照ください。
ご使用のFTPソフトウェアのマニュアルをご参照ください。
#!/usr/bin/perl または
#!/usr/local/bin/perl
PHPの場合は、
#!/usr/local/bin/php
と記入します
また、sendmailのパスは
/usr/lib/sendmail
dateのバスは
/bin/date
nkfのパスは
/usr/local/bin/nkf
になります
スクリプト実行時に、[an error occurred while processing this directive]と表示される
セキュリィティ上の理由から、exec xxx= は使用できません
代わりに、include virtual= を使用してください
上記スクリプトを含むファイルの拡張子は、.shtml となります
注)SSI は、.html でも作動しますが、セキュリィティ上、なるべく .shtml をご使用ください
cgiスクリプト自体に記述ミスがないかどうか確認してください。
cgiスクリプトの文法チェックは、コントロールパネルの「PERL
CGI スクリプトのエラーチェック」を使用します
また、.cgi,.pl等のcgiが記載されたスクリプトファイルのパーミッションが755になっているかどうか確認してください。
cgi-binディレクトリに設置した画像がブラウザで表示されません
cgi-binディレクトリは、cgi スクリプトを設置するディレクトリです。画像ファイルはセキュリィティ上、このディレクトリに設置しても表示されません。必ず、htdocs下のディレクトリに設置してください。
http://www.ドメイン名.com/console/chkperl
でチェックできます。なおチェックの結果は英語表示となります
注)ドメイン名.comは取得ドメインにより、net、info 等に変わります
サーバーソフトウェアのAPACHEが最新バージョンにアップグレードされたため、従来のホストアドレスを取得するスクリプトである、
'REMOTE_HOST'
の機能が無効となっています。そのため、例えばホスト名を取得する部分のスクリプトが、
$remote_host=$ENV{'REMOTE_HOST'};
$addr = $ENV{'REMOTE_ADDR'};
if ($remote_host eq $addr)
{ $remote_host =
gethostbyaddr(pack('C4',split(/\./,$remote_host)),2) || $addr; }
になっている場合、 if ($remote_host eq $addr)
{ の部分がエラーとなるため、ホストの取得ができません。
これを修正するには、以下のように記述します。
$addr = $ENV{'REMOTE_ADDR'};
$remote_host = gethostbyaddr(pack('C4',split(/\./,$remote_host)),2)
|| $addr; }
つまり上記のスクリプトの場合、1行目の
$remote_host=$ENV{'REMOTE_HOST'}; と3行目の
if ($remote_host eq $addr) {
を削除して、エラーが起きないようにします。
上記の作業で、チャット等でのホストアドレスの取得・表示は可能となりますが、ネット上で配布されているスクリプト等につきましては、当社ではサポートできませんので、配布元などに最新のサーバーソフトウェアに対応したスクリプトに変更するようご相談ください。
shtmlに次のように記述します
<!--#include virtual="/cgi-bin/スクリプト名.cgi" -->
注1)実行させるcgiスクリプトの指定は、実行するCGIから見た相対ディレクトリを指定します。例えば、index.htmlが、htdocs/test ディレクトリにある場合でも、<!--#include virtual="../cgi-bin/スクリプト名.cgi" -->ではなく、<!--#include virtual="/cgi-bin/スクリプト名.cgi" -->と指定します。
注2)SSIは、exec cmd の記述でも作動する場合がありますが、作動を保証するものではありません。必ず、include virtualをご使用ください。
まず最初に、文字化けを起こすファイルに次のような記述を追加してみてください。
<HEAD>
<TITLE>
実際のタイトルを記入します
</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="cache-control" content="no-cache">
</HEAD>
たいていはこれで解決すると思われます。
サーバーのperl が最新バージョンになったため、旧cgiではうまく作動しない場合もありますので、cgiプログラムならびに、日本語変換プログラム jcode.pl を最新のバージョンに変更することをお勧めします。
さらに追加事項として、
http://openlab.ring.gr.jp/Jcode/index-j.html
から、jcode.pl の後継版である、Jcode.pm をダウンロードして試してみるのも良いかもしれません
なお現在のところ文字化けは、ネットスケープ4.7以前のバージョンのみで発生しています。IE(インターネット・エクイプローラー)、ネットスケープ7.xでは発生していません。なるべく新しいブラウザをご使用ください
LANはお客様内部のネットワークシステムになりますので、基本的には当社のサポート対象外となりますが、下記の事をご確認ください。
LANに接続された各ワークステーションに、取得したドメイン名は登録されていますか。
通常ワークステーションには、
workstation1.somedomainname.com
workstation2.somedomainname.com
workstation3.somedomainname.com
というように、名前が振ってあります。ここに、ドメイン名が指定されていないと、LANからのアクセスはできません。ネットワーク管理者に、ドメイン名をLAN PCのためのドメインネームとして使用しているかどうかお尋ねください。