この設置解説を読んまずにサポートBBSに質問しないでください。
- InsertFileManager v2 基本設置手順
- PHPでインクルード
- SSIでインクルード
- その他
- Type-G v1からのバージョンアップ方法
- サポートや不具合に関して
一般的な設置イメージの例です
public_html (ホームディレクトリ等)
├
insert (705,755,777) インサートファイルディレクトリ
└
ifm (CGIを置く任意のディレクトリ)
├
ifm.cgi (700,705,755)A メインプログラム
├
jcode.pl (644)A 日本語ライブラリ
├
ifm.css (644)A CSSファイル
├
first_lib.cgi (644)A ライブラリ
├
database_lib.cgi (644)A ライブラリ
├
insert_lib.cgi (644)A ライブラリ
├
pagectrl_lib.cgi (644)A ライブラリ
├
manual_lib.cgi (644)A ライブラリ
├
bg.gif (644)B 画像
├
mbg.jpg (644)B 画像
├
hatena.jpg (644)B 画像
└
data (705,755,777)A データディレクトリ
├
category.cgi (600,606,666)A データファイル
├
group.cgi (600,606,666)A データファイル
├
filelist.cgi (600,606,666)A データファイル
├
database0.cgi (600,606,666)A データファイル
├
database1.cgi (600,606,666)A データファイル
├
database2.cgi (600,606,666)A データファイル
├
database3.cgi (600,606,666)A データファイル
├
database4.cgi (600,606,666)A データファイル
├
database5.cgi (600,606,666)A データファイル
├
database6.cgi (600,606,666)A データファイル
├
database7.cgi (600,606,666)A データファイル
├
database8.cgi (600,606,666)A データファイル
└
database9.cgi (600,606,666)A データファイル
ifmディレクト内のifm.cgiは実行可能、それ以外はすべて読み取り専用
dataディレクトリ内のファイルは全て読み書き可能
です。
( )内は パーミッション値です。
A は ASCII(アスキー)、 Bは Binary(バイナリー) でFTP転送してください。
■ 設置準備
- ifm.cgi をテキストエディタなどで開き次の設定をします。
- 行頭の #!/usr/local/bin/perl をあなたのサーバー用にあわせます。
(#! を先頭に付けてその後に続けて perlのパスを書きます)
- 設定1 $thisCGI = 'http://設置するフルURL';
[ このCGIの設置URLをhttpからのフルURL ]
これを設定しないと一切動きません
- 設定2 $charset =0;
サーバーのCharset [ 0:Shift_JIS 1:EUC-JP: 2:自分で設定]
あなたのサーバーに合わせてください。
設定2を 2:自分で設定の場合
#jcode.pl または jcode.pmに渡すコード指定
$char = '';
#METAタグに設定する文字コードセット
$char2 = '';
- 設定3 $jcodepl = './jcode.pl';
jcode.plの場所(日本語変換ライブラリ)
サーバーでモヂュール[jcode.pm]が使える場合は =''; のように空にしてください。
- 設定4 $insdir = '../insert';
インサート用ファイルを保存するディレクトリ [最後にスラッシュをつけない事!]
ifm.cgi置くディレクトリをhtaccessでアクセス制限する場合
かならず一階層上がってから、別のディレクトリにする事。
このCGI付属のパスワード方式を使う場合はifm.cgiと同じディレクトリ内に
insertディレクトリを作ってもいいですが、可能なら最上層に作るとSSIやPHPで記述しやすくなります。
ディレクトリの相対パスという物が微妙に苦手な人は最上層に作って指定してください。
- 設定5 $dir = './data';
広告のあなたのデータベースを格納しておくディレクトリ [最後にスラッシュをつけない]
データベースとパスワードなどを格納しておくディレクトリです。
設置イメージどおりなら変更不要
- 設定6 $refcheck = 1;
REFチェック[ 0:しない 1:する ]
このCGI以外から命令を受け入れるか入れないかです。
0にすると悪戯される危険性が増します
- 設定7 $pwdfile = 'pwd.cgi';
パスワード方式を利用する [使わない場合空に 使う場合は任意のファイル名 ]
.htaccess等で他人がこのCGIにアクセスできない方法を採っている場合は不要ですので '' にしてください。
必要な場合は拡張子を .cgi にする事で呼び出しで読まれなくなります。
- 設定8 通常設定不要:場所やライブラリ名を変更した場合は設定
$first_lib = './first_lib.cgi';
$insert_lib = './insert_lib.cgi';
$data_lib = './database_lib.cgi';
$page_lib = './pagectrl_lib.cgi';
$manual_lib = './manual_lib.cgi';
- 設定9 通常設定不要:独自のファイル名に変更する場合は設定
$groupfile = 'group.cgi';
$listfile = 'filelist.cgi';
$catfile = 'category.cgi';
$db_head = 'database';
- #設定10 $css = './ifm.css';
CSSファイルとパスです。
CGIと同じディレクトリに通常ファイルを置けない場合や
別のCSSファイルを使う場合に変更してください。
以上でCGI内部の設置前設定は終りです。
通常設置イメージどおりなら 設定1と2あたりをサーバーにあわせれば終わりです。
(注)について
URLの記入の仕方はイコール(=)の右辺のシングルクォーテーション内にURLを書き込みます。
シングルクォーテーションを省いたり、行末のセミコロン(;)を削除したりしないで下さい。
例:$thisCGI = 'http://artemis-cgi.com/ver2000/cgi-bin/manager.cgi';
■ 設置
- 設置イメージ通りに必要なファイルを転送します。
- 設置イメージ通りに必要なディレクトリを作ります。
- 全ファイル・ディレクトリについてパーミッションを設定・確認します。
補足:ファイルとパーミッション設定↓
- CGI実行ファイルはifm.cgiだけです。
- その他のlibのつくファイルはライブラリなので644でOK(読可能ファイル)
- ディレクトリは 777(実行読書可能)
705や755でも稼動するサーバーの場合はなるべく777を避けてください。
初心者はなるべく全ファイルを転送し、全ディレクトリを作っておく事。
■ 基本動作テスト
- STEP1 ブラウザで設置したifm.cgiにアクセスします。
- パスワード設定画面が出たらパスワードを設定
(パスワード方式の場合のみ)
- 初期画面(メニューボタンとその説明文)が出れば初期動作はOK
- STEP2 データベースファイル管理 テスト
- データベース管理メニューで登録や削除・修正を行ってみてください。
- データが登録、削除、修正できればOKです。
- カテゴリ名を自分の好きな名前に変えてみてください。
- STEP3 インサートファイル管理 テスト
- ファイルの作成や削除、コメントなどの修正を繰り返してみてください。
- リストだけではなくinsertディレクトリにファイル作成される、削除されるのが確認できればOKです。
- グループ名変更もやってみてください。
- STEP4 掲載広告コントロール テスト
- 事前にデータベース管理で文字列を適当に1つ登録して置いてください。
- 事前にインサートファイル管理で適当なファイルをひとつ作って置いてください。
- リストからファイルを選択し、データベース一覧から掲載する文字列を選択して
実行ボタンを押してください。
- 今実行したファイルが、リストの方で薄文字で掲載され、ファイル名をクリックして
掲載したデータが確認できればOKです。
- 次は確認・中止で掲載中止のテストもやってみてください。
これでCGI自体の基本動作テストは終りです。
この他にも、暇があれば次のテストをしておいてください。
あとはPHP記述、SSI記述方法をよく読んでHTMLファイルにインクルードの記述をします
■ 基本動作 エラーFAQ
- STEP1付近 Internal Server Errorが出る場合
- パーミッションが間違っている時
- Perlのパス #!/usr/local/bin/perlが間違っている時
- ライブラリ や jcode.plが無い時
- dataディレクトリがないと、パスワード登録ができません。
- パスワード設定でURLが存在しないとのメッセージが出る時は
ifm.cgiの設定1に設定したURLが間違っています。
- STEP2付近
- URLが存在しないとのメッセージが出る時は
ifm.cgiの設定1に設定したURLが間違っています。
- データベースファイルが作れませんというメッセージが出たら
dataディレクトリがある事を確認し、パーミッションも確認してください。
ディレクトリがない場合、また書き込み等の操作ができない場合にエラーが出ます。
-
- STEP3付近
- ディレクトリが開けませんでした と出る場合はifm.cgiの
設定1で指定してあるディレクトリが間違っています。
相対位置などをよく確認して設定しなおすなどしてください。
- ファイルが作れない場合ディレクトリのパーミッションをチェック
- STEP4付近
- METAタグなど表示されないタグを文字列として登録した場合は
確認ができませんので、普通の文字列や画像タグなどで試してください。
自分のサーバーで既にPHPを使った事のある人は次の読み込むための記述の方に進んでください。
■ここでは初めてPHPに触れる人向けに簡単に説明だけしておきます。
まず契約してるサーバーのインフォメーションやヘルプ、マニュアルで
PHPに関する情報を探してください。
◆サーバーのモヂュールとして動作する場合
『PHPファイルの拡張子は.phpです』と言うようなアナウンスだけある場合や
『モヂュールとして動作します』と言うアナウンスがある場合は
大抵、PHPを記述するHTMLファイルの拡張子を .phpに変更するだけで
HTMLソース内に記述するPHPの命令を動作させる事ができます。
◆PHPがCGIとして動作する場合
『PHPはCGIとして動作します』という表現がされている場合
この場合はPHPのpathと拡張子がアナウンスされているはずです。
例えば
パス:usr/local/bin/php
拡張子:cgi または php
この場合はPHPを記述するHTMLファイルの拡張子を指定された拡張子に変更し
ファイルの冒頭に
#!/usr/local/bin/php
と言う1行を書込む事でCGIとして動作させる事ができます。
.htaccessなどで自分で追記する必要がある時は
AddHandler cgi-script .cgi(指定された拡張子)
多分この1行を追加する事で使えると思います。
※この手の動作に関する問題点などは大抵FAQやマニュアルに載せているはずです。
契約サーバーの利用方法解説ページなどを良く探してみてください。
■インサートファイルを読み込ませる記述
◆ミスの少ない基本的な記述方法
広告でもヘッダーでもフッターでも、それを表示させる場所に
<?php
@readfile("http://・・・・・・/insert/インサートファイル名");
?>
と書込んでください。
多分これが最もミスが少ない方法だと思います。
一般的には相対パスで
<?php
@readfile("相対パス+ファイル名");
?>
の様に書きます。相対パスで迷わないような構成なら相対パスで書込んでください。
includeでもOKですが、インサートファイルを読み込むだけなのでreadfileで十分です
さて、この時の相対パスですが、これを書込むファイルから見たインサートファイルの場所です。
インサートファイルと同階層別ディレクトリにあるファイルなら'../insert/ファイル名'です。
どうしても相対パスが理解できない、わからない と言う場合はフルURLの方法にしてください。
テストの段階では
<?php
readfile("相対パス+ファイル名");
?>
の様に@をはずす事でエラーが出ているかページ上で確認できます。
通常は@をつけて置く事で、インサートファイルが見つからなくても
PHPのエラーメッセージが出力されないようにしておきましょう。
ファイル名の部分ですが、これはそのページが読み込むインサートファイルの名前です。
インサートファイル名はこのページから呼び出されている事がわかるような名前にしておく事で、
あとでifm.cgiで管理する時に直感的にわかりやすくなります。
例えばうちの場合は、Cv2_index, Cv2_download, 等とする事で Type-Cv2のどのページかと言う事など
インサートファイル名ですぐわかります。本人だけ理解できればいいですから。
同一ページ内に複数のインサートファイル読み込みを使う場合は
TOP、MID、BTM などの様なポジション毎にファイル名を分けていくといいでしょう。
Cv2_index_top,Cv2_index_btm, の様にカテゴリ_ファイル名_ポジションといった具合で名前をつけると
ほとんど直感的に自分では理解できるのではないでしょうか。
特にindexの様な全てのディレクトリで使ってしまうような名前の場合、分類用の接頭語をつけておかないと
あとでさっぱりわからなくなってしまいますので要注意です。
自分なりの分類法でうまくファイル名を名づけてください。
このv2からはコメント機能などもありますが、ファイル名はわかりやすく整理した方が楽です。
◆ページ内で複数箇所でインサートファイルを呼び出す場合 はもう少し工夫しましょう
安全確実な方法もいいのですが、さらに整理して記述する事で後々の管理を楽にします。
ページ冒頭に
<?php
$ins_head = '相対パス+ヘッダー';
?>
の様にファイル冒頭にインサートファイルまでの相対パスやフルURLと
このページで読み込むインサートファイル名の共通部分までを入れておきます。
あとは読み込ませたい場所に
<?php
$ADfile = $header . 'top';
@readfile($ADfile);
?>
この様に共通部分の後につけるポジション識別子をつけてreadfileします。
こうする事で、のちのちファイル名を全部変える時やディレクトリ変更する時など
変更すべき要素は全て冒頭にあるので、書き換える手間がスクロール要らずで楽になります。
大量のページを抱えている人はなるべく最初の時点で整理して簡略化しておきましょう。
◆同じ場所の広告をランダム表示させたい場合
一箇所の表示に対するインサートファイルを複数個作ります。
そして、どれを読み込むかをランダムで決める方法で行います。
この例は4個の広告ファイルをランダムでピックアップする方法です。
<?php
$path='相対パス';
$indx = rand(0,3);
$flist[0] = 'インサートファイル名1';
$flist[1] = 'インサートファイル名2';
$flist[2] = 'インサートファイル名3';
$flist[3] = 'インサートファイル名4';
$ADfile = $path . $flist[$indx];
@readfile($ADfile);
?>
ランダムで欲しい数字が4個なので 0〜3までの数字と言う事になります。
欲しい数に対して-1の数を青文字の3のところに設定してください。
ファイルリスト $flist[x]に関しては上で設定した数字と同じ数まで
ファイル名をリストアップして書き出しておきます。
これでランダムに表示させる事が可能になります。
ランダムを中止・休止させたい場合は、この記述を修正して
通常に戻すのもOKですが、上の例では4個のファイルの中身を同じ広告にしてしまえば
結果的にランダムをやめたのと同じ事になります。
また2個ずつ同じものにすれば1/2ランダムと言う事になります。
どこで調整するかはあなたの管理の方法しだいで決めてください。
SSIがわかってる人はSSIで読み込むための記述の方へ進んでください。
■SSIが使えるかどうかはプロバイダー、契約サーバーなどでアナウンスされています。
無制限にOKの所よりは多少の制限があるところが多いようです。
exec cmd は使いませんので include Fileが使えればそれでOKです。
なお通常使えるサーバーでも.htaccessで追記が必要な所も多いようです。
Options FollowSymLinks ExecCGI Includes
AddType text/html .shtml
AddHandler server-parsed .shtml
この程度の追記でOKでしょう。
.shtmlはSSIを有効にする拡張子の登録です。
これをhtmlにしてもいいのですが、できればSSIを使うファイルはshtml と言う風に分けましょう
■基本的なファイルの読み込ませ方 include
<!--#config errmsg="" -->
<!--#include file="相対パス+ファイル名" -->
または
<!--#config errmsg="" -->
<!--#include virtual="最上層からのインサートファイルのパス+ファイル名" -->
1つ目の相対パスとはSSIを書込むファイルからみた、読み込むインサートファイルまでのパスです。
2つ目の最上層からのパスとは httpから始まるフルURLの内「http://サーバー名」 までを省いたものです。
例えば insertディレクトリが 「 http://artemis-cgi.com/insert/ 」だとすると
virtualで指定する場合は /insert/ となります。
ファイル名の部分ですが、これはそのページが読み込むインサートファイルの名前です。
インサートファイル名はこのページから呼び出されている事がわかるような名前にしておく事で、
あとでifm.cgiで管理する時に直感的にわかりやすくなります。
例えばうちの場合は、Cv2_index, Cv2_download, 等とする事で Type-Cv2のどのページかと言う事など
インサートファイル名ですぐわかります。本人だけ理解できればいいですから。
同一ページ内に複数のインサートファイル読み込みを使う場合は
TOP、MID、BTM などの様なポジション毎にファイル名を分けていくといいでしょう。
Cv2_index_top,Cv2_index_btm, の様にカテゴリ_ファイル名_ポジションといった具合で名前をつけると
ほとんど直感的に自分では理解できるのではないでしょうか。
特にindexの様な全てのディレクトリで使ってしまうような名前の場合、分類用の接頭語をつけておかないと
あとでさっぱりわからなくなってしまいますので要注意です。
自分なりの分類法でうまくファイル名を名づけてください。
<!--#config errmsg="" -->
の部分は本来エラーがあった場合にSSIからのエラーメッセージではなく、
こちらの意図的なエラーメッセージを出力するものですが、
""で空白にする事で読み取りエラーが起きてもエラーメッセージを表示させないようにする為に使っています。
■改行と『特殊データ』について
このv2ではデータ入力フォームの改行について考え方が変わっています。
元v1ユーザーは気をつけてください。
■改行について
データベース管理で使っているテキストエリアフォームからの登録は
記入者が折り返した場所も無視して一切改行されません。
従ってページに表示される際に意図的に改行させたい場所がある場合は
そこに<br>を入れてください。
■特殊データ
特殊データについては設置後InserFileManagerのメニューの
使用説明書で説明してあります。
■インサートファイル内に書込まれるURL
つまりはデータベースに登録するデータが含んでいるURLソース部分に関して。
読み込まれるデータは、それを読み込んだHTMLファイルの一部としてHTMLソースで出力されます。
従って画像タグやアンカータグの様に SRCやHREFでURLを指定するタグを書込む場合は
必ずhttp://から始まるフルURLで書込んでください。
サーバー内の相対パスで書込んでしまうと、読み込むファイルの階層によって相対位置がずれて
表示されないトラブルが起きます。
通常アフィリエイトで使用する広告会社から拾ってくるソースは
画像も含め全てフルURLで書かれてるケースがほとんどなので問題はおきにくいですが
画像を自分のサーバーに置いて自作リンクをしてあげる場合や
広告ではなく自分のTOPページへのリンクをインサートファイルで行おうとする場合など
そのURLの指定の仕方に気をつけてください。
管理用パスワードを忘れた場合はdataディレクトリ内のpwd.cgiと言うファイルを
削除してください。削除後にCGIを呼出すと初期パスワード設定画面になりますので
パスワードを設定します。
CGIを初期化するにはinsertディレクトリとdataディレクトリの中身を
全て初期設置のときのファイルに交換すれば設置状態に戻ります。
このInsertFileManagerはType-Gv1のバージョンアップ版です。
互換性とデータなどの引継ぎなら柄の設置方法を書いておきます。
◆Type-Gv1からのバージョンアップ
インサートファイルはv1とまったく同じと考えてください。
そのままv1インサートファイルディレクトリを利用できます。
インサートファイルはHTMLファイルから呼び出されるファイルですから
移動させてしまうとHTMLファイルの方の呼び出し記述(SSIやPHP)を変更する必要が発生します。
従ってできるだけ同じ場所に置いたまま設置する事で余計な手間を省けます。
インサートファイルディレクトリを移動させない場合はHTMLファイル内の
PHPやSSIの記述はそのまま継続して利用できます。
またデータファイルもインポートする事で継続利用できます。
これらを踏まえて
インサートファイルのディレクトリ(デフォルトではinsert)はそのまま利用
HTMLファイルの記述もそのまま
データファイル(デフォルトではdatabase.cgi)もインポートが終わるまでそのままサーバーに置いておく
この3点を守れば簡単にバージョンアップできます。
設置後は、InsertFileManagerでデータのインポートなどを行う必要があります。
インサートファイルはボタンひとつでディレクトリ調査を開始して自動でリストアップされます。
データファイルはインポート画面でデータベースファイル(通常はdatabase.cgi)を指定する事で
これもそのままデータをインポートできます。
この様にインサートファイルをそのまま引き継ぐ場合は、インサートファイルの中身もそのまま引き継がれます。
◆Insert Sorc Manager との互換
このInsertFileManagerをSSIやPHPの使えないサーバ用に改造したものがInsertSourceManagerです。
なので、データやリストなどの記録物は全て互換があります。
サーバー変更などでIFM<->ISMの変更をする場合は
プログラムファイル ifm.cgi <-> ism.cgi の交換
ライブラリ xxxx_lib.cgi の全交換
データファイル内のfilelist.cgiを白紙(0バイトの空ファイル)にする
この3点でプログラム変更が可能です。
設置後は、InsertFileManagerでデータのインポートなどを行う必要があります。
インサートファイルはボタンひとつでディレクトリ調査を開始して自動でリストアップされます。
データファイルはインポート画面でデータベースファイル(通常はdatabase.cgi)を指定する事で
これもそのままデータをインポートできます。
この様にインサートファイルをそのまま引き継ぐ場合は、インサートファイルの中身もそのまま引き継がれます。
サポートや不具合などについてはサポート掲示板で受け付けています。
自分のわかる範囲でできるだけ問題点を詳しく書いてください。
このマニュアルを読んでも、ある程度試行錯誤しても駄目な場合は
サポート掲示板に書込んでください。
どうしても使いづらい点などがあれば
報告として書いていただけたらと思います。