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:53] 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 2906: Zeile 2935:
 Die Direktive ''ServerPath /'' legt den URL-Pfad eines Hosts zur Verwendung mit namensbasierten virtuellen Hosts fest.  Die Direktive ''ServerPath /'' legt den URL-Pfad eines Hosts zur Verwendung mit namensbasierten virtuellen Hosts fest. 
  
-:!: **HINWEIS** - Dient nur zur Kompatibilität zu antiquierter Clients!+:!: **HINWEIS** - Dient nur zur Kompatibilität zu antiquierten Clients!
  
-=== DocumentRoot  ===+=== DocumentRoot ===
  
 Die Direktive ''DocumentRoot "/var/www/html"'' legt das Stammverzeichnis in der sich die Dateien der Web-Anwendung befinden fest. Die Direktive ''DocumentRoot "/var/www/html"'' legt das Stammverzeichnis in der sich die Dateien der Web-Anwendung befinden fest.
Zeile 2920: Zeile 2949:
 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. 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  ===+=== AllowOverride ===
  
 Die Direktive ''AllowOverride None'' legt fest, welche der angegebenen Direktiven frühere Konfigurationsanweisungen überschreiben dürfen. Die Direktive ''AllowOverride None'' legt fest, welche der angegebenen Direktiven frühere Konfigurationsanweisungen überschreiben dürfen.
  
-=== Require  ===+=== Require ===
  
 Die Direktive ''Require all granted'' überprüft ob ein bestimmter Benutzer autorisiert Zugriff zu nehmen, hier ist der Zugriff ohne Beschränkungen erlaubt. Die Direktive ''Require all granted'' überprüft ob ein bestimmter Benutzer autorisiert Zugriff zu nehmen, hier ist der Zugriff ohne Beschränkungen erlaubt.
Zeile 2936: Zeile 2965:
                 RewriteRule ^$ %{REQUEST_URI}server-status [R=301,L]                 RewriteRule ^$ %{REQUEST_URI}server-status [R=301,L]
 </code> </code>
-schreiben die eingegeben URL in der Form um, das wenn die URL nicht die Zeichenfolge ''server-status'' enthält, diese an die eingegeben URL angehängt wird und dies als ''redirect'' mit HTML-Code ''R=301'' und nach erfolgreicher Ausführung dies nicht weiter fortzusetzen ''L''+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+Die Direktive ''DirectoryIndex index.htm'' legt die Datei(en) fest, welche als Einstiegsseite(n) bei einem Aufruf interpretiert werden sollen.
  
-===  ===+=== ErrorLog ===
  
-Die Direktive+Die Direktive ''ErrorLog logs/httpd_error.log'' definiert eine Datei in die Fehlermeldungen protokolliert werden sollen, bezogen auf diesen virtuellen Host.
  
-===  ===+=== SetEnvIf  ===
  
-Die Direktive+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+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''.
  
-Die Direktive+:!: **HINWEIS** - Die Log-Formate müssen vorher z.B. in der Konfigurationsdatei ''/etc/httpd/conf/httpd.conf'' jedoch definiert sein!
  
-:!: FIXME **Hier geht es weiter...** FIXME :!:+===== 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.1416927183.txt.gz · Zuletzt geändert: 2014/11/25 15:53 von klaus