sbで行こう


ENTRY

[tips] 「真っ白」はまっぴら

本記事は、sb 1.10R までで有効な手順です。

本当は技術的な裏づけが取れてから書きたかったのですが、あまりにも初期で躓くケースが多いのでさくっと。

sb のインストールをされる方の質問で一番多く見受けられるのが、admin.cgiが真っ白になりますというものです。どなたも決まってパーミッションは確認しました。間違っていませんと仰られます。しかしながら、特に最初の起動時に画面が真っ白になるのは 100% の確率でファイル・ディレクトリのパーミッションが間違っているかファイルが足りないケースなのも事実です。

とはいえ、もう一度確認してなどと打ち返されても質問者にはどうしようもありませんよね。確認して分かるものなら最初からはまってませんから…。せめてヒントのひとつもほしいというものでしょう。

ということで、自力解決の助けとして、どこで何が失敗しているかを知るための admin.cgi 改造手順を公開します。

では、例によってお約束事を。

  • 本記事は、あくまで admin.cgi にアクセスすると真っ白な画面が出る人のための対処法の説明です。他のエラーには適用しないで下さい。
  • どんな影響があるか分かりませんので、既に投稿された記事等がある場合は事前の data ディレクトリ配下のバックアップを強くお勧めします。
  • 対応バージョンは 1.10R のみです。将来のバージョンで同じように適用できる保証はありません。sb バージョン 1.11D では真っ白にならないように対応されたため、以降のバージョンではこの手順は必要ありません。
  • 本記事で紹介する改造は、原因が判明したら元に戻して下さい。
  • 本記事で紹介する改造を適用されたために発生したいかなる不具合にもふうこは責任を負いません。

今から手順の説明に入りますが、本手順を実行する前に admin.cgi にアクセスして、画面が真っ白になる現象が発生していることを確認して下さい。本手順は画面が真っ白になる場合以外に適用されてもうまく動作する保証がありません。最初は真っ白だったけど、いろいろ弄ったら違うエラーになってしまったという場合などでも絶対に適用しないで下さい。

画面を確認したら、admin.cgi をテキストエディタで開きます。テキストエディタは何でもいいですが、開いた時に改行がなくなって1行で表示されるものは避けて下さい。Windows の「メモ帳」は残念ながらアウトです。もし Web サーバーから Web 上でファイル編集できる機能が提供されていれば、それを活用するのも便利でしょう。「テキストエディタ」が分からない、と仰る方。…申し訳ありませんが、sb を使うのは少々お早いようです。

さて、sb 1.10R の admin.cgi はこうなっています。

#!/usr/bin/perl
# 
(中略:コメント)
# == copyright (C) SimpleBoxes 2004 ==

use strict;
use vars qw(...略...);
use vars qw(...略...);
use lib  qw(...略...);
require 'addlib.cgi' if (-r 'addlib.cgi');
require 'sbinit.pl';
exit(0);

これを、以下のように変更します。追加部分を強調表示してあります。

#!/usr/bin/perl
# 
(中略:コメント)
# == copyright (C) SimpleBoxes 2004 ==

use strict;
use vars qw(...略...);
use vars qw(...略...);
use lib  qw(...略...);
eval {
require 'addlib.cgi' if (-r 'addlib.cgi');
require 'sbinit.pl';
};
if ($@) {
	print <<ERROR;
<html>
<head><title>sb Error</title></head>
<body><p>$@</p></body>
</html>
ERROR
}
exit(0);

で、変更したスクリプトをサーバー上にアップロード(web サーバ提供ツールをお使いの場合は「保存」)して再度立ち上げると、真っ白ではなく以下のようなエラー文が表示されるようになります。

admin.cgi エラー表示画面

これは、init.cgi を開けませんでしたというエラーです。他のエラーの場合は、具体的にファイル名が出る場合もあります。

さて、このエラーとにらめっこして直すところは直して、うまいことようこそ画面が出た場合は、その場でユーザ名とパスワードを入力して一旦ログインしてから、ログアウトしてスクリプトを元に戻して下さい。そのまま閉じてしまうと余計な手間が増えます…。で、やっぱり分からないという場合はエラー文を添えて sb UsersGroup のパティオまでどうぞ。

なお、この変更をした後で 500 Internal Server Error が出るようになった、という方は admin.cgi の編集に失敗されています。ファイル内の記述や、アップロードした後のファイルパーミッションを確認して下さい。

コメント(日付順)

コメントする
  • 投稿を受け付けるには、JavaScript を有効にしてください。
  • URI は自動リンクされます。
  • HTMLタグは使えません(実体参照化されます)。