Apache

移動先: 案内, 検索

Apacheに関して言及される場合、ほとんどの人は「Apache HTTPサーバプロジェクト」のことを考えます。実際、Apacheは多くのプロジェクトを運営する「Apacheソフトウェア財団」を指し、良く知られているにもかかわらず、HTTPサーバはそのプロジェクトのひとつでしかありません。

Apache HTTPサーバでは、ウェブページをインターネット上 (またはイントラネット、単体のテストマシン上) に公開することができます。Moodelの開発に使用されているPHPスクリプト言語は、 Apache HTTPサーバに堅く統合されています。Moodleのインストールにおいて、ウェブサーバは必須の構成要素です。Apache HTTPサーバには、バージョン1およびバージョン2の異なる2つのバージョンがあります。バージョン2はバージョン1に置き換えられるべきだったのですが、アーキテクチャが大幅に異なるため、バージョン1も継続してサポートされています。両者ともPHPおよびMoodleでサポートされます。

Apache HTTPサーバプロジェクトは、以下のように説明されています:

「Apache HTTPサーバプロジェクトは、 UNIXおよびWindows NTを含む、最新オペレーティングシステムのためのオープンソースHTTPサーバを開発および保守する取り組みです。プロジェクトのゴールは、最新のHTTP標準に準拠した、安全で効率の高い拡張可能なサーバを提供することです。

1996年より、Apacheは最も人気のあるウェブサーバです。2005年11月、Netcraft Web Server Surveyの調査では、インターネット上の70%のウェブサーバがApacheを使用していることが分かりました。このように、Apacheは他の全てのウェブサーバを合わせた数より、さらに幅広く使用されています。」

Apacheのインストール

通常、ApacheはPHPおよびMySQLと共にインストールされ、この組み合わせはAMPとして知られています。詳細は、AMPのインストールをご覧ください。

Debian/Ubuntu:

apt-get install apache2

パフォーマンス

キャッシング

Apacheでは、イメージのような各種ページ要素をローカルメモリでキャッシュして、ページがリクエストされるたびにApacheに要求しないようブラウザに指示することができます。この設定をどのようにするかOS間で若干異なりますが、以下2つの基本的なステップがあります:

  1. mod_expiresをインストールおよび有効化してください - 詳細はドキュメントまたはmanページをご覧ください。
  2. 次のコードをバーチャルサーバのconfigファイル内にあるrootディレクトリ用<directory>セクションに追加してください (または、AllowOverridesが有効な場合、.htaccessファイル):
<IfModule mod_expires.c>
 ExpiresActive On
 ExpiresDefault "access plus 1 seconds"
 ExpiresByType text/html "access plus 1 seconds"
 ExpiresByType image/gif "access plus 1 week"
 ExpiresByType image/jpeg "access plus 1 week"
 ExpiresByType image/png "access plus 1 week"
 ExpiresByType text/css "access plus 1 week"
 ExpiresByType text/javascript "access plus 1 week"
 ExpiresByType application/x-javascript "access plus 1 week"
 ExpiresByType text/xml "access plus 1 seconds"
</IfModule>

この設定の効果は、動的に変わるHTMLおよびXMLを除いて、すべてをキャッシュに保持します。このようにして、ロードタイムを大幅に減らすことが可能です。どのくらいの頻度であなたのイメージが変更されるか等を考慮しながら、キャッシュタイムを調整してください。

詳細は次のサイトをご覧ください: www.metaskills.net

サーバ

Apacheサーバは、新たな子プロセス (小さなサブプログラム) を発生させることで、それぞれのコネクションを処理します。実行およびリザーブのため、あなたが許可するこれらの数値は、あなたのサーバがいかに速く動作するかという点に関して、大きなインパクトを与えます。リスク (特にVPSのような、小さなメモリを搭載したサーバ ) は、利用可能なRAMを使い果たしてしまって、システムが、はるかに遅いハードディスクのスワップメモリを代わりに使用することになることです。これを避けるため、あなたはサーバに必要な数値のみ伝えるようにする必要があります。以下、128MBのラム (最大 384までバースト可能) を搭載したVPSサーバの設定ディレクティブです。この設定で、かなり良く動作します (詳細は こちらをご覧ください)。

最初に、あなたのhttpd.confをバックアップしてください。一般的に、/etc/httpd/conf/httpd.confで見つけることができます。バックアップした後、ファイルをエディタで開いてください。 例)

nano /etc/httpd/conf/httpd.conf

そして、以下の値を探してください。恐らく少しだけ散らばっていると思われます。値を探した後、内容を変更してください:

Timeout 200
KeepAlive On
MaxKeepAliveRequests 200
KeepAliveTimeout 3
MinSpareServers 5
MaxSpareServers 15
StartServers 5
MaxClients 20
MaxRequestsPerChild 2000
HostnameLookups Off

もし、メモリが不足している場合 (Linuxを使用している場合、次のコマンドで

top

スワップの値を確認してください)、いくつかの値を減らしてください。同様に、あなたがメモリを余分に持っている場合、少しだけ増やしても良いと思います。Apacheと同時にデータベースソフトウェアも忘れずにチューニングしてください。

SSL

あなたのウェブサイトへの不正侵入を防ぎたい場合、データの送信中に悪意を持った第三者にMoodleパスワードを盗み読みされないよう、SSLを有効にしてください (一般的なインターネットコミュニケーションは盗み読みすることができますが)。SSLを有効にするには、2つのオプションがあります - 自己署名証明書を作成する (一般的なネットワークの盗み読みは防ぐことができますが、結局のところ十分な努力により侵入されてしまいます)、またはベンダーから証明書を購入する (安いもので年額35USDほどです)。以下、自己署名証明書のインストール方法に関するインストラクションです。

DebianおよびApache2

1. 証明書を作成する:

     apache2-ssl-certificate

Debian etch以降、apache2-ssl-certificateは廃止されました。代わりにmake-ssl-certを使用してください:

         make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

2. /etc/apache2/ports.conf を編集する:

     Listen 80
     Listen 443

3. /etc/apache2/sites-available/defaultを/etc/apache2/sites-available/default-sslにコピーした後、/etc/apache2/sites-available/defaultを変更する:

     NameVirtualHost *:80
     <VirtualHost *:80>
     ...
     </VirtualHost>

同時に、/etc/apache2/sites-available/default-sslを変更する:

     NameVirtualHost *:443
     <VirtualHost *:443>
     ...
             SSLEngine on
             SSLCertificateFile /etc/apache2/ssl/apache.pem
     ...
     </VirtualHost>

4. sslファイルにシンボリックリンクを貼る:

     a2ensite default-ssl

5. 忘れずにsslモジュールにもシンボリックリンクを貼る:

     a2enmod ssl

6. Apacheを再起動して、接続を確認する (例 https://localhost/):

     /etc/init.d/apache2 restart

参考資料

関連情報