SAK ソフトウェア FAQ - CGI-Perl
CGI-Perl
■お使いのサイトで CGI の実行がサポートされている必要があります。
サイトの FAQ などで、ご確認下さい。
Perl5 が動作可能と記載されていれば、大丈夫かと思います。
Perl4 での動作は未検証です。
■Perl へのパスは、パッケージは「#!/usr/local/bin/perl」となっています。
サイト仕様が「#!/usr/bin/perl」など、標準設定値と違えば、*.cgi の
1 行目を全て修正して下さい。
■CGI の実行に特別な仕様のあるサイトでは、標準のままでは使えない可能性が
高いです。サイトの FAQ など、ご確認下さい。
■CGI に広告が割り込むサイトで、クッキー(Cookie) ヘッダを破壊するタイプ
では、動作に支障のでる CGI プログラムがあります。
主要 CGI は、HTML クッキーが選択設定できるようになっていますので、
「1 HTML クッキー」 $jcookie = 1; にして設置して下さい。
カウンタのテキスト表示にも広告が割り込む場合は、画像カウンタ表示を
選択してお使い下さい。
■*.cgi、*.pl、*.txt、*.dat 等のテキストファイルは、アスキー(テキスト)
形式で FTP アップロードして下さい。
*.gif、*.jpg、*.jpeg 等の画像ファイルは、バイナリ形式で FTP アップロー
ドして下さい。
お使いの FTP ツールに自動判定で拡張子の設定が正しくされているようなら、
自動判定モードで FTP アップロードすると簡単です。
■パーミッションは、サイト仕様によって微妙に違うのが常ですが、標準的には
次の設定で動作する可能性が高いようです。
どうしてもうまく動作しない場合は、全て 777 に変更してテストして下さい。
・掲示板系
cgi-bin/ 755
s3mb/ 755
w_img/ 755
w_s3mb/ 777 ← ファイル作成権 777 に変更
w_s3mb_b/ 777 ← ファイル作成権 777 に変更
*.pl 644
*.cgi 755 ← 実行権 755 に変更
・カウンタ系
cgi-bin/ 755
s3cnt/ 755
*.gif 644
*.cgi 755 ← 実行権 755 に変更
w_sys/ 777 ← ファイル作成権 777 に変更
*.* 644
■解析型カウンタや掲示板、絵日記など、ホームページ容量の消費にも注意して
下さい。カウンタが空白になってしまったり、掲示板に空の投稿となるような
場合、容量限度に到達している可能性があります。
@nifty の場合は、残り 1MB ぐらいで、実質残り 0 に限りなく近いです。
ファイルラベル容量や最小アロケーションサイズが加味されていない場合が
あります。
容量限度に到達した場合、
- ホームページ容量を増やす
-- @nifty では、5MB 単位で増量できます。
- 解析型カウンタでは、アクセスログ、リンクログを記録しないように
設定できます。
各設定によって、w_sys/ 内の次のファイルを削除して下さい。
-- アクセスログ
w_s3alog.txt
w_s3alog.old
-- リンクログ
w_s3llog.txt
w_s3llog.old
- 掲示板では容量限度を下げて「容量限度による自動整理」機能を有効に
活用して下さい。
設定変更後にテスト投稿すれば、オーバ容量分のメッセージが自動削除
されます。
■高負荷の CGI を動作させると、CGI-Server によっては障害発生時に
動作フォルダ内に core と言う名前のログファイルが出力されます。
core ファイル対策については、次の FAQ を参考にして下さい。
Q-【CGI】 core ファイル対策(CGI 障害ログ)
■@nifty のユーザホームページは CGI をサポートしています。
そもそもが @nifty で動作するのを大前提で開発していますので、
まったく問題ありません。
■公開パッケージは標準的なサイトイメージのフォルダ構成になっていますが、
梱包の「読んでね.txt」に従って、@nifty イメージに簡単にできます。
@nifty では、cgi-bin に HTML ファイルを置けないので、パッケージに
w_img/ と言うフォルダがあるものは、これだけを homepage エリアに FTP
する必要があります。
1. 解凍すると、次のフォルダイメージができます。
s3mb/
w_img/
w_s3mb/
w_s3mb_b/
*.pl
*.cgi
2. w_img/ フォルダが含まれるものは、次のようにローカルで配置します。
そして、VB ツールで「アイコン画像ベース URL」が「.」となっているの
を 「http://homepage2.nifty.com/???/s3mb」(最後の / はいらない) の
ように自分の homepage URL に修正します。
cgi-bin/
s3mb/
w_s3mb/
w_s3mb_b/
*.pl
*.cgi 755 ← 実行権 755 に変更
homepage/
s3mb/
w_img/
3. w_img/ フォルダがないものは、次のようにローカルで配置します。
cgi-bin/
s3sr/
w_s3sr/
*.pl
*.cgi 755 ← 実行権 755 に変更
4. フォルダ毎 @nifty へ自動判定 FTP して、cgi-bin/ に FTP した *.cgi
のファイルだけをパーミッション 755 に変更します。
以上で、動作します。
■biglobe の CGI 環境は @nifty とほぼ同等です。
梱包の「読んでね.txt」に従って、@nifty イメージを参考に設置して下さい。
biglobe では、cgi-bin に HTML ファイルを置いても相対アクセスはできない
ので、パッケージに w_img/ と言うフォルダがあるものは、これだけを通常
public_html/ エリアに FTP する必要があります。
1. 解凍すると、次のフォルダイメージができます。
s3mb/
w_img/
w_s3mb/
w_s3mb_b/
*.pl
*.cgi
2. w_img/ フォルダが含まれるものは、次のようにローカルで配置します。
そして、VB ツールで「アイコン画像ベース URL」が「.」となっているの
を 「http://www5?.biglobe.ne.jp/~???/s3mb」(最後の / はいらない) の
ように自分の homepage URL に修正します。
フォルダとファイルの各パーミッションは、横の数値で実績があります。
public_html/
cgi-bin/ 755
s3mb/ 755
w_s3mb/ 755
w_s3mb_b/ 755
*.pl 644
*.cgi 755
s3mb/ 755
w_img/ 755
*.gif 644
3. w_img/ フォルダがないものは、次のようにローカルで配置します。
フォルダとファイルの各パーミッションは、横の数値で実績があります。
public_html/
cgi-bin/ 755
s3sr/ 755
w_s3sr/ 755
*.pl 644
*.cgi 755
4. 実際の CGI 呼び出しは、サーバが違いますので、
http://cgi.www5?.biglobe.ne.jp/~???/cgi-bin/s3mb/w_s3mbix.cgi
のようになります。
■トクトクでは、広告が割り込みますので、必ず、「HTML クッキー」の設定に
して設置下さい。
1. 解凍すると、次のフォルダイメージができます。
s3mb/
w_img/
w_s3mb/
w_s3mb_b/
*.pl
*.cgi
2. トクトクでは、cgi-bin/ へ s3mb/ ごと FTP するだけです。
フォルダとファイルの各パーミッションは、横の数値で実績があります。
cgi-bin/ 701
s3mb/ 701
w_img/ 701
w_s3mb/ 701
w_s3mb_b/ 701
*.pl 600
*.cgi 755
■広告割り込みサイトでは、CGI によるクッキー出力が無効になる場合が多いです。
・主要フリー CGI ソフトは、全てクッキー問題に対処可能です。
・標準の設定で、クッキーヘッダが破壊される、または、クッキーがテキスト
文字として表示されるサイトでは、
$jcookie = 0;
|_ 0 CGI クッキー(通常)
1 HTML クッキー
CGI クッキーが使用できないサイトでのみ $jcookie = 1;
に設定して下さい。
と、$jcookie = 1; にして下さい。
VB6 修正ツールが梱包されているソフトでは、「1 HTML クッキー」を選択
して、一括修正します。
手作業では、該当する全ての CGI を $jcookie = 1; に修正します。
・$jcookie = 1; でも対処不能、または、$jcookie = 1; に対応していない
CGI ソフトは、自力でクッキー対応修正していただいて問題ありません。
Q-【CGI】 実行できない (Internal Server Error 他)
■*.pl、*.cgi、*.txt、*.dat は、FTP のファイル転送がテキスト(アスキー)形 式か自動判定転送でないと動作しません。 バイナリ転送していないか確認して下さい。 ■パーミッションを 755 に設定して試してみて下さい。 ■Perl 開始記述が「#!/usr/local/bin/perl」でないサイトが、まれにあるよう です。サイトの説明に従って、CGI 1 行目の開始記述を「#!/usr/bin/perl」 などに全て修正して下さい。 ■「Internal Server Error」は、Perl 開始記述の「#!/usr/local/bin/perl」 をまずチェックしてみると良いです。
■各ソフト梱包の設置要項と説明書のフォルダロケーションを確認して下さい。
■CGI で扱う画像には、単純にリンクで処理するものと、プログラムでオープン
するものとがあります。
・例えば、アクセスカウンタのカウンタ画像や画像アップ掲示板の添付画像
(w_s3mb_b/) は、CGI が直接オープンして処理しますので、標準のまま設置
して下さい。ロケーションを変更する必要はありません。
・例えば、画像アップ掲示板のデザインアイコン(w_img/) などは、
単純リンクで表示しますので、cgi-bin/ へ HTML が置けない @nifty の
ようなサイトでは、homepage/ ロケーションに変更する必要があります。
Q-【CGI】 ファイアウォール - プライバシーブロック対応済み
■ファイアウォールで、現 URL や直前の URL 情報をプロックしている場合でも 私の公開している主要フリー CGI は正常に動作します。 ・但し、アクセス解析のページカウントだけは、情報が引き取れないため、 加算されません。(エラーにはなりません。) うちの全体アクセスの 8% がプライバシーブロックを設定されているようです。 私も当然ながらプロックしています。
Q-【CGI】 企業サイト、商用サイトでの通常利用は可能です (利用規程)
■SAK 提供のソフトウェアを企業サイト、商用サイト、イントラネットで利用し
ても、一般的な用途であれば、特に制限はしません。
但し、次の項目に該当する場合は、有償とさせていただきます。
(フリーCGI 利用規程 - 2002.08.06 改訂)
・企業、個人にかかわらず、私の著作権表示を削除、または、変更する場合。
(デザインの変更は、これに該当しません。)
Q-【CGI】 著作権表示を外す場合は、新規開発扱いになります
・企業、個人にかかわらず、私のソフトウェアの一部コードでも使用している
ものをシェアウェア、その他有償ソフトとして、配布・販売・運用する場合。
・企業、個人にかかわらず、私のソフトウェアをレンタルサービスとして提供
する場合。(無料レンタル掲示板など)
Q-【CGI】 企業、個人にかかわらず、レンタルサービスとしての利用は有償です
・企業、個人にかかわらず、私のソフトウェアを有料コンテンツとしてサイト
に設置運用する場合。有料サイト内に設置運用する場合は、常識の範囲で判断
して下さい。
・企業、個人にかかわらず、私のソフトウェアの設置設定料、カスタマイズ費用
を徴収する場合。但し、ホームページ作成請負の一部として私のソフトウェア
を設置設定する場合は、実工数程度の常識範囲であれば問題ありません。
Q-【CGI】 著作権表示を外す場合は、新規開発扱いになります
■著作権表示があれば、カスタム仕様にカスタマイズしても 25,000円 〜 150,000円程度ですが、 著作権表示を外すと、新規開発扱いになってしまいます。 仕様にもよりますが、150,000円 〜 500,000円程度かかります。 ■商用サイトでも、公開フリーCGI の著作権表示をそのままにして お使いになっているサイトも多いです。 恐らく、ご予算とかけ離れているかと思いますまで、 著作権表示をそのままにして、フリーCGI としてのご利用をおすすめします。
Q-【CGI】 企業、個人にかかわらず、レンタルサービスとしての利用は有償です
■企業、個人にかかわらず、私のソフトウェアをレンタルサービス (無料レンタル掲示板など) として提供する場合は有償とさせていただきます。 尚、レンタルサービス用の機能は標準では持っておりませんので、 仕様にもよりますが、1,500,000円 〜 2,500,000円程度かかります。
■無料ホームページサイトなどで、広告割り込みが自動で行われるとき、CGI の
出力しているクッキーヘッダが無効になる場合があります。
・主要フリー CGI ソフトは、全てクッキー問題に対処可能です。
・標準の設定で、クッキーヘッダが破壊される、または、クッキーがテキスト
文字として表示されるサイトでは、
$jcookie = 0;
|_ 0 CGI クッキー(通常)
1 HTML クッキー
CGI クッキーが使用できないサイトでのみ $jcookie = 1;
に設定して下さい。
と、$jcookie = 1; にして下さい。
VB6 修正ツールが梱包されているソフトでは、「1 HTML クッキー」を選択
して、一括修正します。
手作業では、該当する全ての CGI を $jcookie = 1; に修正します。
・$jcookie = 1; でも対処不能、または、$jcookie = 1; に対応していない
CGI ソフトは、自力でクッキー対応修正していただいて問題ありません。
■通常、CGI のファイルアクセスは相対パス指定で問題ないのですが、一部の サーバではファイルアクセスに絶対パス指定が必要です。 サイトの FAQ など参考にして下さい。
■最新バージョンの投稿制限機能
・掲示板関係の個別セキュリティ機能に加えて、一般的な投稿制限が可能にな
りました。
・リロードによる再投稿やうっかり同じテキスト流し込みは、二重投稿禁止の
制限がかかります。本文が同じ投稿はできません。
・連続投稿は、返答も含めて標準では 10 件までになります。
(管理者 ID による投稿は無制限)
オーバーすると、該当ユーザは設定時間が経過しないと投稿禁止になります。
もちろん、別のユーザは投稿できます。
・クッキーを使わない投稿を禁止にもできます。
この制限をかけると i-mode での投稿も不可能になると思います。
・投稿制限関係の設定値は、「読んでね.txt」に従って修正して下さい。
VB 修正ツールは、画面には表示しませんが、指定 CGI に行ったこの修正を
他の CGI に一括反映します。
・投稿総容量による自動整理機能に注意して下さい。
件数限度に満たなくても使用総容量が容量限度を超えると、自動的に削除さ
れます。ホームページ容量にゆとりがあれば大きめに設定されると良いです。
Q-【CGI】 LZH 書庫を解凍するとファイルが見当たらない
■通常、LHA ツールで解凍するとサブフォルダも含めて解凍されますが、お使い のツールによっては、トップフォルダ分しか解凍されない可能性があります。 この場合、x パラメタで解凍して下さい。 【例】 lha x s3cb330e
■掲示板や絵日記などデータファイル名に「~」文字が含まれるものがあります。
お使いのサーバで「~」文字が使用できないと、該当する公開ソフトウェアは
使用できません。
一般的な UNIX、Linux、Windows サーバでの稼働実績はあります。
・お使いの FTP ソフトがファイル名の「~」文字を許さない場合もあります。
この場合は、サンプルデータは FTP アップロードできませんが、新規投稿
に問題なければ掲示板や絵日記 CGI が利用できます。
■高負荷の CGI を動作させると、CGI-Server によっては障害発生時に
動作フォルダ内に core と言う名前のログファイルが出力されます。
これが、1MB 〜 6MB と強烈な容量で一気にホームページ容量限度に到達して、
他の CGI 動作に支障をきたします。
予想外にホームページ容量が増加したような場合、*.cgi のあるフォルダ全部
に core ファイルが出来ていないかチェックして下さい。
意図せず core ファイルができていれば削除して問題ないようです。
■SAK Streets 公開の CGI では、「s3sh_e コンテンツ検索」が高負荷の CGI と
なります。
■core ファイル対策としては、できてしまうフォルダにサイズ 0 バイトの core
ファイルをあらかじめ FTP で設置しておき、core のファイルパーミッションを
000 にしてしまう手が考えられます。
SAK Streets の s3sh_e にこの対策を実施し、ただいま検証中です。
・サイズ 0 のファイルを作成するには、エクスポローラで、右ボタンクリック、
新規作成、テキスト文書で「新規テキスト文書.txt」を作成すると楽です。
・この「新規テキスト文書.txt」のファイル名を「core」に同じくエクスポロ
ーラで変更します。拡張子はなし、ファイル名は小文字です。
× 「core.」
× 「core.txt」
× 「CORE」
○ 「core」
・できた core ファイルの FTP 先は ????.cgi の設置フォルダです。
例えば cgi-bin/s3sh/w_s3shix.cgi の配置であれば、cgi-bin/s3sh/ の中
に置きます。w_s3shix.cgi と同じ場所と言うことです。
・FTP 後に、FTP ツールで core のファイルパーミッションを 000 にします。
つまり、CGI-Server の障害が発生してサーバが core をダンプしようと
した時に、既に書き換え不能の core ファイルがあるので実際の出力がされ
ないと言う仕組みです。
■海外サーバに CGI を設置して、日本時間との時差を補正するには、
全ての CGI の localtime(time) を localtime(time + 補正秒) と全箇所
修正して下さい。
例えば 1 時間 30 分早ければ
localtime(time + 5400)
遅ければ
localtime(time - 5400)
とします。
■各公開パッケージに FTP 対象のフォルダを明記していますが、一般的には、 s3mb、s3cnt、w_sys 等の CGI や データの親フォルダを FTP します。 ■読んでね.txt、設置要項.txt、rs3mb370.exe、rs3mb370.ini、crtsch.exe、crtsch.ini などのローカル PC で利用するドキュメントやツールプログラムは FTP する 必要がありません。
Q-【CGI】 VB 修正ツール - COMDLG32.OCX 実行時エラー
■CGI ソフトに梱包されている rs3mb320.exe などの VB 修正ツール実行で、
COMDLG32.OCX 関係のエラーメッセージが表示されるときは、コモンダイアロ
グコンポーネント comdlg32.ocx が正しく登録されていない、または、インス
トールされていない可能性があります。
1. VB6 コモンダイアログコンポーネントを次のページよりダウンロード
http://sak.cool.coocan.jp/w_sak3/soft/public/vb6run/comdlg.htm
2. comdlg.lzh を解凍するとできる setup.exe を実行してインストール
します。これで動作すると思います。
3. 以上でも動作しない場合、VB6 ランタイムのレベルが低すぎるか、あまり
にも足りません。ベクターで「VB6基本ランタイム」で検索して、1MB 〜
3MB 程度のランタイムで試してみて下さい。
http://www.vector.co.jp/
■CGI ソフトに梱包されている rs3mb320.exe などの VB 修正ツール実行で、 文字化けして表示される場合、VB6 ランタイムが正しくインストールされて いないか、レベルが低すぎます。 ベクターで「VB6基本ランタイム」で検索して、1MB 〜 3MB 程度のランタイム で試してみて下さい。(SP3 以上が無難です。SP5 での実績あり。) http://www.vector.co.jp/