46.2. インストール

SUSE LinuxのApacheは、標準の、定義済みの設定で、「そのまま」実行できます。この章の手順に従えば、短い時間でApache Webサーバを設定して、実行することができます。Apacheをインストールして設定するには、rootになる必要があります。

46.2.1. ApacheをYaSTでインストールする

SUSE Linuxのapache2パッケージは、 Apache Web site (http://httpd.apache.org)から入手できる標準のソフトウェアパッケージとは、ファイルシステムやアプリケーションのレイアウトが少し異なっています。 このセクションでは、SUSE Linuxのapache2パッケージのインストール方法の詳細と、存在する相違点について説明します。

簡単なWebサーバをインストールするには、次の手順に従います。

手順 46.1. クイックインストール

  1. YaSTをGUIまたはコマンドラインモードで起動します。

  2. [ネットワークサービス]+[HTTPサーバ]の順に選択します。

  3. Continue]をクリックして、apache2およびapache2-preforkパッケージのインストールを確認します。

  4. インストールが完了すると、[Apache Configuration Wizard]が表示されるので、Webサーバの設定を開始できます。

上記の手順の欠点は、PHPやデータペースのサポートが無いことです。 PHPやデータベースのサポートのある状態でWebサーバをインストールするには、次の手順に従います。

手順 46.2. 簡単なWebサーバのインストール

  1. YaSTをGUIまたはコマンドラインモードで起動します。

  2. [ソフトウェア]+[ソフトウェアのインストール/削除]の順に選択します。

  3. Filter]で[Selections]を選択し、[Apache2を使用する単純なWWWサーバー]をオンにします。

  4. Accept]をクリックします。

  5. 依存関係のあるパッケージのインストールを確認して、SUSE LinuxのApache2のインストールプロセスを完了します。

上級のユーザは、SUSE Linuxでカスタムのパッケージ選択を行うこともできます。 Webサーバのカスタムインストールを行うには、次の手順に従います。

手順 46.3. デフォルトのApache RPMをYaSTでインストールする

  1. YaSTをGUIまたはコマンドラインモードで起動します。 [ソフトウェア]+[ソフトウェアのインストール/削除]の順に選択します。

  2. Filter]で[Search]を選択し、[Search]フィールドにapache2と入力します。

  3. apache2をインストールするように選択します。

  4. モジュール選択の場合のステップ2と3を実行します。項46.5. 「Apacheのモジュール」を参照してください。

  5. 選択したら、[Accept]をクリックします。

  6. 次に、必須のパッケージapache2-MPMと依存関係にあるapache2-preforkまたはapache2-workerのどちらかを選択するように促されます。 これら2つの相違点についての説明は、項46.2.2. 「マルチプロセシングモジュール」を参照してください。 よく分からない場合には、apache2-preforkパッケージを選択してください。これがUnixベースのオペレーティングシステムでのデフォルトになっています。[OK]をクリックします。

  7. 依存関係のあるパッケージのインストールを確認して、SUSE LinuxのApache2のインストールプロセスを完了します。

[Note]Webサーバの起動

Apacheをインストールしても、Webサーバが自動的に起動するわけではありません。 Apacheの起動とシャットダウンを制御する方法は、項46.3.3. 「Apacheの有効化、起動、および停止」を参照してください。

46.2.2. マルチプロセシングモジュール

デフォルトのApache RPMをYaSTでインストールするで説明しているように、SUSE Linuxには、Apacheで使用するための2つのマルチプロセシングモジュール(MPM)が用意されています。MPMは、Webサーバへのリクエストを受け取って処理する役割を果たすもので、Webサーバソフトウェアの中核となっています。

46.2.2.1. プリフォークMPM

プリフォークMPMは、スレッド対応でない、プリフォークWebサーバを実装します。Webサーバは、それぞれのリクエストを分離し、個別の子プロセスを分岐することによって処理する、Apacheバージョン1.xと同様の動作を行います。これにより、問題のあるリクエストが他のものに影響することがなくなるので、Webサーバのロックアップを避けられます。

プロセスベースのアプローチによって安定性がもたらされますが、プリフォークMPMは、もう一方のワーカーMPMよりも多くのシステムリソースを消費します。プリフォークMPMは、UnixベースのオペレーティングシステムでのデフォルトのMPMとみなされています。

[Important]このドキュメントでのMPM

このドキュメントでは、ApacheがプリフォークMPMで使用されていることを仮定しています。

46.2.2.2. ワーカーMPM

ワーカーMPMは、マルチスレッド対応のWebサーバを提供します。スレッドとは、「軽い」形態のプロセスです。プロセスよりもスレッドが優れている点は、リソースの消費が少ないことです。ワーカーMPMは、子プロセスを分岐する代わりに、サーバプロセスでスレッドを使用することによってリクエストを処理します。プリフォークした子プロセスは複数のスレッドになります。

このアプローチでは、プリフォークMPMの場合よりもシステムリソースの消費が少なくなるので、Apacheの性能が良くなります。主要な短所の1つは、ワーカーMPMの安定性に関するものです。1つのスレッドが壊れると、プロセスのすべてのスレッドが影響を受けます。最悪の場合には、サーバがクラッシュすることがあります。特に、ApacheでCGIを使用している場合(項46.5.1.2. 「CGI (Common Gateway Interface)mod_cgiを参照)、負荷が大きくなると、スレッドがシステムリソースと通信できなくなって、内部サーバエラーが生じることがあります。

ワーカーMPMを使用すべきでないという意見の別の根拠は、利用できるApacheのモジュール(項46.5. 「Apacheのモジュール」を参照)のすべてがスレッドセーフになっているわけではなく、そのためワーカーMPMと組み合わせて使用することはできないという点です。

[Warning]ApacheモジュールとしてのPHP (mod_php)

利用可能なPHPモジュールのすべてがスレッドセーフになっているわけではありません。ワーカーMPMとmod_phpを組み合わせることは、絶対に避けてください。

46.2.3. デフォルトのファイルシステムとアプリケーションのレイアウト

SUSE Linuxは、Apacheパッケージのファイルをデフォルトの場所に配置します。最も重要なファイルの場所は、以下のとおりです。

46.2.3.1. バイナリ

SUSE LinuxのApacheでは、ほとんどの実行ファイルの名前に2が付けられています。これにより、Apache 1.xとApache 2.xを同時にインストールした場合でも、バイナリファイルが区別しやすくなっています。

/usr/sbin/httpd2

項46.2.2. 「マルチプロセシングモジュール」で説明した、選択したマルチプロセシングモジュールを指すシンボリックリンクです。デフォルトはhttpd2-preforkです。このシンボリックリンクは、MPMのシステム設定に従って、起動スクリプトによって維持されています。

/usr/sbin/httpd2-prefork

Apache2の実際の実行可能ファイルです。

/usr/sbin/apache2ctl

Apache HTTPDプロジェクトによって用意された、Webサーバの起動と停止を行う制御スクリプトです。/usr/sbin/apache2ctl helpについての詳細、および実行方法は、項46.3.3. 「Apacheの有効化、起動、および停止」を参照してください。

/etc/init.d/apache2

SUSE Linuxのインストールに完全に統合されており、Apacheをブート時に起動する、起動および停止スクリプトです。サーバの起動や停止の前に設定が有効かどうかをチェックします。また、設定の場所を上書きします。他の設定ファイルを含めることや、モジュールをロードすることが容易で、スクリプトを変更しなくても、サーバの個別のインスタンスを起動することができます。

/usr/sbin/rcapache2

/etc/init.d/apache2へのシンボリックリンクです。/etc/init.d/はデフォルトではパスには含まれていないからです。Apacheを起動するには、rcapache2 startと入力します。

/usr/sbin/htpasswd2

.htaccessベースの認証を行うための、暗号化パスワードを生成するユーティリティです。ツールの使用方法についての詳細は、htpasswd2(1) manページを参照してください。

46.2.3.2. 設定ファイル

ほとんどの設定ファイルは、/etc/apache2の下に置かれます。設定を変更する方法についての詳細は、項46.3. 「環境設定」を参照してください。

/etc/apache2/httpd.conf

トップレベルの設定ファイルです。可能であれば、このファイルを変更することは避けてください。このファイルでは、主に他の設定ファイルをインクルードし、グローバル設定を宣言しています。

/etc/apache2/*.conf

外部Apacheモジュールの中には、設定ファイルを/etc/apache2/ディレクトリに置くものがあります。通常、名前にはモジュール名が含まれています(mod_*.conf)。

/etc/apache2/conf.d/*

特定のパッケージに付属する、他の様々な設定ファイルを保持するディレクトリです。実例は、項46.5.3.2. 「PHPを使用する: mod_php4mod_php5を参照してください。

/etc/apache2/vhosts.d/*

仮想ホスト用のオプションの設定ファイルを保持するディレクトリです。詳細については、項46.4. 「仮想ホスト」を参照してください。

/etc/sysconfig/apache2

Apache2に関連する、SUSE Linuxの設定ファイルです。Apache Webサーバを制御するための、関連するすべての設定パラメータを保持しています。/etc/sysconfig/apache2は、項46.3.1. 「ApacheをYaSTで設定する」で説明されている方法で、YaSTでApacheを設定するために用いられます。項46.3.2. 「Apacheを手動で設定する」で説明されている方法で、手動で編集することもできます。

46.2.3.3. ログファイル

デフォルトでは、Apacheはその実行時のステータスについての様々な情報を、以下のファイルに記録します。

/var/log/apache2/error_log

Apacheは、起動およびシャットダウン時の注意事項と、実行時のすべてのエラーを、このファイルに記録します。

/var/log/apache2/access_log

Webサーバへのすべてのリクエストが、このファイルに記録されます。エントリのデフォルトのフォーマットは組み合わせフォーマットで、リクエストを送ったホストとユーザエージェントについての情報、および参照側のURIが記録されます。

46.2.3.4. ドキュメントルート

物理ディレクトリ/srv/www/htdocsは、ApacheがWebページを取得するデフォルトの場所です。これは、クライアントのリクエストに対する「ルートディレクトリ」としての役割を果たします。ApacheでWebページを公開するには、ファイルをこのディレクトリの中または下に、階層構造を構成する仕方で保管してください。

http://www.example.com/index.htmlというURLは、example.comというドメイン名のSUSE LinuxでのデフォルトのApache設定では、/srv/www/htdocs/index.htmlを参照します。

46.2.4. モジュールを手動でビルドする

Apacheは、モジュール方式で構築されています。つまり、モジュールがWebサーバソフトウェア本体の機能を提供しています。そのため、上級のユーザは、カスタムのモジュールを書いてApacheを拡張することができます。詳細については、以下で言及するmanページを参照してください。

46.2.4.1. apache2-devel

Apacheモジュールの開発やサードパーティ製モジュールのコンパイルを行う場合は、パッケージapache2-develを対応する開発ツールとともにインストールします。 apache2-develには、apxs2ツールも含まれています。これは、Apache用の追加モジュールをコンパイルする場合に必要です。

46.2.4.2. apxs2

apxs2バイナリは、/usr/sbinの下層にあります

  • /usr/sbin/apxs2—MPMと共に動作する拡張モジュールを構築するのに適しています。インストール場所は/usr/lib/apache2です。

  • /usr/sbin/apxs2-prefork—プリフォークMPMモジュールに適しています。インストール場所は/usr/lib/apache2-preforkです。

  • /usr/sbin/apxs2-worker—ワーカーMPMモジュールに適しています。

apxs2は、どのMPMに対しても使用できるようにモジュールをインストールします。他の2つのプログラムは、それぞれのMPMのみが使用できるように、モジュールをインストールします。 apxs2はモジュールを/usr/lib/apache2にインストールし、apxs2-prefork/usr/lib/apache2-preforkにインストールします。

apxs2は、ソースコードからモジュールをコンパイルし、インストールすることを可能にします(設定ファイルへの必要な変更も含みます)。 これは、実行時にApacheにロードされる、ダイナミック共有オブジェクト (DSO)を作成します。ソースコードからモジュールをインストールするには、コマンドcd /path/to/module/source; apxs2 -c -i mod_foo.cを使います。apxs2のその他のオプションについては、apxs2(1) manページを参照してください。その後、項46.3.2. 「Apacheを手動で設定する」の手順に従って、/etc/sysconfig/apache2内のエントリAPACHE_MODULESを使用してモジュールを有効にします。