「Apache」の版間の差分

提供:MoodleDocs
移動先:案内検索
(Done!)
編集の要約なし
1行目: 1行目:
'''Apache'''に関して言及される場合、ほとんどの人は「Apache HTTPサーバプロジェクト」のことを考えます。実際、Apacheは多くのプロジェクトを運営する「Apacheソフトウェア財団」を指し、良く知られているにもかかわらず、HTTPサーバはそのプロジェクトのひとつでしかありません。
{{Moodleのインストール}}
'''この記事は 'Apache HTTPサーバ' '''に言及しています


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


Apache HTTPサーバプロジェクトは、以下のように説明されています:
== Apacheのインストール==
インストーラーは、ほとんどのプラットフォームで http://httpd.apache.org/download.cgi から入手できます。公式のインストール手順は次のとおりです: http://httpd.apache.org/docs/2.0/install.html 。 Linuxを実行している場合は、可能であればパッケージバージョンを使用することをお勧めします。たとえば、Debian/Ubuntuでは、次のようになります。
<pre>
sudo apt-get install apache2
</pre>


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


1996年より、Apacheは最も人気のあるウェブサーバです。2005年11月、Netcraft Web Server Surveyの調査では、インターネット上の70%のウェブサーバがApacheを使用していることが分かりました。このように、Apacheは他の全てのウェブサーバを合わせた数より、さらに幅広く使用されています。」
手順については、特定のプラットフォームのドキュメントを参照してください。 Apacheは、必要に応じてソースから簡単にビルドできます。PHPのドキュメントには、ApacheとPHPの両方を一緒にビルドする方法に関する記事が含まれていますが、そうする必要はめったにありません。
 
== 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を除いて、すべてをキャッシュに保持します。このようにして、ロードタイムを大幅に減らすことが可能です。どのくらいの頻度であなたのイメージが変更されるか等を考慮しながら、キャッシュタイムを調整してください。


詳細は次のサイトをご覧ください: [http://www.metaskills.net/blog/heuristics/sysadmin/how-to-control-browser-caching-with-apache-2 www.metaskills.net]
==スラッシュ引数==


'''サーバ'''
[[スラッシュ引数の使用]]で説明されているように、Moodleのさまざまな機能が正しく機能するには、関数 ''スラッシュ引数'' が必要です。


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


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


nano /etc/httpd/conf/httpd.conf
注:ローカルのMoodleインストールフォルダで ".htaccess" を使用する場合は、最初に "httpd.conf" に "AllowOverrideDirective" を含めて有効にする必要があります。
また .htaccessファイルを使用すると、サーバのパフォーマンスが低下することに注意してください。


そして、以下の値を探してください。恐らく少しだけ散らばっていると思われます。値を探した後、内容を変更してください:
1and1をホスティング会社として使用している場合、上記は機能しません。解決策は、moodleディレクトリに次のコンテンツを含むphp.iniファイルを作成することです。


  Timeout 200
  cgi.fix_pathinfo = 0
KeepAlive On
MaxKeepAliveRequests 200
KeepAliveTimeout 3
MinSpareServers 5
MaxSpareServers 15
StartServers 5
MaxClients 20
MaxRequestsPerChild 2000
HostnameLookups Off


もし、メモリが不足している場合  (Linuxを使用している場合、次のコマンドで
PHPをCGIとして使用する場合、これは既知のバグでした。


top
== SSL ==


スワップの値を確認してください)、いくつかの値を減らしてください。同様に、あなたがメモリを余分に持っている場合、少しだけ増やしても良いと思います。Apacheと同時にデータベースソフトウェアも忘れずにチューニングしてください。
Moodleには、サイト全体またはログインページのみに対してHTTPSを有効にするオプションがあります。どちらのオプションでも、WebサーバがSSL用に構成されている必要があります。


==SSL==
* config.phpの 'wwwroot' パラメーターでhttp:// を<url>https://<url>に変更すると、サイト全体のHTTPSが有効になります。
*ログインのみのHTTPSは、'loginhttps' パラメータを設定することで有効になります。wwwrootスキーマはhttp://のままにする必要があります。


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


'''DebianおよびApache2'''
ログインのみのhttpsは、Moodle3.3以前の管理インターフェースの管理 > セキュリティ > HTTPセキュリティでボタンをチェックすることで利用できます。 (警告に注意し、以下のsslセクションを参照してください)


1. 証明書を作成する:
Moodle 2.3より前は、クライアント側のキャッシュに関するレガシー制限のため、HTTPSを介してサイト全体を実行することはお勧めしませんでした。これは、クライアントブラウザが 'Cache-Control:public' メソッドをサポートしていると仮定すると、もはや当てはまりません。これは、このバージョンのMoodleでサポートされているすべてのブラウザがサポートしています。
      apache2-ssl-certificate


Debian etch以降、apache2-ssl-certificateは廃止されました。代わりにmake-ssl-certを使用してください:
HTTPSを使用するには、SSL証明書を取得する必要があります。2つのオプションがあります。
          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を変更する:
Debianは、自己署名証明書をインストールするための手順を提供し [https://wiki.debian.org/Self-Signed_Certificate on their wiki]、SSL用にApacheを構成するための一般的な情報を含みます。
      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


[http://edin.no-ip.com/html/?q=ssl_apache2_2_virtualhost_debian_automatically_https_forwarding 参考資料]
基本的なApacheSSL構成は、次のように要約できます。


== 関連情報 ==
Listen 443
NameVirtualHost *:443
<VirtualHost *:443>
    SSLEngine On
    SSLCertificateFile /path/to/your/certificate.crt
    SSLCertificateKeyFile /path/to/your/certificate.key
    ...
</VirtualHost>


* [http://httpd.apache.org/ The Apache HTTPサーバプロジェクト] - 英語
* [http://en.wikipedia.org/wiki/Apache_HTTP_Server Apache HTTPサーバに関するWikipediaの記事] - 英語
* [http://httpd.apache.org/docs/2.0/misc/perf-tuning.html 公式ウェブサイトのApacheパフォーマンスチューニング記事] - 英語


[[Category:管理者]]
==関連項目==
[[Category:開発者]]


* [http://httpd.apache.org/ ApacheHTTPサーバプロジェクトのホームページ]
* [http://en.wikipedia.org/wiki/Apache_HTTP_Server ApacheHTTPサーバに関するWikiペディアの記事]
* [公式ホームページのhttp://httpd.apache.org/docs/2.0/misc/perf-tuning.html Apache PerformanceTuningの記事]
* [https://els.earlham.edu/cayaraa/weblog/1468.html MoodleをSSLで動作させる]
* [http://www.krufix.de/ ローカルネットワークとSSLプロキシ経由のインターネットで同じMoodleを2回使用する](ドイツ語)


[[en:Apache]]
[[en:Apache]]
[[pl:Apache]]
[[de:Apache]]
[[es:Apache]]

2021年2月8日 (月) 05:19時点における版

この記事は 'Apache HTTPサーバ' に言及しています

Apache HTTPサーバは、(PHPスクリプト言語とともに)Moodleを実行するソフトウェアです。代替手段(WindowsのIIS、LinuxのNginx、MacOSなど)がありますが、ApacheHTTPサーバはすべてのプラットフォームで非常に人気があることに注意してください。

Apacheのインストール

インストーラーは、ほとんどのプラットフォームで http://httpd.apache.org/download.cgi から入手できます。公式のインストール手順は次のとおりです: http://httpd.apache.org/docs/2.0/install.html 。 Linuxを実行している場合は、可能であればパッケージバージョンを使用することをお勧めします。たとえば、Debian/Ubuntuでは、次のようになります。

sudo apt-get install apache2


手順については、特定のプラットフォームのドキュメントを参照してください。 Apacheは、必要に応じてソースから簡単にビルドできます。PHPのドキュメントには、ApacheとPHPの両方を一緒にビルドする方法に関する記事が含まれていますが、そうする必要はめったにありません。

パフォーマンス

パフォーマンスの推奨事項を参照してください

スラッシュ引数

スラッシュ引数の使用で説明されているように、Moodleのさまざまな機能が正しく機能するには、関数 スラッシュ引数 が必要です。

オンにするには、次の行を httpd.conf、またはローカルディレクトリの .htaccess ファイルに追加します。

AcceptPathInfo On

注:ローカルのMoodleインストールフォルダで ".htaccess" を使用する場合は、最初に "httpd.conf" に "AllowOverrideDirective" を含めて有効にする必要があります。 また .htaccessファイルを使用すると、サーバのパフォーマンスが低下することに注意してください。

1and1をホスティング会社として使用している場合、上記は機能しません。解決策は、moodleディレクトリに次のコンテンツを含むphp.iniファイルを作成することです。

cgi.fix_pathinfo = 0

PHPをCGIとして使用する場合、これは既知のバグでした。

SSL

Moodleには、サイト全体またはログインページのみに対してHTTPSを有効にするオプションがあります。どちらのオプションでも、WebサーバがSSL用に構成されている必要があります。

  • config.phpの 'wwwroot' パラメーターでhttp:// を<url>https://<url>に変更すると、サイト全体のHTTPSが有効になります。
  • ログインのみのHTTPSは、'loginhttps' パラメータを設定することで有効になります。wwwrootスキーマはhttp://のままにする必要があります。

注:ログインのみのhttpsは非推奨になり、Moodle 3.4から削除されました: https://tracker.moodle.org/browse/MDL-42834

ログインのみのhttpsは、Moodle3.3以前の管理インターフェースの管理 > セキュリティ > HTTPセキュリティでボタンをチェックすることで利用できます。 (警告に注意し、以下のsslセクションを参照してください)

Moodle 2.3より前は、クライアント側のキャッシュに関するレガシー制限のため、HTTPSを介してサイト全体を実行することはお勧めしませんでした。これは、クライアントブラウザが 'Cache-Control:public' メソッドをサポートしていると仮定すると、もはや当てはまりません。これは、このバージョンのMoodleでサポートされているすべてのブラウザがサポートしています。

HTTPSを使用するには、SSL証明書を取得する必要があります。2つのオプションがあります。

  • 自己署名証明書を生成します。これは(たとえば)イントラネットでは問題ありませんが、パブリックインターネットには適していませんが、パブリックで使用する場合、証明書は信頼できないと警告されます。
  • ベンダーから証明書を購入します。驚くべき範囲の価格と付加価値サービスが利用可能です。一部のホスティング会社は無料の証明書さえ提供しています。

Debianは、自己署名証明書をインストールするための手順を提供し on their wiki、SSL用にApacheを構成するための一般的な情報を含みます。 ベンダー証明書を購入すると、通常、インストールの手順が表示されます。

基本的なApacheSSL構成は、次のように要約できます。

Listen 443
NameVirtualHost *:443
<VirtualHost *:443>
    SSLEngine On
    SSLCertificateFile /path/to/your/certificate.crt
    SSLCertificateKeyFile /path/to/your/certificate.key
    ...
</VirtualHost>


関連項目

pl:Apache