• ベストアンサー

アパッチについて

大変申し訳ありません。今、アパッチについて、勉強しようと思っているのですが、アパッチ(soft)の制御する役目って何でしょう。 インターネットをする際にHTTPDがあると思うのですが、クライアントがアクションを起こしたときにTCP/IPで情報がサーバに伝わり、その情報を解析するOSがアパッチの役目という考え方でよろしいのですか?でアパッチがCGIを判断したら、perlを起動したり、メールの判断だったらsendmailを動かしたりということなんでしょうか? 大変素人みたいな考えで申し訳ありませんが、ご教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • cocky
  • ベストアンサー率57% (232/402)
回答No.2

ApacheはOSではなく、「Apache=httpd」です。 実際に自分でApacheを入れたサーバを立ち上げれば一発でわかりますが(笑) httpdについてどこまで理解されているかもわかりませんが、基本的な考え方はfkimuraさんが下で書かれている通りです。 ただ少し補足すると、CGIについては、ApacheはOS(Linux,FreeBSD,WinNT,etc)に「こういうプログラムを動かすよう指示が来たからあとよろしくね」と命令を出すだけで、実際にそのプログラムをどの言語(C++、Perl、シェルスクリプトなど)で動かすかは、プログラム内の情報に従ってOSが判断します。 またsendmailを動かしたりすることはApache本体の機能ではなく、通常はあくまでCGIが行うことなので、正確には「Apache→CGI→sendmail」という感じです。 …とここまではApache 1.x系の話。 実は現在開発中のApache 2.x系では、Apache自体がマルチプロトコルサポートになる(つまりhttp以外のプロトコルもApacheで処理できるようになる)ので、追加モジュールさえあれば、Apacheがメールサーバの役割を果たす(=Apacheがsendmailの代わりになる)こともできるようになってしまいます。 とはいえ、まだ現状ではそういった追加モジュールは用意されていないようなので、あくまで「理論上はできるはず」という話に過ぎませんが。 ただ最終的な理想型としては、Apacheがサーバに送られたパケットを見て、http用、ftp用、POP3/SMTP用などのモジュールを起動するというような形態を想定しているようなので、今後はApacheはWebサーバというよりも「inetd.confの代わり」という方向に開発が進んでいくと思われます。

poposan
質問者

お礼

ありがとうございます。大変参考になりました。 頭が整理されて、すっきりとした気分です。 これからも、いろいろ問題が出ると思いますが、少しずつ勉強していきたいと思います。

その他の回答 (1)

  • fkimura
  • ベストアンサー率29% (27/92)
回答No.1

少し誤解が含まれているかな?と思います。 Apache(アパッチ)はウェブサーバのソフトウェアの名称だと思っていいです。LinuxなどのPC UNIXやWindows系のプラットフォームでも動作することが可能です。少し下記のページを眺めると誤解が解けてくるのではないでしょうか? 理解は多少捉え方が全体に違っていると思うので、順序立てて頭に入れていかないと混乱されてしまう気がします。ちなみに、メールはメールサーバが行う範疇なのでAapcheにはメールを動かす機能はないです。CGIの説明も多くは割愛します。 少しだけ書きましょうか。.html .htm などの拡張子がついているものをおけば、 text/html としてapacheはデータを吐き出し、ブラウザは、これを解釈してページを表示させることができていると思います。同様に、CGIが動作することを許されているディレクトリに、.pl .cgiみたいな拡張子でファイルをおき、またApacheの設定がされていればCGIとして動作すると思っていいです。 これらは正しい説明ではないとは思いますが。イメージはそういう感じでとらえてください。また、CGIがPerlで記述されているのであれば、CGIの最初の行に これはPerlで記述されているものだよ、的な記述があるんじゃないでしょうか?CGIにはコンパイルして実行型になったものと、シェルとして解釈しながら動作するようなものがあります。Perlで動くものは後者ということになりますね。 頑張って勉強してみてください。たどり着けばさほどむずかしいものではありませんので。設定するのは httpd.conf という名称のファイルに相当するものだけで動きますので。

参考URL:
http://www.apache.or.jp/
poposan
質問者

お礼

ありがとうございます。やっぱりハンドブックを読んだときに誤解をしてしまったようです。これからもがんばって覚えていきます。

関連するQ&A