CMSでホームページの作成[Perl CGI]



CGI Script
CGI Scriptについて CGI_Logo

CGI (Common Gateway Interface の略)


 サーバー内でプログラムを起動
インタラクティブ(双方向性)な 仕様で様々な言語で記述することができます。
代表的な言語として perlがあります。

HTML:

ブラウザ → サーバ → サーバ内:ブラウザに要求されたHTMLをそのまま返します。
ブラウザ ← 要求されたHTML
通常HTMLで作成された言語は作成者が変更を加えない限り同じ物を表示続けます。


CGI:

ブラウザ → サーバ → サーバ内:要求されたCGIプログラムが起動され実行された結果を返します。
ブラウザ ← 実行された結果


 CGIで作成されたページは、作成者はもちろん、訪問者が更新したり、 訪問者のリクエストに応えて毎回違ったページを動的に表示させる事ができます。
掲示板やカウンタ、アンケート、ブログなどがそうです。


CGI(perl)動作環境
お使いのプロバイダ・レンタルサーバーのホームページで確認するか問い合せる
・CGIをUPするプロバイダ・レンタルサーバーがCGIの設置を許可しているか?
または種類による制限(負荷の掛かるプログラム)
・許可している場合でもプロバイダが準備したものだけが使用可能(ホームページで確認) 実行系のプログラムゆえにセキュリティ上管理が大変、プロバイダに良くみられる。
・メールプログラムが使えるか?
・CGIの設置場所?(通常はcgi-bin/に入れる?、サーバ側の決まりを優先し、指定されているディレクトリにアップしてください。)
※他の言語使用する場合でも同様にホームページで確認するか問い合せる
フリーCGI(自分で作成・依頼したもの・CGIフリーサイトよりダウンロードしたもの)
・perl パス:usr/local/bin/perl または usr/bin/perl (perlはバージョンにより数字が入る場合は例perl5などとする)
・Sendmail パス:usr/lib/sendmailまたはusr/bin/sendmail
・パーミッションの設定(UNIX系 属性:実行できるか、読み書きできるか)
パーミッションについて

 CGIを実行させるにはパーミッションの変更は必須である(プログラムをUPした時にFTPでパーミッションの変更をさせる)
実行系は755ですがセキュリティ上705でも動作テストすれば705にして下さい。
読み書きは666ですが上記同様606でも動作すれば606にしてください。
レンタルサーバーによりセキュリティの為にSUEXECを導入、実行系は700、読み書きは600にしなければならないレンタルサーバーがあります。

カスタマイズ
カスタマイズについて

CGIスクリプトにはHTML書かれている部分がありHTMLの記述を知っていればある程度のレイアウトの変更が出来ます。
またCGI作者によっては設定を変えることにより色・レイアウトなどが変更できます。
ですがより高度なホームページを作成したい方はHTML言語・CSS・Perlはある程度の知識が必要です。

※CGIスクリプトは、Web上でいろんなソフトをフリーで提供してくれてるCGIサイトが沢山あります。
利用規定をしっかり守りご使用ください。
当然ただで借りるんですからリンクは当然の義務かと思います。
また配布サイトには使い方の説明もあります。良く読んでご使用ください。


※ CGIは、サーバーのコンピュータが処理するため負荷がかかります。設置には充分お気を付けください。
不完全なスクリプトを実行したり、 あいまいな知識で作成したスクリプトを実行させるとサーバがダウンすることもありえます。
多大な人に迷惑を掛ける事もあります。
借りているレンタルサーバー上ではテストをしては行けません。
事前にローカルでテストをしてからご利用ください。
ご自分で出来ない場合は無理をしないで業者にお願いするか詳しい人にお願いしてください。
ローカル環境の作成にはANHTTPD・Apache/PerlScriptはActivePerlなどがあります。
最後にCGIには環境変数というものがあります。
不用意な書き込み、誹謗中傷するような事の無いよう充分お気をつけください。