• ベストアンサー

アパッチについて

大変申し訳ありません。今、アパッチについて、勉強しようと思っているのですが、アパッチ(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

  • C言語のapacheの設定

    apacheを使うとC言語で作ったプログラムもCGIで動かせると聞きました httpd.confをいじるとC言語でも表示されるらしいのですがいじり方が分かりませんでした。 どのようにいじればC言語を動かせますか? apacheのバージョンはapache_1_3_12_win32です。 普通の(perlでの製作)cgiの拡張子のは動かせます。

    • 締切済み
    • CGI
  • Apache2でしぃペインターを動かすにはどうしたらいいのですか?

     AN HTTPD&ACTIVE PERLではしぃペインターでお絵かきが簡単に出来たのですが、APACHE2&ACTIVE PERLで出来るかどうか挑戦しているのですが苦戦しております。  なにをしているかというと、しぃペインターのプログラム群のように、拡張子がcgiのみじゃなく、.jar .js .jpxなどのように、JAVAも動作させるプログラムでは、APACHE2のhttpd.confをどのように設定したら良いのでしょうか? また、なにをすればしぃペインターが動作しますか?  Tomcatが必要かもしれないと思い、それもインストールしてBBSNOTEを動作させようとしましたが今のところ出来ていません。  良きアドバイスを御願いしますペコリ(o_ _)o))

  • windows7へapache導入

    当方、超初心者です。 windows7、32bitにapache2.2をインストールしました。 多くのwindowsのapacheのhttpd.confの書き換えの サイトには パスの区切り記号に「/」を使っていますが、 これは「\」に置き換えなくては動かないんじゃないでしょうか? なぜwindows でapacheで「/」を使った説明をしてるか意味が分かりません。 同じくCGIの冒頭の#!C:/perl/bin/perlという欄は#!C:\perl\bin\perl と置き換えるべきなのしょうか?

  • Apacheの設定でHTML文が表示される

    VistaにApache2.2とPerl5をインストールしてCGIを使いたいのですが、CGIが起動しません。 「IT Works!」は表示されたのでインストールはうまくいったと思います。 おそらくhttpd.confの設定だと思うのですが、手元にある本がApacheのバージョンも前のものですしXP対応なのではっきりとはわかりません。 HTML文がそのまま表示される事の注意点やhttpd.confの書き換え方がわかるかたどうか教えてください!!! ----------------------------------- c:\Apache2.2\htdocs\tendays(1-1.cgi)←今回表示されないファイルです c:\perl

    • 締切済み
    • CGI
  • プリインストール済みのApacheにmod_perlのインストール

    当方、RedHatLinuxを利用しています。 インストール済みのApacheに、 mod_perlをインストールし、PerlからPostgreSQLにアクセスしようとしています。 このとき、httpd.confに設定情報を記述しなければならないハズですが、 どうやらmod_perlをインストールしなければならないことが分かりました。 しかし、どれをとってみても、 Apacheのソースをコンパイルする時に設定する情報しか得ることができませんでした。 大変申し訳ないのですが、 プリインストール済みのApacheにmod_perlをインストールすることはできるのでしょうか?

  • Apacheが動かない

    cgiの勉強の為、Apache2.2.3-win32-x86-no_ssl.msiをインストールしました。インストール直後はI.Eでcgiもhtmlも正しく動作するのですが、httpd.confの編集を何もせずRestartすると動作しなくなります。 httpd.confのServerNameにIPアドレスやフルコンピューター名を入れてみましたが全く動作しません。何度かアンインストール、インストールをやってみましたが同じで再現性があります。 PC環境 Windows XP professional Internet Explorer Apache2.2.3 ActivePerl 5.8.8 どういったことが考えられるでしょうか? 宜しくお願いします。

  • CGIを使用するためのApacheの設定

    今HPを作っています。 そこでカウンターを作ろうと思ってPerlを勉強したのですが、 Apacheでファイルを送り、 CGIを実行しようとすると、 「ファイルのダウンロード」 とでて「実行」を押すとメモ帳でそのCGIファイルが開かれてしまいます。 これはApacheの設定(httpd.conf)が関係してるんじゃないかと思うんですが、 設定の仕方がよくわかりません。 教えてください。 OSはWinXPでバージョンは2.0.55.0です。

  • apache でバイナリのCGIを動かすには

    apache でバイナリのCGIを動かすにはどうすればよいのでしょうか? (なお、プログラム自体に問題は決してありません。『HTTPD』を使うと問題なく動作します) OS:WIN98 C++バイナリのCGIを呼び出すと下記エラーとなります。 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please .... the error. More ... log. - Apache/1.3.12 Server at http://127.0.0.2/ Port 80 最終アクセスログ 127.0.0.1 - - [12/Mar/2001:23:20:27 +0900] "GET /ab.cgi HTTP/1.1" 500 610 最終エラーログ [Mon Mar 12 23:20:25 2001] [error] [client 127.0.0.1] Premature end of script headers: e:/www.homepage/kokucho81/ab.cgi apache の httpd.conf と httpd.conf.default との比較 ** httpd.conf ServerName http://127.0.0.2/ ** httpd.conf.default #ServerName new.host.name ** httpd.conf DocumentRoot "E:/WWW.HOMEPAGE/KOKUCHO81" ** httpd.conf.default DocumentRoot "C:/Apache/htdocs" ** httpd.conf <Directory /> Options FollowSymLinks ExecCGI AllowOverride None ** httpd.conf.default <Directory /> Options FollowSymLinks AllowOverride None ** httpd.conf <Directory "E:/WWW.HOMEPAGE/KOKUCHO81"> ** httpd.conf.default <Directory "C:/Apache/htdocs"> ** httpd.conf Options Indexes FollowSymLinks ExecCGI ** httpd.conf.default Options Indexes FollowSymLinks MultiViews ** httpd.conf AddHandler cgi-script .cgi ** httpd.conf.default #AddHandler cgi-script .cgi そもそも、設定が足りてないんでしょうか? apacheを良く使う方、よろしくお願いします。m(_ _)m

  • apache1.3とperlでCGI

    超初心者です。 windows XPでapache1.3 と active perl 5.1.2をインストールして、 CGIを動作させたいと考えています。 http://localhostを入力してapacheの起動画面は表示されていること を確認しました。 その後httpdconfに下記を追加しました。 AddHandler cgi-script .cgi .pl AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .pl <Directory "C:/Program Files/Apache Group/Apache/cgi-bin"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> C:\Program Files\Apache Group\Apache\cgi-binに既存で存在する printenv.plを実行しようとするとファイルのダウンロードの画面が出てきて 実行されません。printenv.plは下記のようにperl.exeへのパスだけ変更しました。 #! C:/Perl/bin/perl ## ## printenv -- demo CGI program which just prints its environment ## print "Content-type: text/plain\n\n"; foreach $var (sort(keys(%ENV))) { $val = $ENV{$var}; $val =~ s|\n|\\n|g; $val =~ s|"|\\"|g; print "${var}=\"${val}\"\n"; } どうすればCGIが実行できるようになるのでしょうか? ご教授ください。よろしくお願い致します。

    • ベストアンサー
    • CGI
  • Apacheのhttpd.confの設定方法がわかりません

    ただいまPHPとPerlを勉強しようと思い、環境設定に取り組んでいます。 PHPの本を買ってきて、その本に付属しているPHPDEV5というPHPとApache2とMySQLの付いているものをインストールしました。PHPの方は何の問題もなく動作しています。 Perlも本を買ってきたんですが、Perlの本の方もサーバとしてApache2を使っているんですが、最初にインストールしたPHPDEV5付属のApache2のhttpd.confファイルの中身が違っていて、Perlの解説本のとおりにhttpd.confファイルを修正できないため、どのように修正すれば、CGIができるようになるのか分かりません。 どなたかもし設定ファイルの方法がわかる方がいましたら、教えてください。よろしくおねがいします。

    • ベストアンサー
    • Perl