小規模Webサイト向け CMS 「すぐ使えるCGI」のサポート情報

ディレクトリ構成と環境変数の設定例

最終更新日: 2012-10-05

概要

「すぐ使えるCGI」のディレクトリ構成は変更可能です。環境別に典型的な設定例をご紹介します。

このページの目次

  1. 一般的な設定
  2. Web 用ディレクトリ配下に CGI 専用ディレクトリがある場合
  3. Web 用ディレクトリとは別に CGI 専用ディレクトリがある場合
  4. Windows の場合の設定例
  5. テンプレートディレクトリの階層を変える(Ver. 4.3 以上)

凡例

グレー字のディレクトリは、製品によっては含まれていないものです。ダウンロードした製品に含まれていなければ設定不要です。
Basic認証などでアクセス制限をする場合には青字のディレクトリについて制限を行って下さい。

一般的な設定

本番運用の際は、書き出しディレクトリ(webdir/)は必ずその他のディレクトリから離れた位置に移動して下さい。
これは、書き出しディレクトリは一般の訪問者の方がアクセスするのに対し、その他のディレクトリはサイトの管理者だけがアクセスするからです。

下記は最も一般的な設定例です。

ディレクトリの設置例

/ (ルートディレクトリ)
   |-- public_html/
        |-- admintool/          ← Basic 認証の場合このディレクトリに設定
        |    |-- admin/
        |    |-- data/
        |    |-- tempfiles/
        |    |-- templates/
        |
        |-- webdir/

環境変数の設定

$conf{web_dir} = '../../webdir/';
$conf{relative_web_dir} = '../../webdir/';

Web 用ディレクトリ配下に CGI 専用ディレクトリがある場合

HTML ファイルなどを設置する通常の HTML 用ディレクトリの中に cgi-bin/ などの名前で CGI 専用ディレクトリがある場合の例です。
この場合、admin/ とは分けて webdir/ と tempfiles/ を通常のコンテンツディレクトリに配置するのがポイントです。

ディレクトリの設置例

/ (ルートディレクトリ)
   |-- public_html/
        |-- webdir/
        |-- tempfiles/
        |
        |-- cgi-bin/
             |-- admintool/        ←Basic 認証の場合このディレクトリに設定
                  |-- admin/
                  |-- data/
                  |-- templates/

環境変数の設定

$conf{file_dir} = '../../../tempfiles/';
$conf{relative_file_dir} = '../../../tempfiles/';
$conf{web_dir} = '../../../webdir/';
$conf{relative_web_dir} = '../../../webdir/';

Web 用ディレクトリとは別に CGI 専用ディレクトリがある場合

CGIを、通常のHTMLファイルとは別に、cgi-bin/ などの名前の決められた専用ディレクトリに設置しなければならないサーバでの設置例です。
webdir/ と tempfiles/ は通常のコンテンツディレクトリに配置します。

ディレクトリの設置例

/ (ルートディレクトリ)
   |-- htdocs/
   |    |-- webdir/
   |    |-- tempfiles/
   |
   |-- cgi-bin/
        |-- admintool/        ←Basic 認証の場合このディレクトリに設定
             |-- admin/
             |-- data/
             |-- templates/

環境変数の設定

$conf{file_dir} = '../../../htdocs/tempfiles/';
$conf{relative_file_dir} = '../../../tempfiles/';
$conf{web_dir} = '../../../htdocs/webdir/';
$conf{relative_web_dir} = '../../../webdir/';

設定のポイント

/htdocs/ がコンテンツディレクトリ( /htdocs/index.html などがトップページ)、/cgi-bin/ がCGI専用ディレクトリの場合の相対パスと絶対パスの計算例を示します。

$conf{web_dir} の相対パスの計算

/cgi-bin/admintool/admin/admin.cgi (起点)
  ↓
/cgi-bin/admintool/admin/  (自分と同じディレクトリ。相対パス = ./ )
  ↓
/cgi-bin/admintool/  (1つ上。相対パス = ../ )
  ↓
/cgi-bin/  (2つ上。相対パス = ../../ )
  ↓
/       (3つ上。相対パス = ../../../ )
  ↓
/htdocs/  (3つ上から1つ下。相対パス = ../../../htdocs/ )
  ↓
/htdocs/webdir/  (さらに1つ下。相対パス = ../../../htdocs/webdir/ ←これを指定 )


$conf{relative_web_dir} の相対パスの計算

http://www.example.co.jp/cgi-bin/admintool/admin/admin.cgi (起点)
  ↓
http://www.example.co.jp/cgi-bin/admintool/admin/  (自分と同じディレクトリ。相対パス = ./ )
  ↓
http://www.example.co.jp/cgi-bin/admintool/  (1つ上。相対パス = ../ )
  ↓
http://www.example.co.jp/cgi-bin/  (2つ上。相対パス = ../../ )
  ↓
http://www.example.co.jp/  (3つ上。相対パス = ../../../ )
  ↓
http://www.example.co.jp/webdir/  (3つ上から1つ下。相対パス = ../../../webdir/ ←これを指定 )

Windows の場合の設定例

Windowsで稼動させる場合は、絶対パスでないとアクセスできない場合があります。
相対パスでうまくいかない場合はドライブ名(「C:」など)からの絶対パスを指定して下さい。
プログラムに記載するディレクトリの区切は「\」(円マーク または バックスラッシュ)ではなく「/」(スラッシュ)です。

ディレクトリの設置例

C:(ドライブ名)
   |-- Inetpub/
        |-- wwwroot/
             |-- admintool/         ←このディレクトリをアクセス制限
             |    |-- admin/
             |    |-- data/
             |    |-- templates/
             |    |-- tempfiles/
             |
             |-- webdir/

環境変数の設定

$conf{data_dir} = 'C:/Inetpub/wwwroot/admintool/data/';
$conf{templatedir} = 'C:/Inetpub/wwwroot/admintool/templates/';
$conf{admin_templatedir} = 'C:/Inetpub/wwwroot/admintool/templates/admin/';
$conf{article_templatedir} = 'C:/Inetpub/wwwroot/admintool/templates/article/';
$conf{file_dir} = 'C:/Inetpub/wwwroot/tempfiles/';
$conf{relative_file_dir} = '../tempfiles/';
$conf{web_dir} = 'C:/Inetpub/wwwroot/webdir/';
$conf{relative_web_dir} = '../../webdir/';

イントラネット( Windows ドメイン)で使用する場合

イントラネット( Windows ドメイン)で使用する場合、アクセス制限に注意が必要です。

詳しくはこちらをご参照下さい。

テンプレートディレクトリの階層を変える設定

webdir/ と同じ階層に記事用テンプレートディレクトリを配置しておくと、オーサリングツールなどでのテンプレート編集が楽に行えます(Ver. 4.3 以上の製品のみ)。


ディレクトリの設置例

/ (ルートディレクトリ)
   |-- public_html/
        |-- admintool/          ←Basic 認証の場合このディレクトリに設定
        |    |-- admin/
        |    |-- data/
        |    |-- tempfiles/
        |    |-- templates/
        |         |-- admin/    ←管理画面用テンプレートの位置はそのまま
        |
        |-- webdir_desingcheck/     ←元の templates/article/ を移動
        |
        |-- webdir/

環境変数の設定

$conf{web_dir} = '../../webdir/';
$conf{relative_web_dir} = '../../webdir/';
$conf{templatedir} = '../templates/';
$conf{admin_templatedir} = '../templates/admin/';
$conf{article_templatedir} = '../../webdir_desingcheck/';

関連リンク

さらに詳しく