Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:apache_http_server_centos_7

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:apache_http_server_centos_7 [2014/11/25 15:29] – [Virtuelle Hosts] klaustachtler:apache_http_server_centos_7 [2019/01/24 17:52] (aktuell) – [/etc/httpd/conf/httpd.conf] klaus
Zeile 633: Zeile 633:
 # systemctl is-enabled httpd.service # systemctl is-enabled httpd.service
 enabled enabled
 +</code>
 +
 +:!: **HINWEIS** - **Falls der [[http://httpd.apache.org|Apache HTTP Server]] mit der Fehlermeldung**
 +<code apache>
 +... httpd: (99)Cannot assign requested address: AH00072: make_sock: could not bind to address ...
 +</code>
 +**beim automatischen __Systemstart__, __NICHT__ starten sollte, dann kann dies ggf. mit der Anpassung des Service ''httpd.service'' wie nachfolgend dargestellt, behoben werden.**
 +
 +Zuerst sollte die Konfiguration des ''httpd.service'' mit nachfolgendem Befehl kopiert werden, da sonst die Konfigurationen bei einem System-Update überschrieben werden würden:
 +<code>
 +# cp -a /usr/lib/systemd/system/httpd.service /etc/systemd/system/httpd.service
 +</code>
 +
 +Anschließend kann der Inhalt der Konfigurationsdatei 
 +  * ''/etc/systemd/system/httpd.service''
 +wie nachfolgend dargestellt angepasst werden:
 +<code>
 +[Unit]
 +Description=The Apache HTTP Server
 +After=network.target network-online.target remote-fs.target nss-lookup.target
 +Documentation=man:httpd(8)
 +Documentation=man:apachectl(8)
 +
 +[Service]
 +Type=notify
 +EnvironmentFile=/etc/sysconfig/httpd
 +ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND
 +ExecReload=/usr/sbin/httpd $OPTIONS -k graceful
 +ExecStop=/bin/kill -WINCH ${MAINPID}
 +# We want systemd to give httpd some time to finish gracefully, but still want
 +# it to kill httpd after TimeoutStopSec if something went wrong during the
 +# graceful stop. Normally, Systemd sends SIGTERM signal right after the
 +# ExecStop, which would kill httpd. We are sending useless SIGCONT here to give
 +# httpd time to finish.
 +KillSignal=SIGCONT
 +PrivateTmp=true
 +
 +[Install]
 +WantedBy=multi-user.target
 +</code>
 +
 +**__Anpassung__**:
 +
 +  * <code>After=network.target network-online.target remote-fs.target nss-lookup.target</code>
 +
 +Ergänzung der Zeile um **''network-online.target''** an der entsprechende Stelle!
 +
 +Abschließend **müssen** die Änderungen noch __aktiviert__ werden, wozu nachfolgender Befehl genutzt werden kann:
 +<code>
 +# systemctl daemon-reload
 </code> </code>
  
Zeile 922: Zeile 972:
 # #
 #Listen 12.34.56.78:80 #Listen 12.34.56.78:80
-Listen 80+# Tachtler 
 +# default: Listen 80 
 +Listen 192.168.0.90:80 
 +Listen 192.168.1.90:80
  
 # #
Zeile 1098: Zeile 1151:
       LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %b (%{ratio}n)" combined_deflate       LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %b (%{ratio}n)" combined_deflate
       LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %b (%{ratio}n)" combined_proxypass_deflate       LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %b (%{ratio}n)" combined_proxypass_deflate
 +    </IfModule>
  
     #     #
Zeile 1256: Zeile 1310:
  
 **__Erklärungen__**: **__Erklärungen__**:
 +
 +=== Listen ===
 +
 +Setzen der IP-Adressen und des jeweiligen Ports, auf denen der [[http://httpd.apache.org|Apache HTTP Server]] lauschen soll. Eine Mehrfachdefinition ist, wie dargestellt, ebenfalls möglich!
 +
 +<code apache>
 +# Tachtler
 +# default: Listen 80
 +Listen 192.168.0.90:80
 +Listen 192.168.1.90:80
 +</code>
  
 === ServerAdmin === === ServerAdmin ===
Zeile 1277: Zeile 1342:
 === DirectoryIndex === === DirectoryIndex ===
  
-Festlegen der Dateien, welche vom [[http://httpd.apache.org|Apache HTTP Server]] zur anzeige gebracht werden sollen, wenn Anfragen gestellt werden (Einstiegsseiten in Web-Anwendungen):+Festlegen der Dateien, welche vom [[http://httpd.apache.org|Apache HTTP Server]] zur Anzeige gebracht werden sollen, wenn Anfragen gestellt werden (Einstiegsseiten in Web-Anwendungen):
 <code apache > <code apache >
 <IfModule dir_module> <IfModule dir_module>
Zeile 2614: Zeile 2679:
 # LoadModule socache_dbm_module modules/mod_socache_dbm.so # LoadModule socache_dbm_module modules/mod_socache_dbm.so
 LoadModule socache_memcache_module modules/mod_socache_memcache.so LoadModule socache_memcache_module modules/mod_socache_memcache.so
-LoadModule socache_shmcb_module modules/mod_socache_shmcb.so+LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
 LoadModule status_module modules/mod_status.so LoadModule status_module modules/mod_status.so
 # LoadModule substitute_module modules/mod_substitute.so # LoadModule substitute_module modules/mod_substitute.so
Zeile 2797: Zeile 2862:
  
 </code> </code>
- 
-===== Abschließender Neustart ===== 
- 
-Bevor **__weitere__** **Konfigurationsschritte** erfolgen, sollte dem **ersten Neustart** nichts im Wege stehen und die **erweiterten Konfigurationseinstellungen** sollten ebenfalls angezogen werden: 
-<code> 
-# systemctl restart httpd.service 
-</code> 
- 
-:!: **HINWEIS** - **Es erfolgen __keine__ weiteren Ausgaben, wenn der Start erfolgreich war !** 
- 
-===== Nützliche Befehle ===== 
- 
-Nachfolgende Befehle können bei der Administration eines [[http://httpd.apache.org|Apache HTTP Server]] nützlich sein.  
- 
-:!: **HINWEIS** - **Die nachfolgende Auflistung erhebt __keinen__ Anspruch auf Vollständigkeit !** 
- 
-==== apachectl ==== 
- 
-Der nachfolgende Befehl 
-  * ''/usr/sbin/apachectl'' 
-stellt das **Apache Server Control Interface** dar. 
- 
-Nachfolgende eine Auflistung der gebräuchlichsten Befehle unter Zuhilfenahme von ''apachectl'': 
- 
-^ Befehl                                    ^ Beschreibung                                             ^ 
-| <code>apachectl configtest</code>         | Syntaktische Überprüfung der kompletten Konfiguration    | 
-| <code>apachectl -t</code>                 | **Wie** ''configtest''                                   | 
-| <code>apachectl -v</code>                 | Ausgabe der Version                                      | 
-| <code>apachectl -V</code>                 | Ausgabe der Version und zusätzlicher Parameter           | 
-| <code>apachectl -l</code>                 | Ausgabe der einkompilierten Module                       | 
-| <code>apachectl -L</code>                 | Ausgabe aller möglichen Konfigurationsdirektiven         | 
-| <code>apachectl -t -D DUMP_VHOSTS</code>  | Auflistung aller konfigurierten virtuellen Hosts         | 
-| <code>apachectl -t -D DUMP_RUN_CFG</code> | Ausgabe der Laufzeit-Einstellungen                       | 
-| <code>apachectl -S</code>                 | **Wie** ''-t -D DUMP_VHOSTS'' und ''-t -D DUMP_RUN_CFG'' | 
-| <code>apachectl -t -D DUMP_MODULES</code> | Auflistung aller geladenen Module                        | 
-| <code>apachectl -M</code>                 | **Wie** ''-t -D DUMP_MODULES''                                 
  
 ===== Virtuelle Hosts ===== ===== Virtuelle Hosts =====
Zeile 2842: Zeile 2871:
 IP-basierte virtuelle Hosts verwenden die IP-Adresse der Verbindung, um den korrekten virtuellen Host zur Bedienung einer Anfrage zu ermitteln. Folglich wird eine eigene IP-Adresse für jeden virtuellen Host benötigt. IP-basierte virtuelle Hosts verwenden die IP-Adresse der Verbindung, um den korrekten virtuellen Host zur Bedienung einer Anfrage zu ermitteln. Folglich wird eine eigene IP-Adresse für jeden virtuellen Host benötigt.
  
-Bei der Verwendung von namensbasierten virtuellen Hosts verläßt sich der Server darauf, dass der Client den Hostnamen als Bestandteil der HTTP-Header angibt. Durch Anwendung dieser Technik können sich mehrere verschiedene Hosts die gleiche IP-Adresse teilen.+Bei der Verwendung von namensbasierten virtuellen Hosts verlässt sich der Server darauf, dass der Client den Hostnamen als Bestandteil der HTTP-Header angibt. Durch Anwendung dieser Technikkönnen sich mehrere verschiedene Hosts die gleiche IP-Adresse teilen.
  
-Nachfolgend soll deshalb ein Beispiel für die Erstellung eines **namensbasierten Hosts** konfigureirt werden.+Nachfolgend soll deshalb ein Beispiel für die Erstellung eines **namensbasierten Hosts** konfiguriert werden.
  
 <code apache> <code apache>
Zeile 2884: Zeile 2913:
 </code> </code>
  
-:!: FIXME **Hier geht es weiter...** FIXME :!:+**__Erklärungen__**:
  
 +=== VirtualHost ===
  
 +Die Direktive ''<VirtualHost *:80>'' bezeichnet den Anfang eines Virtuellen Hosts und die Direktive. ''</VirtualHost>'' bezeichnet das Ende eines virtuellen Hosts.
  
 +=== ServerAdmin ===
 +
 +Die Direktive ''ServerAdmin webmaster@tachtler.net'' bezeichnet die e-Mail-Adresse die z.B. bei Fehlermeldungsseiten angezeigt werden soll.
 +
 +=== ServerName ===
 +
 +Die Direktive ''ServerName httpd.tachtler.net'' ist die FQDN unter der dieser virtuelle Host primär erreichbar ist.
 +
 +=== ServerAlias ===
 +
 +Die Direktive ''ServerAlias www.httpd.tachtler.net'' bezeichnet einen oder mehrere weiter FQDN unter der der virtuelle Host erreichbar ist.
 +
 +=== ServerPath ===
 +
 +Die Direktive ''ServerPath /'' legt den URL-Pfad eines Hosts zur Verwendung mit namensbasierten virtuellen Hosts fest. 
 +
 +:!: **HINWEIS** - Dient nur zur Kompatibilität zu antiquierten Clients!
 +
 +=== DocumentRoot ===
 +
 +Die Direktive ''DocumentRoot "/var/www/html"'' legt das Stammverzeichnis in der sich die Dateien der Web-Anwendung befinden fest.
 +
 +=== Directory ===
 +
 +Die Direktive ''<Directory "/var/www/html">'' legt den Anfang von Direktiven fest, welche nur auf das genannte Verzeichnis des Dateisystems und Unterverzeichnisse angewendet werden und die Direktive </Directory> legt das Ende von Direktiven fest, welche nur auf das genannte Verzeichnis des Dateisystems und Unterverzeichnisse angewendet werden.
 +
 +=== Options ===
 +
 +Die Direktive ''Options -Indexes +FollowSymLinks'' legt fest welche Optionen für das Verzeichnis und die Unterverzeichnisse gelten sollen, hier ''-Indexes'' - keine Auflistung des Verzeichnisinhaltes und ''+FollowSymLinks'' - Der Server folgt symbolischen Links in diesem Verzeichnis.
 +
 +=== AllowOverride ===
 +
 +Die Direktive ''AllowOverride None'' legt fest, welche der angegebenen Direktiven frühere Konfigurationsanweisungen überschreiben dürfen.
 +
 +=== Require ===
 +
 +Die Direktive ''Require all granted'' überprüft ob ein bestimmter Benutzer autorisiert Zugriff zu nehmen, hier ist der Zugriff ohne Beschränkungen erlaubt.
 +
 +=== Rewrite ===
 +
 +Die Direktiven
 +<code apache>
 +                RewriteEngine on
 +                RewriteBase /
 +                RewriteRule ^$ %{REQUEST_URI}server-status [R=301,L]
 +</code>
 +schreiben die eingegebene URL in der Form um, dass wenn die URL nicht die Zeichenfolge ''server-status'' enthält, diese an die eingegebene URL angehängt wird und dies als ''redirect'' mit HTML-Code ''R=301'' und nach erfolgreicher Ausführung dies nicht weiter fortzusetzen ''L'' durchgeführt wird.
 +
 +=== DirectoryIndex ===
 +
 +Die Direktive ''DirectoryIndex index.htm'' legt die Datei(en) fest, welche als Einstiegsseite(n) bei einem Aufruf interpretiert werden sollen.
 +
 +=== ErrorLog ===
 +
 +Die Direktive ''ErrorLog logs/httpd_error.log'' definiert eine Datei in die Fehlermeldungen protokolliert werden sollen, bezogen auf diesen virtuellen Host.
 +
 +=== SetEnvIf  ===
 +
 +Die Direktive ''SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded'' definiert temporär eine Umgebungsvariable, welche später ausgewertet werden kann und als Inhalt eine mögliche Remote-Ip-Adresse beinhaltet.
 +
 +=== CustomLog ===
 +
 +Die Direktive ''CustomLog logs/httpd_access.log combined env=!forwarded'' bzw. ''CustomLog logs/httpd_access.log combined_proxypass env=forwarded'' definiert eine Datei in die Zugriffe und Meldungen protokolliert werden sollen, auf diesen virtuellen Host bezogen.
 +
 +Wenn die Umgebungsvariable __nicht__ gesetzt ist, ist das Format hier dann ''combined''. Wenn die Umgebungsvariable gesetzt ist, ist das Format hier dann ''combined_proxypass''.
 +
 +:!: **HINWEIS** - Die Log-Formate müssen vorher z.B. in der Konfigurationsdatei ''/etc/httpd/conf/httpd.conf'' jedoch definiert sein!
 +
 +===== Abschließender Neustart =====
 +
 +Nach Durchführung der vorhergehenden **Konfigurationsschritte**, sollte dem **abschließendem Neustart** nichts im Wege stehen und die **weiteren Konfigurationseinstellungen** ebenfalls angezogen werden:
 +<code>
 +# systemctl restart httpd.service
 +</code>
 +
 +:!: **HINWEIS** - **Es erfolgen __keine__ weiteren Ausgaben, wenn der Start erfolgreich war !**
 +
 +===== Nützliche Befehle =====
 +
 +Nachfolgende Befehle können bei der Administration eines [[http://httpd.apache.org|Apache HTTP Server]] nützlich sein. 
 +
 +:!: **HINWEIS** - **Die nachfolgende Auflistung erhebt __keinen__ Anspruch auf Vollständigkeit !**
 +
 +==== apachectl ====
 +
 +Der nachfolgende Befehl
 +  * ''/usr/sbin/apachectl''
 +stellt das **Apache Server Control Interface** dar.
 +
 +Nachfolgende eine Auflistung der gebräuchlichsten Befehle unter Zuhilfenahme von ''apachectl'':
 +
 +^ Befehl                                    ^ Beschreibung                                             ^
 +| <code>apachectl configtest</code>         | Syntaktische Überprüfung der kompletten Konfiguration    |
 +| <code>apachectl -t</code>                 | **Wie** ''configtest''                                   |
 +| <code>apachectl -v</code>                 | Ausgabe der Version                                      |
 +| <code>apachectl -V</code>                 | Ausgabe der Version und zusätzlicher Parameter           |
 +| <code>apachectl -l</code>                 | Ausgabe der einkompilierten Module                       |
 +| <code>apachectl -L</code>                 | Ausgabe aller möglichen Konfigurationsdirektiven         |
 +| <code>apachectl -t -D DUMP_VHOSTS</code>  | Auflistung aller konfigurierten virtuellen Hosts         |
 +| <code>apachectl -t -D DUMP_RUN_CFG</code> | Ausgabe der Laufzeit-Einstellungen                       |
 +| <code>apachectl -S</code>                 | **Wie** ''-t -D DUMP_VHOSTS'' und ''-t -D DUMP_RUN_CFG'' |
 +| <code>apachectl -t -D DUMP_MODULES</code> | Auflistung aller geladenen Module                        |
 +| <code>apachectl -M</code>                 | **Wie** ''-t -D DUMP_MODULES''                                
  
tachtler/apache_http_server_centos_7.1416925767.txt.gz · Zuletzt geändert: 2014/11/25 15:29 von klaus