回答日: 2006-12-12
質問
お手軽に使えるCGIを提供してくださってありがとうございます。管理者画面において、普段ならadmin.cgiへアクセスすると最初に記事一覧が表示されます。
ですが、今回私が設置したい某サーバーでは、インストール直後でエントリーが一つも入っていないのにタイムアウトエラーが発生してしまい、一覧画面を一度も表示することが出来ません。対処方法はわかりますでしょうか?
・telnetから該当プログラムへのperlコマンドを実行すると
(offline mode: enter name=value paris on standard input)
というメッセージが表示され、コマンドに戻らなくなります。
・某サーバーは、cgi-binフォルダとhttpdフォルダに分かれており、それぞれ別のIDとパスワードが要求されます。
・cgi-binフォルダには、admin/admin.cgiと、テンプレートファイル一式を置き、その他のデータは、webサーバ側に設置しました。
・某サーバーのスペックは以下の通りです
OS: SUN Solaris8
Web service: Apache1.3.33
Perl: 5.00_03 + jperl patch20000401
投稿日時: 2006-12-12 02:54
回答
こちらで問題が再現する環境を作れないのですが、取り急ぎ何点か確認点がありますので、ご確認下さい。■Perlのバージョン
「5.00_03」という表記のPerlのバージョンは無いので、「5.005_03」「5.004_03」「5.003」などかと思いますが、Perl 5.004 以下は動作確認しておりませんので、稼動できない可能性があります。
■製品のバージョン
Perl 5.005_03 では、Perl の 標準モジュールのバグのため、場合によっては期待通りにファイルの読み書きができなくなる、という現象が確認されています。
現在までのところ確認できている範囲ではタイムアウトする、という現象はありませんでしたが、もしかしたらロック解除待ちなどになってしまっている可能性もありますので、製品のバージョンが下記に該当する場合、バージョンアップをして下さい。
バージョンは、 admin/admin.cgi の冒頭に記載されています。
《問題の発生する可能性のあるバージョン》
全ての製品の Ver. 1.1 以下
■telnetでの確認
> telnetから該当プログラムへのperlコマンドを実行すると
> (offline mode: enter name=value paris on standard input)
> というメッセージが表示され、コマンドに戻らなくなります。
これは、スクリプトがパラメータを待っている状態です。
パラメータは何も入力せずに 「Ctrl + D」を入力して下さい。
正常に処理ができれば初期の一覧画面表示の HTTPヘッダ + コンテンツ(HTMLコード)が表示されるはずですので、それで表示が可能かお試し下さい。
コマンドラインで表示が可能であれば、Apache <=> CGI のやりとり部分や環境変数などの取得部分などに何か問題がある、ということになります。
この場合、Apache のエラーログなどに問題点が記録されている場合があります。
可能であれば参照してみて下さい。
■その他の問題
単純にサーバホストの長期稼動やCGIの連続実行などでサーバの「調子が悪く」なっている可能性もあるのかと思います。
Apache や ホストの再起動が可能であれば、再起動後同じ問題が再現するか試してみて下さい。
回答日: 2006-12-12