sbで行こう


ENTRY

[tips] データと CGI を分離して設置する

大昔に書いた記事の草稿が出てきたので、投稿しときます。

sb は、配布されたままの状態で設置すると HTML ファイルと CGI ファイルが同じディレクトリ配下に格納されます。しかし、レンタル Web スペースの中には CGI を格納するディレクトリと HTML を格納するディレクトリを分けなければならないところもあります。本記事では、そういう Web スペースをお使いの場合に sb で CGI ファイルと HTML ファイルや画像ファイルを分けて設置する方法を説明します。

なお、本記事の説明の適用が必要になる方は以下のような方です。

  1. CGI ファイルは /cgi-bin 配下、HTML ファイルは /public_html 配下に格納して下さい等、CGI ファイルと HTML ファイルを別に格納する必要がある旨明記されているサーバをお使いの方。
  2. 配布された状態のまま設置して admin.cgi にアクセスした時、管理画面に CSS や画像が全く反映されないサーバをお使いの方。

その他、単に HTML ファイルと CGI ファイルで格納場所を分けたい、というだけの方もこの手順で可能になります。

なお、sb では必ず HTML ファイルと CGI ファイルを同じサーバ上に格納しなければなりません。CGI を使用する際に HTML を格納したサーバとは別のサーバが割り当てられる Web スペースでは sb を使用することができませんので、ご注意下さい。

まず、単純に HTML と CGI に分ける手順を示します。なお、本設定において URI は HTML ファイルが http://www.ほげ.jp/、CGI ファイルが http://www.ほげ.jp/cgi-bin/sb/ であるものとします。

+ public_html/(HTML ファイル格納ディレクトリ)
|  +- index.html
|  +- style.css
|  +- log/
|  +- img/
|  +- template/
|
+ cgi-bin/(CGI 格納ディレクトリ)
   +- sb/
       +- admin.cgi
       +- sb.cgi
       +- cnt.cgi
       +- mb.cgi
       +- init.cgi
       +- data/
       +- doc/
       +- lock/
       |   +- lock
       |   +- cnt
       +- lib/
       |   +- lang/
       |       +- ja.pl
       |       +- ja/
       |       +- en.pl
       |       +- en/
       |       +- _parts/
       +- ライブラリファイル(*.pl)
       +- ext/
       +- plugin/

ファイル構成を変えると、init.cgi に新たな設定が必要です。上記の構成で設定する場合は以下のようになります。

#!/usr/bin/perl
# 
# sb - weblog management system
# == scripted by Takuya Otani ========
# == copyright (C) SimpleBoxes 2004 ==

# 初期設定ファイル

DataDir ./data
DataSuffix .XXX
ScriptPath http://www.ほげ.jp/cgi-bin/sb/

# 以下、追加設定(必要に応じて設定してください)
LockDir ./lock/
BaseSrv http://www.ほげ.jp/
BaseDir ../../public_html/
LogDir log/
ImgDir img/
HttpProxy 
TempConv 1
PluginDir ./plugin/

必ず変更が必要な設定を強調表示してあります。詳細は以下の通りです。

ScriptPath
CGI ファイル格納ディレクトリの URI を指定します。
BaseSrv
init.cgi に追加して、HTML ファイル格納ディレクトリの URI を指定します。なお、init.cgi で記述せず、admin.cgi で初回アクセスに成功した後「環境設定」メニューの「サーバアドレス」を変更することで反映することもできます。
BaseDir
CGI ファイル格納ディレクトリから HTML 格納ディレクトリへの相対パスを記述します。相対パスとは、サーバ内のファイルの位置を相対的に表すものです。例では/cgi-bin/sb からディレクトリを2つ上がって、/public_html へ下りるという意味の記述になっています。

後は通常の手順と同じになります。

なお、admin.cgi にアクセスした際に CSS や画像が表示されない場合は、さらに設定が必要になります。

まず、上の説明のファイル構成から、新たに以下のファイルの格納場所を変更します。

+ public_html/(HTML ファイル格納ディレクトリ)
|  +- index.html
|  +- style.css
|  +- log/
|  +- img/
|  +- doc/
|  +- template/
|  +- lib/
|      +- lang/
|          +- ja/
|          +- en/
|          +- _parts/
|
+ cgi-bin/(CGI 格納ディレクトリ)
   +- sb/
       +- admin.cgi
       +- sb.cgi
       +- cnt.cgi
       +- mb.cgi
       +- init.cgi
       +- data/
       +- lock/
       |   +- lock
       |   +- cnt
       +- lib/
       |   +- lang/
       |       +- ja.pl
       |       +- en.pl
       +- ライブラリファイル(*.pl)
       +- ext/
       +- plugin/

具体的には、lib/lang 配下にある ja.pl、en.pl 以外のファイル、および doc 配下のファイルを全て HTML 格納ディレクトリに移動します。lib/lang 配下にあるファイルは、admin.cgi の表示に使用するパーツファイルです。

次に、init.cgi には以下の記述を追加します。

#!/usr/bin/perl
# 
# sb - weblog management system
# == scripted by Takuya Otani ========
# == copyright (C) SimpleBoxes 2004 ==

# 初期設定ファイル

DataDir ./data
DataSuffix .XXX
ScriptPath http://www.ほげ.jp/cgi-bin/sb/

# 以下、追加設定(必要に応じて設定してください)
LockDir ./lock/
BaseSrv http://www.ほげ.jp/
BaseDir ../../public_html/
LogDir log/
ImgDir img/
HttpProxy 
TempConv 1
PluginDir ./plugin/
TempSrv http://www.ほげ.jp/lib/lang/
TempDir ../../public_html/lib/lang/
HelpSrv http://www.ほげ.jp/doc/
TempSrv
移動させた admin.cgi 用ファイルパーツへの URI を指定します。_parts ディレクトリを含まない形で指定します。
TempDir
CGI 格納ディレクトリから admin.cgi 用ファイルパーツへの相対パスを指定します。例では/cgi-bin/sb からディレクトリを2つ上がって /public_html/lib/lang へ下りるという指定になっています。
HelpSrv
ヘルプファイルの URI を指定します。

以上で特別な設定はおしまいです。パーミッションをチェックして、admin.cgi の初回起動をして下さい。

コメント(日付順)

番号札 on 2005/07/04 12:53:

初めまして。
sbをiswebに設置したばかりですが、こちらの丁寧な解説のお陰でスムーズに運びました。
(index.html,style.css,log/,img/,template/ のみの移動で済みました)
本当にありがとうございます。
これからも寄らせていただきます。

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