フリーCGIスクリプト配布サイト。
よくあるトラブルとその対処法です。苦労して設置したのにエラー画面が出るととっても悲しいですが、冷静に手順を見直しましょう。
右クリックをして『対象をファイルに保存』とするか、Shiftキーを押しながらクリックしてください。
サーバーがCGIファイルを認識できていない状態です。.htaccess
ファイル(特殊な設定ファイル)を設置しなければならない場合があります。プロバイダのサポートページなどを調べてください。
指定したアドレスにファイルが存在しないときに表示されます。CGIを呼び出す際のURLを確認しましょう。スペルを一つ間違うだけで当然アウトです。
また、プロバイダによってはCGIのみ別サーバーになっている所もあります。
CGIにアクセスする権限が無いときに表示されます。パーミッションを確認しましょう。
プロバイダによっては cgi-bin
ディレクトリなど、特定のディレクトリに設置しなければならないこともあります。
Internal Server Errorは非常に原因を特定するのが難しいエラーです。以下の点をチェックしてください。
'
がひとつ足りないだけでもエラーになります。原因が判らない場合、CGIファイルの初めの方にある use strict;
と書かれた直後の行に
use CGI::Carp qw(fatalsToBrowser);
と記述すると、大抵の環境ではエラー内容を確認する事ができます。
なお、
Undefined subroutine &Jcode::euc_utf8 called
のようなエラーが表示された場合、日本語変換モジュールのバージョンが影響している可能性が高いです。頻繁に日本語変換モジュールを呼び出さないプログラムはモジュールを添付していないのですが、その場合、サーバー側にインストールされているモジュールが利用されます。大抵のサーバーでは問題ないのですが、稀にモジュールのバージョンの影響で正しく動作しないことがあります。
この場合、Web Diary Pro などに付属している lib/Jcode.pm
と lib/Jcode/
を lib/
内にアップロードすると解消されるようです。
Professional版で、CGIからの自動パーミッション設定が行えない状態です。
この場合、lib/webliberty/App/Init.pm
にある chmod_mode => 1,
の部分を 1
から 0
に変更してからセットアップすると、自動的にパーミッション設定を行わなくなります。
設定を変更した場合は以下の構成を参考に、FTPソフトからパーミッション設定を行ってください。(ここに書かれていないファイルは設定不要です。)data
内の各ファイルとディレクトリはセットアップ時に自動作成されますが、もし作成されなければ手動で作成してアップロードした後、パーミッション設定を行ってください。
また、CGIからファイルの作成を行うとFTP経由で削除ができなくなるサーバーがあります。その場合は以下の構成を参考に、FTPソフトで必要なファイルを data
内にアップロードしてからパーミッション設定を行ってください。もし削除できないファイルが残ってしまったら、Web Eraser を使用すればCGIの持つ権限でファイルやディレクトリの削除が行えます。
diarypro / diary.cgi [755]
| diary-paint.cgi [755]
| diary-tb.cgi [755]
| index.html [666]
|
+-- archives [777] /
|
+-- data [777] / field.log [666]
| icon.log [666]
| init.cgi [666]
| link.log [666]
| menu.log [666]
| navi_end.js [666]
| navi_start.js [666]
| profile.log [666]
| record.log [666]
| text.js [666]
| title.js [666]
| top.log [666]
| user.log [666]
|
+-- comment [777] / index.log [666]
|
+-- diary [777] / index.log [666]
|
+-- icon [777] /
|
+-- image [777] /
|
+-- paint [777] /
|
+-- pch [777] /
|
+-- thumbnail [777] /
|
+-- trackback [777] / index.log [666]
|
+-- upfile [777] /
user.log
には以下の内容を記述しておいてください。
admin<タブ>I6gt7k4bCYO8E<タブ>root<改行>
<タブ>
・<改行>
の部分は、実際はそれぞれタブと改行を記述してください。さらにその後、?mode=setup
を付加してプログラムを実行してください。
これで管理者パスワード 1234
で管理ページにログインする事ができます。パスワードはログイン後に変更しておいてください。
gallerypro / gallery.cgi [755]
| gallery-tb.cgi [755]
| index.html [666]
|
+-- archives [777] /
|
+-- data [777] / field.log [666]
| icon.log [666]
| init.cgi [666]
| link.log [666]
| menu.log [666]
| navi_end.js [666]
| navi_start.js [666]
| profile.log [666]
| record.log [666]
| text.js [666]
| title.js [666]
| top.log [666]
| user.log [666]
|
+-- comment [777] / index.log [666]
|
+-- gallery [777] / index.log [666]
|
+-- icon [777] /
|
+-- image [777] /
|
+-- option [777] /
|
+-- relate [777] /
|
+-- stock [777] /
|
+-- thumbnail [777] /
|
+-- trackback [777] / index.log [666]
|
+-- upfile [777] /
user.log
には以下の内容を記述しておいてください。
admin<タブ>I6gt7k4bCYO8E<タブ>root<改行>
<タブ>
・<改行>
の部分は、実際はそれぞれタブと改行を記述してください。さらにその後、?mode=setup
を付加してプログラムを実行してください。
これで管理者パスワード 1234
で管理ページにログインする事ができます。パスワードはログイン後に変更しておいてください。
boardpro / board.cgi [755]
| index.html [666]
|
+-- data [777] / board.log [666]
| init.cgi [666]
| icon.log [666]
| pwd.log [666]
| rank.log [666]
| record.js [666]
|
+-- icon [777] /
|
+-- past [777] /
|
+-- tmp [777] /
|
+-- upfile [777] /
pwd.log
には以下の内容を記述しておいてください。
I6gt7k4bCYO8E<改行>
<改行>
の部分は、実際は改行を記述してください。これで管理者パスワード 1234
で管理ページにログインする事ができます。パスワードはログイン後に変更しておいてください。
cartpro / cart.cgi [755]
| cart-tb.cgi [755]
| index.html [666]
|
+-- archives [777] /
|
+-- data [777] / customer.log [666]
| field.log [666]
| icon.log [666]
| init.cgi [666]
| link.log [666]
| menu.log [666]
| navi_end.js [666]
| navi_start.js [666]
| option.log [666]
| profile.log [666]
| rank.log [666]
| record.log [666]
| text.js [666]
| title.js [666]
| top.log [666]
| user.log [666]
|
+-- catalog [777] / index.log [666]
|
+-- comment [777] / index.log [666]
|
+-- icon [777] /
|
+-- image [777] /
|
+-- option [777] /
|
+-- relate [777] /
|
+-- stock [777] /
|
+-- thumbnail [777] /
|
+-- trackback [777] / index.log [666]
|
+-- upfile [777] /
user.log
には以下の内容を記述しておいてください。
admin<タブ>I6gt7k4bCYO8E<タブ>root<改行>
<タブ>
・<改行>
の部分は、実際はそれぞれタブと改行を記述してください。さらにその後、?mode=setup
を付加してプログラムを実行してください。
これで管理者パスワード 1234
で管理ページにログインする事ができます。パスワードはログイン後に変更しておいてください。
ログファイルを読み出せない状態です。ファイルがアップロードされているか、ファイル名が間違っていないか、パーミッションは606
に設定されているか、チェックしてください。
プログラムやスキンファイルの文字コードが不正な場合、日本語変換モジュールが正しく機能しなかった場合などに、文字化けが発生する可能性があります。
文字化けには、色々な原因が考えられます。以下のことをチェックしてみてください。
.cgi
や .pm
のファイル)の文字コードがUTF-8Nで保存されているか確認しましょう。編集の際、他の文字コードで保存すると、エラーになったり文字化けしたりする可能性があります。Jcode.pm
を最新版に差し替えると解消される事があります。lib/Jcode.pm
と lib/Jcode/
を削除すると解消される事があります。#!/usr/local/bin/perl -I../lib
use Jcode;
/usr/local/bin/perl
の部分は、サーバーに合わせたPerlのパスを設定しておきます。
管理者ページにログインしても、操作しようとするとログイン画面に戻される事があります。管理者ページでのログイン状態の保持にCookieを使用しているプログラムがありますので、ブラウザのCookieがONになっているか確認してみてください。
また、Cookieが利用できないサーバーが稀にあるようですが、その場合はプログラムを利用する事はできません。サーバー引越しの検討をお願いします。
ログの破損防止のためのロックファイルが作成されている状態です。しばらく時間をおいてからもう一度投稿してみてください。
また、何らかの理由でロックファイルが削除されずに残ってしまう場合もありますが、10秒以上前に作成されたロックファイルは自動的に削除されますので、この場合もしばらく時間をおいてからもう一度投稿してみてください。
もしくは、ロックファイルが作成できない状態の可能性もあります。ロックファイルを作成するディレクトリのパーミッションを707
に設定してください。 プロバイダによっては705
などに設定しなければならないこともあります。
アップロードファイル保存ディレクトリが存在するか、パスは間違っていないか、パーミッションは正しく設定されているかを確認してください。CGIとは別のディレクトリにアップロードしなければ表示できないサーバーもあります。
プロバイダのサポートページや、特殊なサーバーでの設置方法を参照してください。
画像ファイルへのパスが間違っていないか、アップロードしたファイル名が間違っていないかを確かめてください。CGIとは別のディレクトリにアップロードしなければ表示できないサーバーもあります。
プロバイダのサポートページや、特殊なサーバーでの設置方法を参照してください。
Web Analyze にはリンク元のURLを取得する機能があります。ですが、リンク元の情報は『呼び出されたページのURL』を JavaScript によって取得するので、フレーム内のページに Web Analyze を設置した場合は正しく情報を取得できません。
この場合 Web Analyze を設置する際にHTMLファイルに記述した
<script type="text/javascript">
<!--
document.write('<img src="./cgi-bin/analyze/analyze.cgi?'+ screen.width + 'x' + screen.height + '&' + document.referrer + '" alt="" width="1" height="1" />');
//-->
</script>
この処理の、
document.referrer
上記の部分を以下のように変更してください。
parent.document.referrer
これでリンク元の情報が取得できるようになります。
各CGIは外部HTMLファイルでデザイン変更ができるので、必要に応じてそれらのファイルに広告表示用のHTMLを追加します。
海外にサーバーがある場合など、投稿日時がずれて表示されることがあります。
時差を修正するには、CGIの設定項目内に以下の設定を追加することで対処ができます。
$ENV{'TZ'} = 'JST-9';
この場合、-9
の部分で9時間ずらしています。状況によって +5
や -10
など、適宜変更してください。
メール送信機能のあるプログラムで、送信メールの日時がずれている場合、lib/webliberty/Sendmail.pm
の70行目あたりにある
open(webliberty_Sendmail, "| $self->{sendmail} -t") or return(0, "Sendmail Error : $self->{sendmail}");
この直後に、以下の処理を追加してください。
my($sec, $min, $hour, $day, $mon, $year, $week) = localtime(time);
my @week = ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
my @month = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
my $date = sprintf("%s, %d %s %04d %02d:%02d:%02d +0900 (JST)", $week[$week], $day, $month[$mon], $year + 1900, $hour, $min, $sec);
print webliberty_Sendmail "Date: $date\n";
Basic認証下でしぃペインターを使用するには、しぃペインターの設定を変更する必要があります。skin/admin_paint.html
の110行目あたりにある
<param name="send_advance" value="true" />
この部分を以下のように変更してください。(true
を false
に変更。)
<param name="send_advance" value="false" />
これでBasic認証下でも投稿ができるようになります。
Professional版は必要なログファイルを自動で作成し、自動でパーミッションの設定も行います。ですが、CGIからファイルの作成を行うとFTP経由で削除ができなくなるサーバーがあります。
対処方法は、『Chmod Error』と表示されるの解説をご覧ください。
現在のバージョンは、スタイルシートでフォントサイズを一括して設定しているため、FONTタグを使用して文字サイズを変更することができません。文章内でフォントサイズを変更するには、
<span style="font-size:20px;">拡大する文字</span>
このように記述することでサイズ指定が可能です。
広告が強制挿入されるサーバーの場合、RSS配信機能が正しく機能しないことがあります。広告の強制挿入により、RSSのXMLデータが不正な形式に書き換えられてしまうからです。
一部の広告を表示にする事が許可されているサーバーの場合、その手順に従って広告を非表示にすれば、RSSを正しく配信する事ができます。もし広告非表示が一切許可されていない場合、そのサーバーではRSS配信機能を利用する事はできません。
以下のページでXreaでの対処方法が紹介してくれています。(Xreaユーザー以外でも参考になるかもしれません。)
Professional版でパスワードを忘れてしまうと、パスワードを確認する方法はありません。パスワード情報はサーバー上に記録してはいるものの、非可逆な暗号化を行っているためです。
この場合、data/user.log
(Web Board Pro の場合はdata/pwd.log
)をFTPソフトで削除した後、?mode=setup
を付加してCGIにアクセスしてください。具体的には、http://your.site.addr/diarypro/diary.cgi?mode=setup
のようなURLでアクセスします。
「管理者パスワードを1234に再設定しました。」と表示されれば成功です。管理者パスワードが 1234
になっているので、この情報で管理者ページにログインすることができます。ログイン後、必ずパスワードを変更しておいてください。
Professional版の場合
バージョンを確認するには、?mode=info
を付加してCGIにアクセスします。具体的には、http://your.site.addr/diarypro/diary.cgi?mode=info
のようなURLでアクセスします。
このページでプログラム名やバージョン情報などを確認することができます。また、任意のスキンに ${INFO_VERSION}
と記述するとバージョン情報が表示されるので、これで確認することも可能です。
Professional版以外の場合
各CGIファイルの先頭に Web Diary Ver 2.00
のような表記がありますが、これがバージョン情報です。