フリーCGIスクリプト配布サイト。
特殊なサーバーでの設置例や注意すべき点を紹介します。説明の便宜上、CGI設置者のアカウントを account
としているので、この部分は自分のアカウントに読み替えてください。
CGIを別サーバーにアップロードしなければならない場合の設定方法です。
この場合、CGIと同じディレクトリに画像ファイルをアップロードしても表示できない事があるので、アイコン機能やファイルアップロード機能を持つCGIを設置する場合は注意が必要です。また、画像ファイルを格納するディレクトリを相対パスで指定できない事があります。
その場合、
#アイコン画像保存ディレクトリ(アイコン機能を使用しない場合は無効)
$iconfile_dir = 'http://your.page.addr/~account/icon/';
もしくは
#アイコン画像保存ディレクトリ(アイコン機能を使用しない場合は無効)
$iconfile_dir = '/~account/icon/';
のように、http://
から指定したり、/~account/
から指定すれば参照できる事が多いです。
ファイルアップロード機能のあるCGIの場合はファイルのアップロード先の指定にも注意が必要です。相対パスで指定することができない場合、
#アップロードファイル保存ディレクトリ
$upfile_dir = '/homepage/upfile/';
もしくは
#アップロードファイル保存ディレクトリ
$upfile_dir = '/public_html/upfile/';
と指定すればアップロードできる事が多いです。
また、CGIからの戻り先を指定する場合も注意が必要です。戻り先を相対パスで指定できない場合は以下のように http://
から指定してください。
#リンクの戻り先
$back_url = 'http://your.page.addr/~account/index.html';
詳しいことは各Webスペースのサポートページなどに記されているはずなので、そちらもご覧ください。
CGIを専用ディレクトリに設置する場合の手順を、Web Diary Professional を例に解説します。(Ver4.10以降対応。)
Web Diary Pro 初期設定の場合、CGI専用ディレクトリに設置できないファイルはアップロードファイル・サムネイル画像ファイル・アイコン画像ファイル・書き出し用HTMLファイルなどです。
この例でのサーバーの仕様は、CGI実行に関するプログラムを cgi-bin
内に置き、公開用のデータを public_html
内に置くサーバーとしています。さらに、cgi-bin
直下のファイルを呼び出す場合は http://your.page.addr/~account/cgi-bin/xxx.cgi
とし、public_html
直下のファイルを呼び出す場合は http://your.page.addr/~account/xxx.html
とするものとします。
今回は Web Diary Pro のプログラム用データを cgi-bin/diarypro/
に、Web Diary Pro の公開用のデータを public_html/diarypro/
に置くものとします。
まずはPerlのパスを設定後、一旦 cgi-bin/diarypro/
にすべてのファイルを設置します。また、public_html/diarypro/
内に data
と html
と skin
の3つのフォルダを作成しておきます。
次に cgi-bin/diarypro/skin/
から common.css
と common.js
を取り出し、public_html/diarypro/skin/
へ移動します。(CSSファイル・JSファイル・画像ファイルなどは、公開用ディレクトリに設置する必要があるデータです。)
さらに public_html/diarypro/html/
内に index.html
を作成します。(ファイルには何も書く必要はありません。)ディレクトリ構成は以下のようになります。(カッコの数値はパーミッションの値。)
home / cgi-bin / diarypro / diary.cgi [755]
| | diary-paint.cgi [755]
| | diary-tb.cgi [755]
| |
| +-- data /
| |
| +-- lib / ~略~
| |
| +-- skin / ~略~
|
+-- public_html / diarypro /
|
+-- data /
|
+-- html / index.html
|
+-- skin / common.css
common.js
次に cgi-bin/diarypro/skin/header.html
をエディタで開き、CSSファイルとJSファイルへのパスを絶対パスかルートパスに変更します。(http://
から指定するか、/
から指定します。)具体的には、以下のようになります。
<link rel="stylesheet" href="http://your.page.addr/~account/diarypro/skin/common.css" type="text/css" media="all" />
<script type="text/javascript" src="http://your.page.addr/~account/diarypro/skin/common.js"></script>
あとは cgi-bin/diarypro/lib/webliberty/App/Init.pm
をエディタで開き、初期設定を変更します。
まず、基本設定にある
html_file => './index.html',
この設定を以下のように変更します。(diary.cgi
から見た、トップページ用HTMLの書き出し先。)
html_file => '../../public_html/diarypro/html/index.html',
次にログファイルの設定にある
data_upfile_dir => './data/upfile/',
data_thumbnail_dir => './data/thumbnail/',
data_icon_dir => './data/icon/',
この設定を以下のように変更します。(diary.cgi
から見た、アップロードファイル・サムネイル画像・アイコン画像の保存先。)
data_upfile_dir => '../../public_html/diarypro/data/upfile/',
data_thumbnail_dir => '../../public_html/diarypro/data/thumbnail/',
data_icon_dir => '../../public_html/diarypro/data/icon/',
次にアーカイブファイルの設定にある
archive_dir => './archives/',
この設定を以下のように変更します。(diary.cgi
から見た、各記事用HTMLの書き出し先。)
archive_dir => '../../public_html/diarypro/html/archives/',
次に特殊サーバー用設定にある
data_upfile_path => '',
data_thumbnail_path => '',
data_icon_path => '',
archive_path => '',
この設定を以下のように変更します。(アップロードファイル・サムネイル画像・アイコン画像の保存先とHTMLの書き出し先の参照用URLになります。)
data_upfile_path => 'http://your.page.addr/~account/diarypro/data/upfile/',
data_thumbnail_path => 'http://your.page.addr/~account/diarypro/data/thumbnail/',
data_icon_path => 'http://your.page.addr/~account/diarypro/data/icon/',
archive_path => 'http://your.page.addr/~account/diarypro/html/archives/',
これで http://your.page.addr/~account/cgi-bin/diarypro/diary.cgi
にアクセスし、セットアップを行います。サイトのURLは http://your.page.addr/~account/cgi-bin/diarypro/
と指定しておきます。
以上で完了。設定のもっと詳しい意味とか Web Board Pro での実例とかはそのうちに用意したいと思います。(基本的に、diarypro
を boardpro
に読み替えればOKです。)
初めの設定が少し面倒なので、可能ならば .htaccess
とかいじってCGIプログラムと公開用ファイルを同じディレクトリに置けるようにした方が楽です。(言い訳。)
cgi-bin
ディレクトリ内に転送しなければ動作しません。cgi-bin
ディレクトリ内にHTMLファイルや画像ファイルをアップロードしても参照できません。http://homepage○.nifty.com/account/icon/
、アップロードファイル保存ディレクトリを http://homepage○.nifty.com/account/upfile/
に作成した場合は以下のように設定します。#アイコン画像保存ディレクトリ(アイコン機能を使用しない場合は無効)
$iconfile_dir = 'http://homepage○.nifty.com/account/icon/';
#アップロードファイル保存ディレクトリ
$upfile_dir = '/homepage/upfile/';
#アップロードファイル参照パス
$upfile_url = 'http://homepage○.nifty.com/account/upfile/';
cgi-bin
ディレクトリ内に転送しなければ動作しません。cgi-bin
ディレクトリ内にHTMLファイルや画像ファイルをアップロードしても参照できません。http://www.○○.wakwak.com/~account/icon/
、アップロードファイル保存ディレクトリを http://www.○○.wakwak.com/~account/upfile/
に作成した場合は以下のように設定します。#アイコン画像保存ディレクトリ(アイコン機能を使用しない場合は無効)
$iconfile_dir = '/~account/icon/';
#アップロードファイル保存ディレクトリ
$upfile_dir = '/public_html/upfile/';
#アップロードファイル参照パス
$upfile_url = '/~account/upfile/';
cgi-bin
ディレクトリ直下に転送しなければ動作しません。(cgi-bin
ディレクトリ内にディレクトリを作成して、その中にCGIを設置しても動作しません。)cgi-bin
ディレクトリ内にHTMLファイルや画像ファイルをアップロードしても参照できません。http://www.○○.hi-ho.ne.jp/△△/upfile/
に作成した場合は以下のように設定します。#アップロードファイル保存ディレクトリ
$upfile_dir = "$ENV{'HOME'}/html/upfile/";
#アップロードファイル参照パス
$upfile_url = 'http://www.○○.hi-ho.ne.jp/△△/upfile/';
cgi-bin
ディレクトリ内に転送しなければ動作しません。cgi-bin
ディレクトリ内に画像ファイル等をアップロードして参照することは可能ですが、CGIを呼び出す際のURLに注意してください。WebサイトのURLが http://www5*.biglobe.ne.jp/~account/
の場合、http://cgi.www5*.biglobe.ne.jp/~account/cgi-bin/diarypro/diary.cgi
と、URLにcgi.
を追加しなくてはなりません。