このページは、Web Calendar2の配布元である"http://www3.biwako.ne.jp/~nobuaki/webcal/"を、「Web システム手帳」が再構成したものです。リンクを除き、ほぼ原文のままになっていますので(2002年ころ)、現在と内容が合わないものがあります。 |
■トラブルシューティング |
Q1.インストールして実行したら、サーバーエラーが出た。
1.何も修正せずに実行する
設定ファイル等を修正してエラーが出た場合、まずダウンロードしたファイルを修正せずにそのまま実行してみてください。うまく動作したなら、修正した個所に問題があると思います。
2.改行コードを確認する
上記でもエラーがでる場合は、改行コードを確認してください。ソースリストはWindows上で開発されているため、「CR+LF」になっています。UNIX系サーバーの場合、改行コードは「LF」ですので、予め改行コードを変換して転送するか、FTPソフトでアスキーモードで転送し、適切な改行コードに変換されるようにしてください。
3.perlのバージョンを確認する
本CGIはperl5でのみ動作します。perl4では動作しません。ご利用のサーバーのperlのバージョンを確認してください。TELNETが利用できるのであれば、”perl -v”でバージョン番号が確認できます。Telnetは利用できないが、SSIが使える場合は、添付のversion_check.htmlを表示してみてください。
最近では、ほとんどのプロバイダでperl5がインストールされていますが、デフォールトがperl4のままになっている場合もあります。
そのような場合は、各ファイルの先頭にある、#!/usr/local/bin/perlを#!/usr/loca/bin/perl5にすると、うまくいく場合もあります。もしperl5がインストールされていないなら、プロバイダに催促でもしてください。
4.プロバイダが@nifty、リムネットでないか確認する。
上記プロバイダは設置が特殊です。設置方法内の@Niftyでの設置方法及びリムネットでの設置方法を参照してください。
5.プロバイダ指定の方法に従っているか確認する。
@niftyやリムネット以外にもプロバイダによっては、設置が特殊な場合があります。例えば設置するディレクトリが指定されていたりします。プロバイダのホームページ等でご確認ください。
Q2.「混雑しています。少し時間をおいてから、書込みしてください。」と表示され、書き込みが全くできなくなる。
同時書込み防止用のロックファイルを確認する。
本カレンダープログラムは、スケジュールの同時書き込みによるデータ破壊を防ぐため、書き込み中はロックファイルを作成しています。 これは本来書き込みが終了すると自動的に消去されるのですが、何らかの原因でファイルが消去されずに残ってしまい、書込みが出来なくなるというご指摘を受けました。
万が一、上記のようになってしまった場合は、応急処置としてdataディレクトリのwebcal.lockまたはreply.lockというファイルを消去すれば、書込みできるようになります。 (※最新バージョンでは、このような問題は起こりにくいと思います。)
Q3.時間表示がずれている。
サーバーが日本以外に設置されているか確認する。
本スクリプトは標準設定では、日本国内のサーバーに設置されることを前提にしています。そのためタイムゾーン設定が”JST-9”になっていますので、設置されている国のタイムゾーンに設定変更してください。設定はwebcalconf.cgi内に記述されています。
Q4.新規スケジュールが書き込めない。書き込んでも「現在スケジュールはありません」と表示される。
Q5.サーバーを移動したら、スケジュールが書き込みできなくなった。
dataディレクトリのパーミッションが707等になっていますか? また、dataディレクトリの下にある月別ディレクトリのパーミッションとその中にある日付 ファイルが707になっていますか? ブラウザからCGIが呼び出されると、サーバーはユーザーnobodyでスクリプト実行しますので、ファイルのパーミッションにその他の者の実行許可や書き込み 許可がないといけません。
Q6.スケジュール書込みは管理者のみにしたい。
管理者のみ書込みできるようにするにはwebcalconf.cgiの
----------------------------------------------
#書き込みモード
#特定のパスワードを利用することで書き込み削除できるモード = 0
#ユーザが自由に書き込み、削除できるモード = 1
$writemode = 1;
----------------------------------------------
の$writemodeを0にしていただければ、設定したパスワードでないと書込みできなくなります。
Q7.ソースリストをSJIS以外で設置したい。
プロバイダによっては、何故かソースリストがSJISだとエラーが出る場合があるらしく、その場合EUCで設置せざるを得ないことになりますが、単にソースをEUCにしただけでは、不十分です。元々SJISでの設置を前提に設計していますので、入力されたデータを強制的にSJISに変換しています。
webcalconf.cgiの
#-----------------------------------------------------
# 漢字コード
#-----------------------------------------------------
#本CGIはSJISを前提に作成していますが、プロバイダによってはEUCでないと
#だめな場合もあります。
#sjis以外にした場合は、全ソースリストもその漢字コードに変換してください。
#ただしこの場合、i-mode 端末はsjisにしか対応していないので、imodeは使えません。
$kanji_code = "sjis";
をEUCにしてください。
※ただし、imode携帯はSJISのみ対応となっていますので、EUCにした場合imode携帯での使用はできません。
Q8.カレンダー内の一部の文字が化ける。
本CGIはSJISで記述されていますが、文字によってはメタ(特殊)コードと合致してしまうものがあり、 その部分が文字化けとなります。 '―ソ欺圭構蚕十申貼表予兔喀杤噂饅'などが主なものです。これを回避する方法としては、文字列を" "ではなく、' 'で囲むと文字化け しなくなると思います。ただし' 'はメタ処理をしないので、変数表示や改行は外に出してください。
print "表示と$f\n"; --> print '表示と',$f,"\n";
または文字化けする文字の後ろに\を挿入します。
print "表\示"
Q9.カレンダー表示が遅い。
カレンダーを表示する上でもっとも時間のかかる部分が六曜計算と24節気計算です。太陽と月の黄経を計算して、旧暦を算出しそこから六曜、24節気を求めていますので、遅いサーバーではかなり時間がかかるかもしれません。その場合は、六曜・24節気を表示しない設定にしてください。※六曜計算の方が24節気よりも、より時間がかかります。
Q10.インターネットのアクセスがいつまで経っても終わらない。
時計表示にグラフィック方式を指定し、ブラウザにインターネットエクスプローラーをご利用の場合、いつまでもインターネットへのアクセスが終わらない場合があります。これは時計文字の画像をキャッシュを利用して表示しているのですが、ブラウザの設定によっては、キャッシュを利用せずにサーバーにアクセスしてしまうために起こる現象です。この場合、ブラウザの「ツール」・「インターネットオプション」・「全般」・「インターネット一時ファイル」の設定を「ページを表示するごとに確認する」以外にしてください。