Hinweis: Sie sind auf den Seiten der Moodle 1.9 Dokumentation. Die Dokumentation der aktuellsten Moodle-Version finden Sie hier: Apache.

Apache: Unterschied zwischen den Versionen

Aus MoodleDocs
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(10 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Zum Übersetzen}}
Siehe [[:en:Apache]]
{{Zum Übersetzen}}
Siehe [[:en:Apache]]
Wenn von '''Apache''' die Rede ist, meinen die meisten das "Apache HTTP Server Project". Tatsächlich ist Apache die "Apache Software Foundation", die eine Menge von Projekten betreut, von denen eins das HTTP Server Projekt ist - wahrscheinlich das bekannteste.
Wenn von '''Apache''' die Rede ist, meinen die meisten das "Apache HTTP Server Project". Tatsächlich ist Apache die "Apache Software Foundation", die eine Menge von Projekten betreut, von denen eins das HTTP Server Projekt ist - wahrscheinlich das bekannteste.


Der Apache HTTP Server ermöglicht es, Webseiten im Internet (oder Intranet oder auf einem Testserver) zu veröffentlichen. Die Skriptsprache [[PHP]], in der Moodle geschrieben ist, ist sehr gut mit dem Apache HTTP Server integriert, und ein Webserver ist zentraler Bestandteil einer Moodle-Installation. Es gibt zwei Entwicklungen des Apache HTTP Servers - Version 1 und Version 2. Die Architektur dieser Versionen unterscheidet sich grundsätzlich, so dass bei weiter gepflegt und entwickelt werden. PHP und Moodle unterstützen beide Versionen.
Der Apache HTTP Server ermöglicht es, Webseiten im Internet (oder Intranet oder auf einem Testserver) zu veröffentlichen. Die Skriptsprache [[PHP]], in der Moodle geschrieben ist, ist sehr gut mit dem Apache HTTP Server integriert, und ein Webserver ist zentraler Bestandteil einer Moodle-Installation. Es gibt zwei Entwicklungen des Apache HTTP Servers - Version 1 und Version 2. Die Architektur dieser Versionen unterscheidet sich grundsätzlich, so dass beide weiter gepflegt und entwickelt werden. PHP und Moodle unterstützen beide Versionen.


Das Apache HTTP Server Project beschreibt sich selbst wie folgt [http://apache.org apache.org]:
Das Apache HTTP Server Project beschreibt sich selbst wie folgt [http://apache.org apache.org]:


:"The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards.
:''"The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards.''


:Apache has been the most popular web server on the Internet since April 1996. The November 2005 Netcraft Web Server Survey found that more than 70% of the web sites on the Internet are using Apache, thus making it more widely used than all other web servers combined."
:''Apache has been the most popular web server on the Internet since April 1996. The November 2005 Netcraft Web Server Survey found that more than 70% of the web sites on the Internet are using Apache, thus making it more widely used than all other web servers combined."''


== Installation von Apache ==
== Installation von Apache ==
Normalerweise wird Apache zusammen mit [[PHP]] und [[MySQL]] installiert, in dieser Kobination bekannt als XAMPP (unter Windows) oder MAMP (unter Mac OS). Siehe auch [[Vollständiges Installationspaket für Windows]] bzw. [[Vollständiges Installationspaket für Mac OS X]]
Normalerweise wird Apache zusammen mit [[PHP]] und [[MySQL]] installiert, in dieser Kobination bekannt als [[Windows-Installation mit XAMPP |XAMPP (unter Windows)]] oder MAMP (unter Mac OS). Siehe auch [[Vollständiges Installationspaket für Windows]] bzw. [[Vollständiges Installationspaket für Mac OS X]]


Unter Debian/Ubuntu erfolgt die Installation beispielsweise so:
Unter Debian/Ubuntu erfolgt die Installation beispielsweise so:
Zeile 26: Zeile 20:
==Geschwindigkeit==
==Geschwindigkeit==


'''Caching'''
====Caching====


Apache kann so angepasst werden, dass Webseiten schneller geladen werden. Dazu muss konfiguriert werden, wie die einzelnen Seitenelemente gecacht werden sollen. Die Konfiguration unterscheidet sich etwas für die verschiedenen Betriebssysteme, grundsätzlich sind jedoch zwei Schritte nötig:
Apache kann so angepasst werden, dass Webseiten schneller geladen werden. Dazu muss konfiguriert werden, wie die einzelnen Seitenelemente gecacht werden sollen. Die Konfiguration unterscheidet sich etwas für die verschiedenen Betriebssysteme, grundsätzlich sind jedoch zwei Schritte nötig:


# mod_expires installieren und aktivieren - siehe Dokumentation bzw. Man pages des Pakets mod_expires
1. mod_expires installieren und aktivieren - siehe Dokumentation bzw. Man pages des Pakets mod_expires
# Folgenden Code in der Konfigutrationsdatei des virtuellen Servers, im Abschnitt für das Root Directory hinzufügen (oder in der Datei ''.htaccess'', falls ''AllowOverrides'' auf ''On'' gesetzt ist):
 
2. Folgenden Code in der Konfigutrationsdatei des virtuellen Servers, im Abschnitt für das Root Directory hinzufügen (oder in der Datei ''.htaccess'', falls ''AllowOverrides'' auf ''On'' gesetzt ist):


   <IfModule mod_expires.c>
   <IfModule mod_expires.c>
Zeile 50: Zeile 45:
Mehr Informationen finden Sie unter [http://www.metaskills.net/blog/heuristics/sysadmin/how-to-control-browser-caching-with-apache-2 www.metaskills.net].
Mehr Informationen finden Sie unter [http://www.metaskills.net/blog/heuristics/sysadmin/how-to-control-browser-caching-with-apache-2 www.metaskills.net].


'''Servers'''
====Servers====
 
Apache serves webpages by spawning new child processes (smaller sub-programs) to deal with each connection. The number of these that you allow to run and to be kept in reserve has a big impact on how fast your server will run. The risk (especially on a server with a small amount of memory, such as a VPS) is that the available RAM will run out and the system will end up using the far slower hard disk as swap memory instead. To prevent this, you need to tell Apache only to have a certain number. Here is a sample set of configuration directives for a VPS server with 128MB of RAM (with up to 384 burstable), which apparently works quite well (more info [http://www.agnivo.com/tech/vps-mysql-and-apache-optimization-guide-27.html here])


Make a back up of your httpd.conf first. It’s generally found at /etc/httpd/conf/httpd.conf, then open the file with your editor e.g.  
Der Apache Server stellt Webseiten bereit, indem er für jede Verbindung einen neuen Kind-Prozess (ein kleines Unterprogramm) startet. Die Anzahl dieser Prozesse hat einen großen Einfluss auf die Geschwindigkeit Ihres Servers. Das Risiko (insbesondere auf Servern mit wenig Speicher) besteht darin, dass das System die Festplatte als Swap benutzen muss. Um das zu vermeiden, müssen Sie die Anzahl dieser Prozesse begrenzen. Im folgenden finden Sie beispielhaft die Konfigurationseinstellungen für einen VPS Server mit 128 MB RAM (mehr Infos unter [http://www.agnivo.com/tech/vps-mysql-and-apache-optimization-guide-27.html agnivo.com]).


nano /etc/httpd/conf/httpd.conf
Als erstes sichern Sie Ihre Konfigurationsdatei ''httpd.conf'', diese befindet sich normalerweise unter ''/etc/httpd/conf/httpd.conf''. Ändern Sie die Datei danach in einem Editor wie folgt:


Then look for these values, which may be spread about a little and change them:
  Timeout 200
  KeepAlive On
  MaxKeepAliveRequests 200
  KeepAliveTimeout 3
  MinSpareServers 5
  MaxSpareServers 15
  StartServers 5
  MaxClients 20
  MaxRequestsPerChild 2000
  HostnameLookups Off


Timeout 200
Wenn Sie merken, dass ich Speicher knapp wird, geben Sie folgenden Befehl auf der Kommandozeile ein:
KeepAlive On
MaxKeepAliveRequests 200
KeepAliveTimeout 3
MinSpareServers 5
MaxSpareServers 15
StartServers 5
MaxClients 20
MaxRequestsPerChild 2000
HostnameLookups Off


If you find that you are running out of memory (type
  top


top
Verkleinern Sie bei Bedarf die obigen Zahlen. Wenn Sie dagegen genügend Sopeicher haben, können Sie die Werte auch etwas erhöhen.


if using Linux and look at the swap figure), just lower some of the numbers. Similary, if you have extra memory, you can afford to raise them a bit. Remember to combine tuning of Apache with tuning of your database app.
'''Hinweis''': Anpassungen des Webserver in Bezug auf Geschwindigkeit sollten immer einhergehen mit Anpassungen des Datenbank-Servers.


==SSL==
==SSL==
Zeile 133: Zeile 126:
* [http://httpd.apache.org/docs/2.0/misc/perf-tuning.html Apache Performance Tuning article at the official homepage] - Geschwindigkeitsanpassungen (englisch)
* [http://httpd.apache.org/docs/2.0/misc/perf-tuning.html Apache Performance Tuning article at the official homepage] - Geschwindigkeitsanpassungen (englisch)
* [https://els.earlham.edu/cayaraa/weblog/1468.html Making Moodle work with SSL] - Moodle unter SSL laufen lassen wsd(englisch)
* [https://els.earlham.edu/cayaraa/weblog/1468.html Making Moodle work with SSL] - Moodle unter SSL laufen lassen wsd(englisch)
* [http://www.krufix.de/ Simultaner Betrieb von Moodle im Intranet und per SSL-Proxy]


[[Category:Installation]]
[[Category:Installation]]
[[Category:Administration]]
[[Category:Administrator]]


[[en:Apache]]
[[en:Apache]]

Aktuelle Version vom 31. Juli 2011, 09:21 Uhr

Wenn von Apache die Rede ist, meinen die meisten das "Apache HTTP Server Project". Tatsächlich ist Apache die "Apache Software Foundation", die eine Menge von Projekten betreut, von denen eins das HTTP Server Projekt ist - wahrscheinlich das bekannteste.

Der Apache HTTP Server ermöglicht es, Webseiten im Internet (oder Intranet oder auf einem Testserver) zu veröffentlichen. Die Skriptsprache PHP, in der Moodle geschrieben ist, ist sehr gut mit dem Apache HTTP Server integriert, und ein Webserver ist zentraler Bestandteil einer Moodle-Installation. Es gibt zwei Entwicklungen des Apache HTTP Servers - Version 1 und Version 2. Die Architektur dieser Versionen unterscheidet sich grundsätzlich, so dass beide weiter gepflegt und entwickelt werden. PHP und Moodle unterstützen beide Versionen.

Das Apache HTTP Server Project beschreibt sich selbst wie folgt apache.org:

"The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards.
Apache has been the most popular web server on the Internet since April 1996. The November 2005 Netcraft Web Server Survey found that more than 70% of the web sites on the Internet are using Apache, thus making it more widely used than all other web servers combined."

Installation von Apache

Normalerweise wird Apache zusammen mit PHP und MySQL installiert, in dieser Kobination bekannt als XAMPP (unter Windows) oder MAMP (unter Mac OS). Siehe auch Vollständiges Installationspaket für Windows bzw. Vollständiges Installationspaket für Mac OS X

Unter Debian/Ubuntu erfolgt die Installation beispielsweise so:

  apt-get install apache2

Lesen Sie die Dokumentation Ihrer speziellen Distribution, wenn Sie detaillierte Informationen benötigen.

Geschwindigkeit

Caching

Apache kann so angepasst werden, dass Webseiten schneller geladen werden. Dazu muss konfiguriert werden, wie die einzelnen Seitenelemente gecacht werden sollen. Die Konfiguration unterscheidet sich etwas für die verschiedenen Betriebssysteme, grundsätzlich sind jedoch zwei Schritte nötig:

1. mod_expires installieren und aktivieren - siehe Dokumentation bzw. Man pages des Pakets mod_expires

2. Folgenden Code in der Konfigutrationsdatei des virtuellen Servers, im Abschnitt für das Root Directory hinzufügen (oder in der Datei .htaccess, falls AllowOverrides auf On gesetzt ist):

 <IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType text/html "access plus 1 seconds"
  ExpiresByType image/gif "access plus 120 minutes"
  ExpiresByType image/jpeg "access plus 120 minutes"
  ExpiresByType image/png "access plus 120 minutes"
  ExpiresByType text/css "access plus 60 minutes"
  ExpiresByType text/javascript "access plus 60 minutes"
  ExpiresByType application/x-javascript "access plus 60 minutes"
  ExpiresByType text/xml "access plus 1 seconds"
 </IfModule>

Damit wird alles im Cache gespeichert außer HTML und XML, das sich dynamisch ändert. Auf diese Weise kann man die Ladezeiten der Seiten signifankt reduzieren.

Mehr Informationen finden Sie unter www.metaskills.net.

Servers

Der Apache Server stellt Webseiten bereit, indem er für jede Verbindung einen neuen Kind-Prozess (ein kleines Unterprogramm) startet. Die Anzahl dieser Prozesse hat einen großen Einfluss auf die Geschwindigkeit Ihres Servers. Das Risiko (insbesondere auf Servern mit wenig Speicher) besteht darin, dass das System die Festplatte als Swap benutzen muss. Um das zu vermeiden, müssen Sie die Anzahl dieser Prozesse begrenzen. Im folgenden finden Sie beispielhaft die Konfigurationseinstellungen für einen VPS Server mit 128 MB RAM (mehr Infos unter agnivo.com).

Als erstes sichern Sie Ihre Konfigurationsdatei httpd.conf, diese befindet sich normalerweise unter /etc/httpd/conf/httpd.conf. Ändern Sie die Datei danach in einem Editor wie folgt:

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

Wenn Sie merken, dass ich Speicher knapp wird, geben Sie folgenden Befehl auf der Kommandozeile ein:

 top

Verkleinern Sie bei Bedarf die obigen Zahlen. Wenn Sie dagegen genügend Sopeicher haben, können Sie die Werte auch etwas erhöhen.

Hinweis: Anpassungen des Webserver in Bezug auf Geschwindigkeit sollten immer einhergehen mit Anpassungen des Datenbank-Servers.

SSL

Wenn Sie Ihr Moodle besser schützen wollen, dann sollten Sie die SSL-Verschlüsselung aktivieren. Dann wird das Kennwort beim Anmelden verschlüsselt übertragen und kann nicht mitgelesen werden (wie es normalerweise bei Internetvernbindungen der Fall wäre). Es gibt zwei Möglichkeiten:

  • Entweder Sie generieren ein selbstsigniertes Zertifikat, mit dem Netzwerk-Sniffing unterbunden wird, das aber mit hinreichend großem Aufwand komprimittiert werden kann,
  • oder Sie kaufen ein Zertifikat bei einer Zertifizierungsstelle (ab $US 35 pro Jahr).

Nachfolgend finden Sie beispielhaft eine Anleitung für die Installation eines selbstsignierten Zertifikats unter Debian und Apache2.

1. Generieren Sie ein Zertifikat:

     apache2-ssl-certificate
Für Debian Etch müssen Sie folgenden Befehl verwenden:
     make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

2. Ändern Sie die Konfigurationsdatei /etc/apache2/ports.conf wie folgt:

     Listen 80
     Listen 443

3. Kopieren Sie die Datei /etc/apache2/sites-available/default nach /etc/apache2/sites-available/default-ssl und ändern Sie die Datei /etc/apache2/sites-available/default wie folgt:

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

4. Ändern Sie die Datei /etc/apache2/sites-available/default-ssl wie folgt:

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

5. Setzen Sie einen symbolischen Link auf die SSL-Datei:

     a2ensite default-ssl

6. Setzen Sie einen symbolischen Link auf das SSL-Modul:

     a2enmod ssl

7. Starten Sie den Webserver neu und testen Sie die Verbindung (z.B. https://localhost/):

     /etc/init.d/apache2 restart

Siehe auch