GMS > CGI版設置講座
はじめに
GMS利用したいと思っていただきましてありがとうございます。 m(_ _)m
CGI設置初心者の方でも設置できるようお助け講座です。
それでは講座スタート


必要なもの
  • CGIを動かすホームページスペース
  • 動かすスクリプト(ここではGMS_Perl)
  • 他のスキンを利用する場合 利用するスキンファイル
  • FTPソフト(ここではFFFTP)
以上のものがそろったら 下の項目へ

必ずGMS_Perlとスキンが同じ仕様のものを利用してください。


Perlに対応しているかチェック
ご利用のホームページがCGI(Perl5)に対応しているかチェックをします。
利用しているホームページの公式サイトへのヘルプ等に載っているので
チェックしてみてください。

その時に Perlのパスなども書いてありますのでそれをメモっておいてください。
/usr/local/bin/perl
などと書いてあると思います。

○主なプロバイダのCGI情報ページ
  @nifty : http://homepage.nifty.com/cgi/index.htm
  BIGLOBE : http://homepage.biglobe.ne.jp/help/shiyou5b.html
  OCN : 独自CGI使用不可
  ぷらら : http://www.plala.or.jp/access/community/phps/ucgi_main.html
  DION : 独自CGI使用不可

○無料Webスペース
  Yahoo!ジオシティーズ : CGI使用不可
  infoseek isweb : http://isweb.www.infoseek.co.jp/Icont?sv=IW&pg=iw_spec.html
  AAA!CAFE : http://fh.aaacafe.ne.jp/cgiperl.html

情報ページに書かれていることをちゃんと読みましょう。

初心者は、読まない・調べないのでそれで分からないと言ってるならまず読む!
ここでは理解できなくても次の項目等に行ったときにわかるかもしれませんよ。


確認できたら 下の項目へ


スクリプト

GMS_Perlのスクリプトを解凍すると以下のファイルが出てきます
解凍ソフトの設定で、フォルダ内にファイルが無いフォルダが作成されないようになっているとlist、image、resフォルダが作られないことがあります。
list、image、resフォルダが無い場合、自分でlist、image、resフォルダを作成してください。
config.cgiにてフォルダ名を変えた場合、設定した名前のフォルダを作成してください。


ファイルを作成する時の注意ですが、
UNIX、Linux系OSでは大文字と小文字は区別されますので注意してください。




GMS標準スキンで設置できてから、他のスキンを設置されるのをお勧めいたします。他のスキンにして設置できないとなると、サポートが大変になりますので、できるだけ標準スキンで設置してからにしてください。


他のスキンを使用する場合、そのスキンファイルも解凍すると


skinのフォルダの中には以下のようなファイルが入っています。
ファイルが↓より多い場合もあれば少ない場合もあります、これはスキンによって違います。


他のスキンを使用する場合、GMS_Perlを解凍したフォルダに他のスキンを解凍した
ファイル(skin.cgi、skinフォルダなと)を、ドラック&ドロップで上書きしてやります。

*この方法だと使用しないスキンファイルが残ることがあります。残したくない場合は、最初から入っているskin、skin.cgiを消した後に使用するスキンをコピーしてください。


↓のようなダイアログがでますが すべて上書き を選んで上書きしてください。

以上できましたら下の項目へ


スポンサー


Perlパス設定
Perlのパス設定をします。
memberlist.cgiをエディタ(メモ帳など)で開きます。

テキストが表示、書き換え保存できるソフトであれば何でもかまいません。



開いたものの一番上を見ると
#!/usr/local/bin/perl
と書いてありますよね? これを講義「Perlに対応しているかチェック」の時に調べたパスに変更します。

必ずパスのところに書いてなくても
#!
をつけます

書き換えたら 上書き保存してください。下の項目へ

初心者さんはPerlのパス以外変更しないでください。
config.cgiには設定項目がありますが、初心者はまずこの設定ミスでエラーを出します。Perlのパス以外の設定は変更しないでください。
初期設定で動作後、設定を変更すれば設定を変更後エラーが出た場合、自分で設定した設定に問題があったのがわかります。


サーバーにアップ
動作チェックのために一度サーバーにアップしてみます。
ここで利用するのはAAA!CAFEのサーバーを利用させていただきます。
アップの際に大事なのがURLとホストの初期ディレクトリになります。

ホストの初期ディレクトリとはこのディレクトリの中に入れたものが取得されたURLにアクセスしたら表示されます。

私はWindows等でいうフォルダのことをサーバー上ではディレクトリとして説明していますがフォルダとディレクトリは同じものと考えてください。
ソフトの設定ではフォルダとなっているかもしれません。

ここでは以下のようなアカウントを取得したとします。(このアカウントは架空のものです)
 アカウント情報
 ==============
 アカウント名(ユーザ名) : DEIYU-STUDIO
 パスワード : XXXXXXXXXXXX
 FTPサーバ(ホスト名) : f22.aaacafe.ne.jp
 URL : http://f22.aaacafe.ne.jp/~DEIYU-STUDIO/
 ホストの初期フォルダ:/public_html
FFFTPでf22.aaacafe.ne.jpに接続すると


このように表示されます。 
このほかにログ画面が表示されているはずですがここでは見えなくしてあります。
右側に初期ディレクトリが表示されてますよね?
この中にファイルをアップします。

接続設定に初期ディレクトリ設定をした場合このように表示されるはずです


次に実際にファイルをサーバーにアップします。
初期ディレクトリに移動してない方は、右側のリストの初期ディレクトリ(ここではpublic_html)を
ダブルクリックします、そうするとしたの画像の画面になるはずです。


次に実際にファイルをアップしますが、サーバーによってはCGIファイルをアップする
場所が決められていること
があります。(/cgi-binディレクトリなど)
Perlに対応しているかチェック項目の時に調べたページに載っていると思いますので
そちらを参照してください。
/public_htmlというディレクトリがないサーバーもあります。

AAA!CAFEについては制限されていませんのでこのまま設置します。
/public_htmlの中にmemberlistディレクトリを作ってみます。

FFFTPのメニューから
コマンド→ フォルダの作成 を選びます。 そうすと↓のようなダイアログが表示されます


そのダイアログに作成するディレクトリの名前を設定します。
ここでは「memberlist」とします。
*infoseekなどは /public_htmlの初期ディレクトリの中に「cgi-bin」というディレクトリを
作成してその中にmemberlist等のディレクトリを作りましょう。
逆に「cgi-bin」の作成を禁じているサーバーもありますので注意が必要です。
この辺は「Perlに対応しているかチェック」講座の時に調べたページの中に書いてあるとおもいますのでよく読みましょう。



入力してOKボタンを押しますと右側のリストにmemberlistが加わります。
 


次に右側のリストから先ほど作成したmemberlistをダブルクリックで
memberlistのディレクトリに移ります。

ダブルクリックすると↑こうなるはずです。

実際にファイルをアップロードします。
アップロードしたいファイル(フォルダも含む)を左側のリストから選択しいます。
他のフォルダに移りたい場合は、左側のここではE:\memberlistと なっている隣にフォルダが開いた状態のアイコンをクリックしてください。
フォルダ変更のダイアログがでますので  ... となったボタンを押してmemberlistのファイルがあるディレクトリを選択します。
ここではE:\memberlistを選択しています。

 
移動したらmemberlist.cgi等などが表示されていますよね?
そしたら左側のリストのどこでもいいので右クリックします。

そうするとメニューが表示されるはずです。
あとはそのメニューから全てをアップロードを選択します。
*アップロードの時の注意ですがツールバー(メニュー下のアイコン郡)の中にAとBのファイルが重なったアイコンがあるのでそのアイコンが押されているか
チェックしてください。 上の画像みたいにチェックされた状態ならOKです。


選ぶと、アップロードが自動的に始まります。
アップロードが終わるまで待ちましょう。


アップロードが終了すると左右のリストとも同じものが表示されます。


ファイルのアップが完了したら、次は権限を与えないといけませんので
パーミッション設定をします。 下の項目へ


パーミッションを設定する
次にパーミッションの設定をします
右側のリストからパーミッションを設定したいファイルを右クリックするとメニューがでます。
属性変更を選んでください。


パーミッション設定ダイアログが表示されます。
memberlist.cgiなら755又は701
memberlog.cgiなら666又は600
ディレクトリなら777又は705と変更します
*設定するパーミッションはサーバーによって違います。
「Perlに対応しているかチェック」講座、当サイトの配布ページを参考に設定しましょう。



設定したらOKボタンを押します。

memberlist.cgi、memberlog.cgi、counter.cgi、list、res、imageだけパーミッション設定すれば動くはずです。
次の項目にパーミッション設定構成を書いておきますのでご覧ください。

できたら「アクセスしてみる」の項目へ


パーミッション設定/設置構成例
ファイル名 パーミッション suEXEC導入の場合*
memberlist.cgi 755 705
memberlog.cgi 666 600
counter.cgi 666 600
sublib.pl 644 644
kentweb.pl 644 644
jcode.pl 644 644
cgi-lib.pl 644 644
config.cgi 644 604
skin.cgi 644 604
image/ 777 705
list/ 777 705
res/ 777 705
skin/ 755 705
skinフォルダ内ファイル 644 644

*最近ではセキュリティーの関係でsuEXECを導入しているサーバーが増えております。
 CGIスクリプトをいれるフォルダが777の場合その中のCGIが動作しなくなるので注意してください
 このサーバーでは従来のパーミッション設定では動作いたしません。
 一部 644、600と書いてあるのは644でも動作しますが600をお勧めいたします。
 600の場合、外部からそのファイルにアクセスしても表示されません。
 たとえhtmlという拡張子がついていてもパーミッションが600の場合表示されません。
 htmlスキンファイルなどを他の人から見られたくない場合などそうしたほうがいいかもしれません
 htmlスキンファイルはいいのですが画像ファイル等は600にしないでください。
 詳しくはサーバーを設置しているプロバイダ、サーバー会社のホームページのFAQなどに
 載っていると思うのでそちらを参考にしてください。



public_html / index.html (トップページ)
    |
    +-- memberlist / memberlist.cgi  [755]
            |        memberlog.cgi   [666]
            |        counter.cgi     [666]
            |        sublib.pl       [644]                      
            |        kentweb.pl      [644]
            |        jcode.pl        [644]
            |        cgi-lib.pl      [644]
            |        config.cgi      [644]
            |        skin.cgi        [644]
            |
            +-- image [777] /
            |
            +-- list [777] /
            |
            +-- res [777] /
            |
            +-- lock [777] /
            |
            +-- skin [755] / main.htmlなど


[suEXEC導入サーバーの場合]
public_html / index.html (トップページ)
    |
    +-- memberlist / memberlist.cgi  [705]
            |        memberlog.cgi   [600]
            |        counter.cgi     [600]
            |        sublib.pl       [644]                 
            |        kentweb.pl      [644]
            |        jcode.pl        [644]
            |        cgi-lib.pl      [644]
            |        config.cgi      [604]
            |        skin.cgi        [604]
            |
            +-- image [705] /
            |
            +-- list [705] /
            |
            +-- res [705] /
            |
            +-- lock [705] /
            |
            +-- skin [705] / main.htmlなど


アクセスしてみる

URLについてですがここでは
/public_htmlの中にmemberlistを作成しましたよね?

 URL : http://f22.aaacafe.ne.jp/~DEIYU-STUDIO/
 ホストの初期フォルダ:/public_html
初期ディレクトリ(/public_html)
   ||
http://f22.aaacafe.ne.jp/~DEIYU-STUDIO/
と考えてみてください。

だとしたら /public_htmlの中にmemberlistを作成したのですら
/public_html/memberlistになりますよね?
/public_html = http://f22.aaacafe.ne.jp/~DEIYU-STUDIO/から

http://f22.aaacafe.ne.jp/~DEIYU-STUDIO/memberlist
となりますよね?

memberlistのディレクトリの中のmemberlist.cgiにアクセスしたいのだから
URLはhttp://f22.aaacafe.ne.jp/~DEIYU-STUDIO/memberlist/memberlist.cgi
となります。

Internet ExplorerでURLにアクセスして見ましょう。


エラーが出ずに表示されたなら成功です。
あとはconfig.cgi、skin.cgiを設定して再アップしてみましょう。

設定(管理パスワードなど)はconfig.cgiで設定できます。
skin.cgiにも設定があります。

以上 講座終わりです。

これより下の講座は特殊な設定が必要なサーバーの設定講座です。
特殊なサーバーは@nifty、wakwak、biglobeなどがあります。


特殊なサーバーの設定(その1)
CGIと同じ場所に画像、htmlファイルを置いても表示されないようになっているサーバーや、
同じディレクトリに入れてもCGIを実行する場合は、CGI専用のURLにアクセスしないといけない場合などの設定方法を紹介します。

>CGIと同じ場所に画像、htmlファイルを置いても表示されないようになっているサーバーの設定
@nifty、wakwakのサーバーはこれに該当すると思います。

xyyyyにつきましてはユーザー様ごとに違います。

@nfityの場合
ホームページ : http://homepagex.nifty.com/yyyy/
CGIアドレス : http://hpcgix.nifty.com/yyyy/

wakwakの場合
ホームページ : http://www.xx.wakwak.com/~yyyy/
CGIアドレス : http://www.xx.wakwak.com/~yyyy/cgi-bin/

ftpでサーバーに接続すると、
  +--homepage/ (@nifty場合) +--public_html/ (wakawakの場合)
  |
  +--cgi-bin/
  |
  +--bin/
  |
  +--dev/
  |
  +--etc/
  |
  +--usr/ (wakawakの場合なし)
  |
  +--lib/
7つのディレクトリがあると思います。
この中で実際に利用するのは、homepage/ (public_html/)とcgi-bin/になります。
これ以外のディレクトリはシステムが利用しますので、かまわないでください。

homepage/ (public_html/)の中に入れたファイルは
@nifty : http://homepagex.nifty.com/yyyy/
wakawak : http://www.xx.wakwak.com/~yyyy/
というURLにアクセスした時に表示されます。

cgi-bin/の中に入れたファイルは
@nifty : http://hpcgix.nifty.com/yyyy/
wakawak : http://www.xx.wakwak.com/~yyyy/cgi-bin/
というURLにアクセスした時に表示されます。

cgi-bin/ディレクトリの中にindex.htmlを入れてみたらどうでしょうか?

@nifty : http://hpcgix.nifty.com/yyyy/
wakawak : http://www.xx.wakwak.com/~yyyy/cgi-bin/
でアクセスできるのでindex.html付け加えて
@nifty : http://hpcgix.nifty.com/yyyy/index.html
wakawak : http://www.xx.wakwak.com/~yyyy/cgi-bin/index.html
アクセスできると思うでしょうがアクセスできません、ここが他のサーバーと違うところです。

@nifty、wakwakのサーバーでは、cgi-bin/の中に入れた
htmlファイルや画像ファイルが表示できなくなってます。

それではCGIで画像が使う場合表示できませんね? どうしましょうか?
もちろん解決策があります。
それは、画像はhomepage/に入れて、CGIからはそちらを参照してやればいいだけなのです
  +----- homepage/ (@nifty場合) public_html/ (wakawakの場合)
  |    |
  |    +---- memberlist/
  |         |
  |         +---- image/ キャラ画像用のディレクトリ
  |         |
  |         +---- skin/ 画像、スタイルシート
  |                memberlist.cgiで読み込むhtmlはここに入れない
  |    
  |    
  +----- cgi-bin/
       |
       +---- memberlist/ memberlist.cgi
            |    memberlog.cgi
            |    config.cgi
            |    cgi-lib.pl
            |    counter.cgi
            |    jcodeg.pl
            |    kentweb.pl
            |    skin.cgi
            |    sublib.pl
            |
            +---- list/
            |
            +---- res/
            |
            +---- skin/ htmlファイルなど
                   画像、スタイルシートなどはここに入れない
homepage/ (public_html/)の中にmemberlistというディレクトリを作成します。
ここではmemberlistという名前のディレクトリを使っていますが別の名前でもかまいません。

homepage/ (public_html/)の中のmemberlistディレクトリの中にimageディレクトリと
skinファイルで使用する、画像ファイルやスタイルシートなどを入れます。
memberlist.cgiで読み込むhtmlスキンファイルはこちらに入れてはいけません。

cgi-bin/ の中にもmemberlistというディレクトリを作成します。
cgi-bin/memberlistの中に、CGIスクリプトをすべて入れます。
cgi-bin/memberlistの中にMEMディレクトリとskinファイルで使用するhtmlスキンを入れます。

なぜcgi-bin/の中にhtmlファイルを入れても表示できないのに入れるかと言いますと、
htmlスキンはhtml自体に直接アクセスして表示することはできませんが、
memberlist.cgiが読み込んで表示するので問題ありません。

ここまでできましたらパーミッション設定などを、配布ページを見ながら設定してください。

あとはconfig.cgiとskin.cgiの設定です
config.cgiの
$ImgDir = "./image/";
となっているものを
@nifty : $ImgDir = "../../homepage/memberlist/image/";
wakawak : $ImgDir = "../../public_html/memberlist/image/";

$ImgDirのmemberlistの部分は上で作成したディレクトリ名を入れてください。

画像ファイルをURL指定で設定するので $ImgUrlType = 1; にします。
#画像ファイルのURLを指定する (0=no 1=yes)
$ImgUrlType = 1;


アップしたフォルダのURL設定を以下のように設定します。
@nifty : $Img_Url= "http://homepagex.nifty.com/yyyy/memberlist/image/";
wakawak : $Img_Url= "http://www.xx.wakwak.com/~yyyy/memberlist/image/";

skin.cgiの$SkinUrl = "";を以下のように設定します。
@nifty : $SkinUrl= "http://homepagex.nifty.com/yyyy/memberlist/skin/";
wakawak : $SkinUrl= "http://www.xx.wakwak.com/~yyyy/memberlist/skin/";

設定を変更したファイルをサーバーにアップロードしてmemberlist.cgiにアクセスしてみてください
正常に表示されると思います。


特殊なサーバーの設定(その2)

>CGIとhtmlをアップできるフォルダが同じだが、CGI表示のアドレスが違うサーバーの設定
biglobeのサーバーはこれに該当すると思います。

xyyyyにつきましてはユーザー様ごとに違います。

biglobeの場合
ホームページ : http://wwwxx.biglobe.ne.jp/~yyyy/
CGIアドレス : http://cgi.wwwxx.biglobe.ne.jp/~yyyy/

@nifty、wakwakなどのサーバーではCGIとhtmlのファイルが違うディレクトリに入れないと
いけませんでしたが、biglobeでは同じディレクトリでアクセスできますがCGIの場合は
http://cgi.wwwxx.biglobe.ne.jp/~yyyy/というアドレスでアクセスする必要があります。
       public_html/
           |
           +memberlist/ memberlist.cgi
            | memberlog.cgi
            | config.cgi
            | cgi-lib.pl
            | counter.cgi
            | jcodeg.pl
            | kentweb.pl
            | skin.cgi
            | sublib.pl
            |
            +---- list/
            |
            +---- res/
            |
            +---- image/
            |
            +---- skin/ 画像、スタイルシート、htmlファイルなど 
public_html/の中にmemberlistというディレクトリを作成します。
ここではmemberlistという名前のディレクトリを使っていますが別の名前でもかまいません。

スクリプトはすべてmemberlistに入れますが設定で画像等だけは違うアドレスに設定してやります

config.cgiとskin.cgiの設定

config.cgiの
画像ファイルをURL指定で設定するので $ImgUrlType = 1; にします。
#画像ファイルのURLを指定する (0=no 1=yes)
$ImgUrlType = 1;


アップしたフォルダのURL設定を以下のように設定します。
$Img_Url= "http://wwwxx.biglobe.ne.jp/~yyyy/memberlist/image/";

skin.cgiの$SkinUrl = "";を以下のように設定します。
$SkinUrl= "http://wwwxx.biglobe.ne.jp/~yyyy/memberlist/skin/";

設定を変更したファイルをサーバーにアップロードしてmemberlist.cgiにアクセスしてみてください
正常に表示されると思います。


スポンサー





Copyright(C) by deiyu. All rights reserved.