「Apache」の版間の差分
Mitsuhiro Yoshida (トーク | 投稿記録) 編集の要約なし |
Mitsuhiro Yoshida (トーク | 投稿記録) (→SSL) |
||
72行目: | 72行目: | ||
==SSL== | ==SSL== | ||
あなたのウェブサイトへの不正侵入を防ぎたい場合、データの送信中に悪意を持った第三者にMoodleパスワードを盗み読みされないよう、SSLを有効にしてください (一般的なインターネットコミュニケーションは盗み読みすることができますが)。There are 2 options - generate a self-signed certificate, which stops casual network sniffing, but which can ultimately be compromised with enough effort, or purchase a certificate from a vendor (about $35 per year from the cheap ones). Below are instructions for install of a self-signed certificate. | |||
'''Debian and Apache2''' | '''Debian and Apache2''' |
2008年6月26日 (木) 15:29時点における版
作成中です - Mitsuhiro Yoshida 2008年6月24日 (火) 02:35 (CDT)
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つの基本的なステップがあります:
- mod_expiresをインストールおよび有効化してください - 詳細はドキュメントまたはmanページをご覧ください。
- 次のコードをバーチャルサーバの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を有効にしてください (一般的なインターネットコミュニケーションは盗み読みすることができますが)。There are 2 options - generate a self-signed certificate, which stops casual network sniffing, but which can ultimately be compromised with enough effort, or purchase a certificate from a vendor (about $35 per year from the cheap ones). Below are instructions for install of a self-signed certificate.
Debian and Apache2
1. generate a certification:
apache2-ssl-certificate
for debian etch, apache2-ssl-certificate is no longer available, use make-ssl-cert instead:
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
2. edit /etc/apache2/ports.conf:
Listen 80 Listen 443
3. copy /etc/apache2/sites-available/default to /etc/apache2/sites-available/default-ssl, and change /etc/apache2/sites-available/default:
NameVirtualHost *:80 <VirtualHost *:80> ... </VirtualHost>
and also /etc/apache2/sites-available/default-ssl:
NameVirtualHost *:443 <VirtualHost *:443> ... SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.pem ... </VirtualHost>
4. symbolic link the ssl file:
a2ensite default-ssl
5. don't forget to symbolic link the ssl module:
a2enmod ssl
6. restart apache and test the connection (e.g. https://localhost/):
/etc/init.d/apache2 restart