| ■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へ戻る |