よくある質問と答え

ホーム > Web素材 > よくある質問と答え

404 File Not Foundと出る

・・・。アドレスが間違っているか、アップロードされていないかのいずれかが原因です。

サーバーがエラーを返す。

よくある物にこういうのがあります。

403 Forbrtten パーミッションが間違っている。
(もしくは別のアカウントから直リンクした。)
500 Server Error ASCIIモードで転送しなかった。

また、他にも、CGIの設定上でエラーの原因になる物もあります。例えば

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 文字色指定のポインタの書体
$mojiiro1 = "Osaka,MS Pゴシック;

# 文字色指定のポインタの文字
$mojiiro2 = "■';

# 画像のある「ディレクトリ」
# --> yybbs.cgi と別ディレクトリとなる場合は、http://から記述する。
# 注:ボタンもここに格納されています。
$gazou_dir ="./images"

# アイコンを定義(上下は必ずペアで)

@icon1 = ('ねこ','うさぎ','Reinbow');
@icon2 = ('cat.gif','Rabbit.gif','rainbow.gif');

この例を見ると、
  1. 2行目は、片方の"が抜けています。
  2. 5行目は、片方の'がもう片方の"と違っています。
  3. 10行目は、以外と見落としがちなところです。終わりのセミコロン(;)が無くなっています。
  4. 14行目は、半角文字を使っているためスクリプトが、正常に語句を認識できません。
  5. 15行目は、ファイル名に全角文字を使用しています。
というミスがあることに気が付きます。特に3番はよく忘れてしまうので注意が必要!

グラフィックがなんだか変

元の画像   転送後
これは、転送する際に誤ってCGIと同じアスキーモードで転送した場合に起こります。グラフィックは、形式を問わず直接送りましょう。

送信ボタンを押しても内容が反映されない

 もう一度、データーファイル(拡張子が.logや、.datのファイル)を送ってみよう。また、パーミッションが666(誰でも読み書き可)になっているかも確認しておこう。

文字化けする

 まず、ブラウザの改行コードを変えてみよう。もしくは、ブラウザをインストールし直してみよう。それでもだめな場合は、jcode.plが正常に動いていない可能性があります。また、ftp://ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/から最新版を落としてみて入れ直してみるのも手段のうちです。

サーバーがエラーを返す・その2

さて、おかしいところを直した直後修正したCGIを送ってみると、ときどきサーバーエラーのままになることがあり、エラーログを調べてみると何も追記されていないと言う場合がある。この場合は、プロキシサーバー(もしくはファイヤーウォール)や、ブラウザのキャッシュを読んでいたりしているため起こる。したがって、しばらく待って再び呼び出すと問題なく起動することが多い。
もし、手っ取り早く調べたいならば、.cgiの後ろに?を付けると良い。

時間帯によって走らなかったりする

503 Service Unavailableというエラーが起きた場合は、サーバーが死んでいます。この場合は新しいアカウントを探しましょう。

アイコンが表示されない

freeweb(現Infoseek),Nifty,一部のbiglobe,hi-hoなどでは、CGIを実行するサーバーと普通のサーバーを分けているため、イメージのアドレスとCGIのアドレスが変わってしまいます。

例:
CGIを呼び出すときのアドレス:
http://www5a.biglobe.ne.jp/~xxxx/cgi-bin/yynext/yybbs.cgi
CGIを呼び出したときのアドレス
http://cgi.www5a.biglobe.ne.jp/~xxxx/cgi-bin/yynext/yybbs.cgi

このため、$imgurlをデフォルトの./img/にしておくとhttp://cgi.www5a.biglobe.ne.jp/~xxxx/cgi-bin/yynext/img/image.gifから呼び出していることになるため、アイコンが表示されなくなります。こういう場合は、$imgurlをフルパスで書くようにして下さい。

サーバーがエラーを返す・その3

さて、おかしいところを直した直後修正したCGIを送ってみると、ときどきサーバーエラーのままになることがあり、エラーログを調べてみると何も追記されていないと言う場合がある。この場合は、プロキシサーバー(もしくはファイヤーウォール)や、ブラウザのキャッシュを読んでいたりしているため起こる。したがって、しばらく待って再び呼び出すと問題なく起動することが多い。
もし、手っ取り早く調べたいならば、.cgiの後ろに?を付けると良い。

suEXECラッパー付きサーバーでの設置

 Mixedmediaや、Mediamix,pos.toなどのサーバーでは、セキュリティー向上のためsuEXECラッパーがサーバーに組み込まれています。この場合、普通にパーミッションを指定してしてもうまく走らなかったり、サーバーエラーになったりすることがあります。

 この場合、基本的にグループでの書き込みや閲覧を拒否するように設定します。大体次のようにすれば動くと思います。

  ディレクトリ CGI その他
通常時 777 755 666

変更後 755か701 700/777/701 604

 上手く行かない場合は、一つずつ試してみて下さい。(要は、普通の設定からグループのパーミッションをチェックしないように設定する)