ホームページを作るにはどうすればよいのか? ファイル転送・SSL・メール送信の仕組み・CGIなどをやさしく解説します
ホームページのお助けサイト 〜はじめてホームページを作る方のためのサイトです〜
トップページ | インフォメーション | プロフィール | 更新履歴 | メルマガ | お問い合わせ 

CGIについて              

■CGIついて
 
CGIとはWWWサーバーで、プログラムを実行させる仕組みのことです。
htmlファイルと同じように、行わせたい処理をファイルに書き込みます。
htmlファイルのように、単に書かれた内容を表示するのではなく、掲示板やメール、アクセスカウンターなど
複雑なやりとりができます。
 
サーバーに負荷をかけることになるので、CGIの使用を禁止しているところもあります。
共有サーバーは何人ものひとが利用しています。ひとりが負荷の高いCGIを使うと、同じサーバー内にホームページ 
を置いている全員に影響が出ます。
画面表示が遅くなったり、メーリングリストにメールを送っても反映されなくなります。 
 
またCGIプログラムにミスがあって、暴走したままになると、サイトの閲覧が不可能になります。
(訪問者はCGIの暴走だという理由を知りませんから、つながらないサイトに文句を言うことになります。
無関係の人がとばっちりを受けるわけです)。
 
CGIは扱いに注意を要します。CGIは誤った組み方をすると暴走するからです。
htmlファイルなら間違っても暴走しません。
(文法的におかしな部分は無視され、書かれていないものとして扱われます) 
 
 
また掲示板のように、CGIのなかにはファイルへ書き込むものもあります。
パーミッションの設定でも言及していますが、書き込み権限が与えられているということは、同時にそのファイルを
削除できるということです。このため、誤った設定をしてしまうと、セキュリティ面が弱くなります。
プロバイダーやレンタルサーバーがCGIの利用を不可としていたり、制限しているのは以上の理由からです。
 
 
ここではメール用CGIをとりあげて説明していきます。
ホームページを運営するからには、メール用CGIの使用は必須です。
SSLで保護されたページを作っても、<Form mailto:question@xxxx.ne.jp >などと書いてしまうと、訪問者の
メーラーが立ち上がってしまい、暗号化されずに送信されてしまうからです。
どこに設置し、何を記述すればよいのか?
 
 
パスの読み方・設置の仕方
 
メール送信用のCGIを置くべき場所はどこなのか? 
CGIを使ったことのない人は、ファイルを置くべき場所が分からず、つまずいてしまいます。
 
あなたがホームページを作る場合、ファイルはpublic_htmlフォルダ内に置かねばならないとしましょう。
さて、メール送信用のCGIを入手して、ファイルを開いたところ次のような記述がありました。
(CGIファイルの細かい記述は省略してあります)
 
 
メールプログラムの位置を示すものとして、
$mailprog = '/usr/sbin/sendmail';
という記述があります。
重要なので、何を意味しているのか考えてみましょう。
 
この記述をみて、次のような解釈をしたひと。解釈を誤っていることになります。
(ですが、厳密にいうと動かないわけではありません。だから余計ややこしくなります)。
 
 
画面写真のような配置をしたひとは、こんな解釈をしているのではないでしょうか?
「usrフォルダというのは自分用に作られたフォルダのことなのだろう。
つまり、public_htmlフォルダのことだ。そのなかにsbinフォルダを作成して、さらにsendmailフォルダを作成する。
そして、ネット上から取ってきたCGIファイルをsendmailフォルダ内に格納する……」
残念ながら、誤った解釈をしています。
 
$mailprog = '/usr/sbin/sendmail';
とは、CGIの格納場所を指示しているのではありません。
実は、usr/sbin/sendmail フォルダというのは、すでに作成されています。では、どこにあるのだ? と言われると、
権限不足で見れないのです。
 
このあたりを厳密に知ろうとすると、UnixやLinuxの知識を要求されるため、イメージ図をまじえて簡単に説明します。
(イメージ図:ご利用のサーバーが必ずしも下図のような構成になっているとはかぎりません)
 
 
この図はサーバーの構造を示しています。一部のフォルダは省略してあります。
レンタルサーバを借りて、ホームページを作成しているひとは、イメージ図中ので囲まれた部分のみ
権限を与えられています。
このなかに xxxx.html や xxxx.cgi といったホームページを構成するファイルを格納して、権限の設定を行うこと
になります。
 
さて、メール用CGIの記述を振り返ってみましょう。
 
 
この記述は、メール用プログラムの入った位置(パス)を指定しています。
イメージ図の内にあるファイルのことです。当然、権限不足なので、見れません。
  
 
処理の流れ
 
メール送信が行われるまでの流れを解説します。
 
1.メール送信ボタンが押されると、処理がCGIファイルに渡されます。
  (送信画面となる html ファイルも、 CGI ファィルも public_html フォルダ内にあります)
 
2.CGI ファイルに書かれた処理が行われます。入力項目のチェックや、確認画面の表示といったものです。
 
3.権限不足で見れないsendmailプログラムへ処理が渡されます。
   このプログラムによって、メールが送信されます。
 
ホームページからメール送信を行えるようにするとき、いろんな知識を要求されます。
ファイルの配置場所、CGI ファイルの読み方、処理の流れ……。
CGI ファイルはたまに不具合を含んだものがあります。違和感があれば別の CGI に変えてください。
 

 
以下、余談になります。
さきほど、「厳密にいうと動かないわけではない」といいました。
解釈を誤っている場合です。
ちょうど下のような配置になっているはずです。
 
 
この配置で動かないわけではありません。
サーバーにアップロードすると次のようになります。
 
public_html内の構造です。
 
sbin内の構造です。
 
この場合、自分が取得したCGIの格納先を public_html/sbin/sendmai にしています。
処理の流れを追ってみます。
 
1.送信ボタンを押すと、このCGIファイルへ処理が渡されます。
2.ファイルに記述されている処理が行われます。
  たとえば入力項目(自分の名前とかメールアドレスとか)のチェックが行われます。
3.権限不足で見れないsendmailプログラムへ処理が渡されます。
  このプログラムがメール送信を担当します。
 
CGIの格納先を、サーバー屋が指示しているなら、それに従ってください。
また自分で格納先を作るときは、sbinなどという最初からサーバーに存在するフォルダを作らないようにしましょう。
(ふつう、自分で作ることはしません)
 
 
 
 
 
 
 
 
 
TOPへ戻る




Copyright (C) starthp.com, All Rights Reserved.