Update to r54573:

Update the PHP and SSL subsections of the Apache section.

Reviewed by:	bcr
Differential Revision:	https://reviews.freebsd.org/D26801
This commit is contained in:
Bjoern Heidotting 2020-10-16 12:24:35 +00:00
parent 8b87df479b
commit ea93ec4c23
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=54603

View file

@ -5,7 +5,7 @@
$FreeBSD$
$FreeBSDde: de-docproj/books/handbook/network-servers/chapter.xml,v 1.103 2011/12/24 15:51:18 bcr Exp $
basiert auf: r54371
basiert auf: r54573
-->
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
@ -3722,7 +3722,7 @@ freebsd.org. (A)
drei der am häufigsten verwendeten Module.</para>
<sect3>
<title><filename>mod_ssl</filename></title>
<title>SSL-Unterstützung</title>
<indexterm>
<primary>Webserver</primary>
@ -3737,21 +3737,65 @@ freebsd.org. (A)
<primary>Verschlüsselung</primary>
</indexterm>
<para>Das Modul <filename>mod_ssl</filename> verwendet die
<application>OpenSSL</application>-Bibliothek, um über die
Protokolle Secure Sockets Layer (<acronym>SSLv3</acronym>)
sowie Transport Layer Security (<acronym>TLSv1</acronym>)
eine starke Verschlüsselung zu ermöglichen. Mit diesem
Modul können Sie ein signiertes Zertifikat von einer
Zertifizierungsstelle anfordern, damit Sie einen sicheren
Webserver unter &os; betreiben können.</para>
<para>Zu einem bestimmten Zeitpunkt erforderte die
Unterstützung von <acronym>SSL</acronym> innerhalb von
Apache ein separates Modul namens
<filename>mod_ssl</filename>. Dies ist nicht mehr der Fall
und die Installation des Apache-Webservers wird im Standard
mit <acronym>SSL</acronym>-Unterstützung ausgeliefert. Ein
Beispiel, wie Sie <acronym>SSL</acronym>-Unterstützung für
einen Webserver aktivieren können, finden Sie in der Datei
<filename>httpd-ssl.conf</filename> im Verzeichnis <filename
role="directory">/usr/local/etc/apache24/extra</filename>.
In diesem Verzeichnis befindet sich auch eine Beispieldatei
namens <filename>ssl.conf-sample</filename>. Es wird
empfohlen, beide Dateien zu überprüfen, um sichere Webseiten
auf dem Apache-Webserver einzurichten.</para>
<para>Unter &os; wird das Modul <filename>mod_ssl</filename>
standardmäßig im Port und auch im Paket aktiviert. Die
verfügbaren Konfigurationsanweisungen werden in <uri
xlink:href="http://httpd.apache.org/docs/current/mod/mod_ssl.html">
http://httpd.apache.org/docs/current/mod/mod_ssl.html</uri>
beschrieben.</para>
<para>Nachdem die Konfiguration von <acronym>SSL</acronym>
abgeschlossen ist, muss die folgende Zeile in
<filename>httpd.conf</filename> auskommentiert werden, um
die Änderungen beim nächsten Neustart oder erneuten Laden
der Konfiguration zu aktivieren:</para>
<programlisting>#Include etc/apache24/extra/httpd-ssl.conf</programlisting>
<warning>
<para><acronym>SSL</acronym> in Version 2 und 3 haben
bekannte Schwachstellen. Es wird dringend empfohlen,
<acronym>TLS</acronym> Version 1.2 und 1.3 anstelle der
älteren <acronym>SSL</acronym>-Optionen zu aktivieren.
Dies kann durch die Einstellung der folgenden Optionen in
<filename>ssl.conf</filename> erreicht werden:</para>
</warning>
<programlisting>SSLProtocol all -SSLv3 -SSLv2 +TLSv1.2 +TLSv1.3
SSLProxyProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1</programlisting>
<para>Um die Konfiguration von <acronym>SSL</acronym> im
Webserver abzuschließen, entfernen Sie den Kommentar in der
folgenden Zeile, um sicherzustellen, dass die Konfiguration
bei einem Neustart oder beim erneuten laden der
Konfiguration von Apache übernommen wird:</para>
<programlisting># Secure (SSL/TLS) connections
Include etc/apache24/extra/httpd-ssl.conf</programlisting>
<para>Diese Zeilen müssen in <filename>httpd.conf</filename>
ebenfalls auskommentiert bleiben, um
<acronym>SSL</acronym> in Apache vollständig zu
unterstützen:</para>
<programlisting>LoadModule authn_socache_module libexec/apache24/mod_authn_socache.so
LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
LoadModule ssl_module libexec/apache24/mod_ssl.so</programlisting>
<para>Der nächste Schritt ist die Kooperation mit einer
Zertifizierungsstelle, um die entsprechenden Zertifikate auf
dem System installieren zu lassen. Dadurch wird eine
Vertrauenskette für die Webseite etabliert und jegliche
Warnungen vor selbstsignierten Zertifikaten
verhindert.</para>
</sect3>
<sect3>
@ -3810,59 +3854,96 @@ freebsd.org. (A)
erzeugten Internetseiten zu ermöglichen.</para>
<para>Damit der <application>Apache</application>-Webserver
<acronym>PHP</acronym>5 unterstützt, der Port oder das Paket
<package>lang/php56</package> installiert werden. Dies wird
die Module installieren und konfigurieren, die für die
Unterstützung von dynamischen
<acronym>PHP</acronym>-Anwendungen benötigt werden. Die
Installation wird automatisch folgende Zeilen in
<filename>/usr/local/etc/apache2<replaceable>4</replaceable>/httpd.conf</filename>
hinzufügen:</para>
<acronym>PHP</acronym> und weitere in
<acronym>PHP</acronym> geschriebene Funktionen unterstützt,
muss das entsprechende Paket installiert werden.</para>
<programlisting>LoadModule php5_module libexec/apache24/libphp5.so</programlisting>
<para>Sie können mit <command>pkg</command> die Paketdatenbank
nach allen unterstützten <acronym>PHP</acronym>-Versionen
durchsuchen:</para>
<!--
I don't think this is still needed
<programlisting>AddModule mod_php5.c
&lt;IfModule mod_php5.c&gt;
DirectoryIndex index.php index.html
&lt;/IfModule&gt;
&lt;IfModule mod_php5.c&gt;
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
&lt;/IfModule&gt;</programlisting>
-->
<screen>&prompt.root; <userinput>pkg search php</userinput></screen>
<para>Danach rufen Sie
<command>apachectl</command> auf, um das
<acronym>PHP</acronym>-Modul zu laden:</para>
<para>Die Ausgabe ist eine Liste mit Versionen und Funktionen
des jeweiligen Pakets. Die Komponenten sind vollständig
modular, d.h. die Funktionen werden durch die Installation
des entsprechenden Pakets aktiviert. Geben Sie folgenden
Befehl ein, um <acronym>PHP</acronym>-Version 7.4 für
Apache zu installieren:</para>
<screen>&prompt.root; <userinput>pkg install mod_php74</userinput></screen>
<para>Falls irgendwelche Pakete Abhängigkeiten besitzen,
werden diese zusätzlichen Pakete ebenfalls
installiert.</para>
<para>Standardmäßig ist <acronym>PHP</acronym> nicht
aktiviert. Die folgenden Zeilen müssen in der
Apache-Konfigurationsdatei unterhalb von
<filename
role="directory">/usr/local/etc/apache24</filename>
hinzugefügt werden, um <acronym>PHP</acronym> zu
aktivieren:</para>
<programlisting>&lt;FilesMatch "\.php$"&gt;
SetHandler application/x-httpd-php
&lt;/FilesMatch&gt;
&lt;FilesMatch "\.phps$"&gt;
SetHandler application/x-httpd-php-source
&lt;/FilesMatch&gt;</programlisting>
<para>Zusätzlich muss auch der
<option>DirectoryIndex</option> in der Konfigurationsdatei
aktualisiert werden und Apache muss entweder neu gestartet,
oder die Konfiguration neu geladen werden, damit die
Änderungen wirksam werden.</para>
<para>Mit <command>pkg</command> kann die Unterstützung für
viele weitere <acronym>PHP</acronym>-Funktionen installiert
werden. Um beispielsweise die Unterstützung für
<acronym>XML</acronym> oder <acronym>SSL</acronym> zu
erhalten, installieren Sie die entsprechenden Pakete:</para>
<screen>&prompt.root; <userinput>pkg install php74-xml php74-openssl</userinput></screen>
<para>Wie zuvor muss die Konfiguration von Apache neu geladen
werden, damit die Änderungen wirksam werden. Dies gilt auch
für Fälle, in denen lediglich ein Modul installiert
wurde.</para>
<para>Geben Sie folgenden Befehl ein, um einen geordneten
Neustart durchzuführen und die Konfiguration neu zu
laden:</para>
<screen>&prompt.root; <userinput>apachectl graceful</userinput></screen>
<para>Die <acronym>PHP</acronym>-Unterstützung von
<package>www/mod_php56</package> verfügt nur über wenige
Funktionen. Zusätzliche Funktionen können mit dem Port
<package>lang/php56-extensions</package> installiert werden.
Der Port bietet ein Auswahlmenü, über das Sie
verschiedene <acronym>PHP</acronym>-Erweiterungen
installieren können.</para>
<para>Sobald die Installation abgeschlossen ist, gibt es zwei
Möglichkeiten, um eine Liste der installierten
<acronym>PHP</acronym>-Module und Informationen über die
Umgebung der Installation zu erhalten. Die erste
Möglichkeit besteht darin, die vollständige
<acronym>PHP</acronym>-Binärdatei zu installieren und den
Befehl auszuführen, um die Informationen zu erhalten:</para>
<para>Alternativ können einzelne Erweiterungen über den
jeweiligen Port installieren. Um beispielsweise die
Unterstützung des Datenbankservers
<application>MySQL</application> in <acronym>PHP</acronym>
zu aktivieren, installieren Sie den Port
<filename>databases/php56-mysql</filename>.</para>
<screen>&prompt.root; <userinput>pkg install php74</userinput></screen>
<screen>&prompt.root; <userinput>php -i | less</userinput></screen>
<para>Nachdem Sie eine Erweiterung installiert haben,
müssen Sie den
<application>Apache</application>-Server neu starten, damit
die Erweiterung auch erkannt wird:</para>
<para>Da die Ausgabe des Befehls sehr umfangreich ist, ist die
Weiterleitung an einen
<foreignphrase>Pager</foreignphrase>, wie beispielsweise
<command>more</command> oder <command>less</command>,
sinnvoll.</para>
<screen>&prompt.root; <userinput>apachectl graceful</userinput></screen>
<para>Ab nun wird <application>MySQL</application> von
<application>PHP</application> unterstützt.</para>
<para>Um Änderungen an der globalen Konfiguration von
<acronym>PHP</acronym> vorzunehmen, gibt es schließlich eine
gut dokumentierte Datei, die in
<filename>/usr/local/etc/php.ini</filename> installiert ist.
Zum Zeitpunkt der Installation wird diese Datei nicht
existieren, da zwei Versionen zur Auswahl stehen. Eine
<filename>php.ini-development</filename> und eine
<filename>php.ini-production</filename>. Diese Dateien
sind Ansatzpunkte, die Administratoren bei der
Implementierung unterstützen sollen.</para>
</sect3>
</sect2>