Update to r44578:

Editorial review of first half of Apache chapter.
Some reshuffling to improve flow.
Add descriptions for virtual hosting and modules.
Add URLs to module config docs.

Reviewed by:	bcr
Differential Revision:	https://reviews.freebsd.org/D6724
This commit is contained in:
Bjoern Heidotting 2016-06-04 12:09:51 +00:00
parent 4ead68984b
commit ac5a179400
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48894

View file

@ -5,7 +5,7 @@
$FreeBSD$ $FreeBSD$
$FreeBSDde: de-docproj/books/handbook/network-servers/chapter.xml,v 1.103 2011/12/24 15:51:18 bcr Exp $ $FreeBSDde: de-docproj/books/handbook/network-servers/chapter.xml,v 1.103 2011/12/24 15:51:18 bcr Exp $
basiert auf: r44567 basiert auf: r44578
--> -->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="network-servers"> <chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="network-servers">
<!-- <!--
@ -4422,14 +4422,19 @@ $include Kexample.com.+005+nnnnn.ZSK.key ; ZSK</programlisting>
</sect1> </sect1>
<sect1 xml:id="network-apache"> <sect1 xml:id="network-apache">
<!--
<info> <info>
<title>Apache HTTP-Server</title>
<authorgroup> <authorgroup>
<author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname><contrib>Beigetragen von </contrib></author> <author>
<personname>
<firstname>Murray</firstname>
<surname>Stokely</surname>
</personname>
<contrib>Beigetragen von </contrib>
</author>
</authorgroup> </authorgroup>
</info> </info>
-->
<title>Der Apache HTTP-Server</title>
<indexterm> <indexterm>
<primary>Webserver</primary> <primary>Webserver</primary>
@ -4476,14 +4481,14 @@ $include Kexample.com.+005+nnnnn.ZSK.key ; ZSK</programlisting>
<filename>bin</filename> und <filename>bin</filename> und
<filename>sbin</filename> unterhalb des <filename>sbin</filename> unterhalb des
Serverwurzelverzeichnisses installiert, während sich Serverwurzelverzeichnisses installiert, während sich
Konfigurationsdateien im Verzeichnis Konfigurationsdateien im Unterverzeichnis
<filename>etc/apache2<replaceable>x</replaceable></filename> <filename>etc/apache2<replaceable>x</replaceable></filename>
befinden.</para> befinden.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>ServerAdmin you@your.address</literal></term> <term><literal>ServerAdmin you@example.com</literal></term>
<listitem> <listitem>
<para>Die E-Mail-Adresse, an die Mitteilungen über <para>Die E-Mail-Adresse, an die Mitteilungen über
@ -4494,13 +4499,18 @@ $include Kexample.com.+005+nnnnn.ZSK.key ; ZSK</programlisting>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><literal>ServerName www.example.com</literal></term> <term><literal>ServerName www.example.com:80</literal></term>
<listitem> <listitem>
<para>Erlaubt dem Administrator, einen Rechnernamen <para>Erlaubt dem Administrator, einen Rechnernamen
festzulegen, den der Server an die Clients sendet. festzulegen, den der Server an die Clients sendet.
Beispielsweise könnte <systemitem>www</systemitem> statt Beispielsweise könnte <systemitem>www</systemitem> statt
des richtigen Rechnernamens verwendet werden.</para> des richtigen Rechnernamens verwendet werden. Wenn das
System keinen eingetragenen <acronym>DNS</acronym>-Namen
hat, kann stattdessen die <acronym>IP</acronym>-Adresse
eingetragen werden. Lauscht der Server auf einem
anderen Port, tauschen Sie die <literal>80</literal>
gegen eine entsprechende Portnummer.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -4522,41 +4532,48 @@ $include Kexample.com.+005+nnnnn.ZSK.key ; ZSK</programlisting>
anzulegen, bevor Änderungen durchgeführt werden. Wenn die anzulegen, bevor Änderungen durchgeführt werden. Wenn die
Konfiguration von <application>Apache</application> Konfiguration von <application>Apache</application>
abgeschlossen ist, speichern Sie die Datei und überprüfen Sie abgeschlossen ist, speichern Sie die Datei und überprüfen Sie
die Konfiguration mit <command>apachectl</command>. Geben Sie dazu die Konfiguration mit <command>apachectl</command>. Der
<command>apachectl configtest</command> ein. Dieser Befehl Befehl <command>apachectl configtest</command> sollte
sollte <literal>Syntax OK</literal> zurückgeben.</para> <literal>Syntax OK</literal> zurückgeben.</para>
<indexterm><primary>Apache</primary> <indexterm><primary>Apache</primary>
<secondary>Starten oder Beenden</secondary></indexterm> <secondary>Starten oder Beenden</secondary></indexterm>
<para>Der <package>www/apache24</package> Port
installiert ein &man.rc.8; Skript, welches zum
starten, stoppen und neustarten von
<application>Apache</application> benutzt werden kann.
Das Skript befindet sich in
<filename>/usr/local/etc/rc.d/</filename>.</para>
<para>Um den <application>Apache</application> beim Systemstart <para>Um den <application>Apache</application> beim Systemstart
zu starten, fügen Sie folgende Zeile in zu starten, fügen Sie folgende Zeile in
<filename>/etc/rc.conf</filename> ein:</para> <filename>/etc/rc.conf</filename> ein:</para>
<programlisting>apache24_enable="YES"</programlisting> <programlisting>apache<replaceable>24</replaceable>_enable="YES"</programlisting>
<para>Wenn Sie während des Systemstarts weitere Parameter an den <para>Wenn Sie während des Systemstarts weitere Parameter an den
<application>Apache</application> übergeben wollen, können Sie <application>Apache</application> übergeben wollen, können Sie
diese durch eine zusätzliche Zeile in diese durch eine zusätzliche Zeile in
<filename>rc.conf</filename> angeben:</para> <filename>rc.conf</filename> angeben:</para>
<programlisting>apache24_flags=""</programlisting> <programlisting>apache<replaceable>24</replaceable>_flags=""</programlisting>
<para>Wenn <application>apachectl</application> keine
Konfigurationsfehler meldet, starten Sie
<command>httpd</command>:</para>
<screen>&prompt.root; <userinput>service apache<replaceable>24</replaceable> start</userinput></screen>
<para>Sie können den <command>httpd</command>-Dienst testen,
indem Sie
<literal>http://<replaceable>localhost</replaceable></literal>
in einen Browser eingeben, wobei Sie
<replaceable>localhost</replaceable> durch den
vollqualifizierten Domainnamen der Maschine ersetzen, auf dem
der <command>httpd</command> läuft. Die Standard Webseite,
die angezeigt wird, ist
<filename>/usr/local/www/apache<replaceable>24</replaceable>/data/index.html</filename>.</para>
<para>Die Konfiguration von <application>Apache</application> <para>Die Konfiguration von <application>Apache</application>
kann bei nachfolgenden Änderungen an der Konfigurationsdatei kann bei nachfolgenden Änderungen an der Konfigurationsdatei
bei laufendem <command>httpd</command>, auf Fehler überprüft bei laufendem <command>httpd</command>, auf Fehler überprüft
werden. Dies kann durch das &man.rc.8;-Skript direkt , oder werden. Geben Sie dazu folgendes Kommando ein:</para>
über das Dienstprogramm &man.service.8; geschehen, indem Sie
eines der folgenden Kommandos ausführen:</para>
<screen>&prompt.root; <userinput>service apache24 configtest</userinput></screen> <screen>&prompt.root; <userinput>service apache<replaceable>24</replaceable> configtest</userinput></screen>
<note> <note>
<para>Es ist wichitg zu beachten, dass <para>Es ist wichitg zu beachten, dass
@ -4564,65 +4581,49 @@ $include Kexample.com.+005+nnnnn.ZSK.key ; ZSK</programlisting>
und somit nicht zwingend mit anderen und somit nicht zwingend mit anderen
&man.rc.8;-Startskripten funktioniert.</para> &man.rc.8;-Startskripten funktioniert.</para>
</note> </note>
<para>Wenn der <application>Apache</application> keine Fehler in
der Konfiguration meldet, starten Sie <command>httpd</command>
mithilfe von &man.service.8;:</para>
<screen>&prompt.root; <userinput>service apache24 start</userinput></screen>
<para>Sie können den <command>httpd</command>-Dienst testen,
indem Sie
<literal>http://<replaceable>localhost</replaceable></literal>
in einen Browser eingeben, wobei Sie
<replaceable>localhost</replaceable> durch den
vollqualifizierten Domainnamen der Machine ersetzen, auf dem
der <command>httpd</command> läuft. Die Standard Webseite,
die angezeigt wird, ist
<filename>/usr/local/www/apache24/data/index.html</filename>.</para>
</sect2> </sect2>
<sect2> <sect2>
<title>Virtual Hosting</title> <title>Virtual Hosting</title>
<para>Der <application>Apache</application> unterstützt zwei <para><foreignphrase>Virtual Hosting</foreignphrase> ermöglicht
Formen des <foreignphrase>Virtual Hostings</foreignphrase>. Die es, mehrere Webseiten auf einem
erste Möglichkeit bezeichnet man als namenbasiertes <application>Apache</application>-Server laufen zu lassen.
virtuelles Hosting. Dabei wird der HTTP/1.1-Header der Clients Die virtuellen Hosts können <firstterm>IP-basiert</firstterm>
dazu verwendet, den Rechnernamen zu bestimmen. Dadurch wird es oder <firstterm>namensbasiert</firstterm> sein.
möglich, mehrere Domains unter der gleichen <acronym>IP</acronym>-basiertes virtual Hosting verwendet
eine <acronym>IP</acronym>-Adresse für jede Webseite. Beim
namensbasierten virtual Hosting wird der HTTP/1.1-Header der
Clients dazu verwendet, den Rechnernamen zu bestimmen.
Dadurch wird es möglich, mehrere Domains unter der gleichen
<acronym>IP</acronym>-Adresse zu betreiben.</para> <acronym>IP</acronym>-Adresse zu betreiben.</para>
<para>Damit der <application>Apache</application> namenbasierte <para>Damit der <application>Apache</application> namenbasierte
virtuelle Domains verwalten kann, fügen Sie die folgende virtuelle Domains verwalten kann, fügen Sie für jede Webseite
Zeile in <filename>httpd.conf</filename> ein:</para> einen separaten <literal>VirtualHost</literal>-Block ein.
Wenn der Webserver beispielsweise <systemitem
<programlisting>NameVirtualHost *</programlisting> class="fqdomainname">www.domain.tld</systemitem> heißt und
die virtuelle Domain <systemitem
<para>Wenn der Webserver
<systemitem class="fqdomainname">www.domain.tld</systemitem>
heißt und die virtuelle Domain
<systemitem
class="fqdomainname">www.someotherdomain.tld</systemitem> class="fqdomainname">www.someotherdomain.tld</systemitem>
einrichtet werden soll, ergänzen Sie einrichtet werden soll, ergänzen Sie
<filename>httpd.conf</filename> um folgende Einträge:</para> <filename>httpd.conf</filename> um folgende Einträge:</para>
<screen>&lt;VirtualHost *&gt; <programlisting>&lt;VirtualHost *&gt;
ServerName www.domain.tld ServerName <replaceable>www.domain.tld</replaceable>
DocumentRoot /www/domain.tld DocumentRoot <replaceable>/www/domain.tld</replaceable>
&lt;/VirtualHost&gt; &lt;/VirtualHost&gt;
&lt;VirtualHost *&gt; &lt;VirtualHost *&gt;
ServerName www.someotherdomain.tld ServerName <replaceable>www.someotherdomain.tld</replaceable>
DocumentRoot /www/someotherdomain.tld DocumentRoot <replaceable>/www/someotherdomain.tld</replaceable>
&lt;/VirtualHost&gt;</screen> &lt;/VirtualHost&gt;</programlisting>
<para>Ersetzen Sie dabei die Adressen sowie den Pfad zu den <para>Setzen Sie für jeden virtuellen Host die entsprechenden
Dokumenten durch Ihre eigenen Einstellungen.</para> Werte für <literal>ServerName</literal> und
<literal>DocumentRoot</literal>.</para>
<para>Ausführliche Informationen zum Einrichten von <para>Ausführliche Informationen zum Einrichten von
virtuellen Domains finden Sie in der offiziellen virtuellen Hosts finden Sie in der offiziellen
<application>Apache</application>-Dokumentation unter <application>Apache</application>-Dokumentation unter
<uri xlink:href="http://httpd.apache.org/docs/vhosts/">http://httpd.apache.org/docs/vhosts/</uri>.</para> <uri xlink:href="http://httpd.apache.org/docs/vhosts/">http://httpd.apache.org/docs/vhosts/</uri>.</para>
@ -4634,15 +4635,25 @@ DocumentRoot /www/someotherdomain.tld
<indexterm><primary>Apache</primary> <indexterm><primary>Apache</primary>
<secondary>Module</secondary></indexterm> <secondary>Module</secondary></indexterm>
<para>Es gibt viele verschiedene <para><application>Apache</application> verwendet Module, die
<application>Apache</application>-Module, die den Server den Server um zusätzliche Funktionen erweitern. Eine
um zusätzliche Funktionen erweitern. Die vollständige Auflistung der zur Verfügung stehenden Module
&os; Ports-Sammlung ermöglicht es Ihnen, den und Konfigurationsdetails finden Sie unter <uri
<application>Apache</application> gemeinsam mit einigen der xlink:href="http://httpd.apache.org/docs/current/mod/">
beliebtesten Zusatzmodule zu installieren.</para> http://httpd.apache.org/docs/current/mod/</uri>.</para>
<para>In &os; können einige Module mit dem Port
<package>www/apache24</package> kompiliert werden. Geben Sie
in <filename>/usr/ports/www/apache24</filename>
<command>make config</command> ein, um zu sehen, welche Module
zur Verfügung stehen und welche Module in der Voreinstellung
aktiviert sind. Wenn ein Modul nicht zusammen mit dem Port
kompiliert wird, bietet die Ports-Sammlung die Möglichkeit
viele Module zu installieren. Dieser Abschnitt beschreibt
drei der am häufigsten verwendeten Module.</para>
<sect3> <sect3>
<title><application>mod_ssl</application></title> <title><filename>mod_ssl</filename></title>
<indexterm> <indexterm>
<primary>Webserver</primary> <primary>Webserver</primary>
@ -4657,157 +4668,61 @@ DocumentRoot /www/someotherdomain.tld
<primary>Verschlüsselung</primary> <primary>Verschlüsselung</primary>
</indexterm> </indexterm>
<para>Das Modul <application>mod_ssl</application> verwendet die <para>Das Modul <filename>mod_ssl</filename> verwendet die
OpenSSL-Bibliothek, um, unter Nutzung der Protokolle Secure <application>OpenSSL</application>-Bibliothek, um über die
Sockets Layer (SSL v2/v3) sowie Transport Layer Security Protokolle Secure Sockets Layer (<acronym>SSLv3</acronym>)
(TLS v1) starke Verschlüsselung zu ermöglichen. sowie Transport Layer Security (<acronym>TLSv1</acronym>)
Durch dieses Modul können Sie ein signiertes Zertifikat eine starke Verschlüsselung zu ermöglichen. Mit diesem
von einer Zertifizierungsstelle anfordern, damit Sie einen Modul können Sie ein signiertes Zertifikat von einer
sicheren Webserver unter &os; betreiben können.</para> Zertifizierungsstelle anfordern, damit Sie einen sicheren
Webserver unter &os; betreiben können.</para>
<para>Das Modul <application>mod_ssl</application> wird <para>Unter &os; wird das Modul <filename>mod_ssl</filename>
standardmäßig kompiliert, kann aber auch noch standardmäßig im Port und auch im Paket aktiviert. Die
nachträglich durch die Angabe von verfügbaren Konfigurationsanweisungen werden in <uri
<literal>-DWITH_SSL</literal> zur Kompilierzeit aktiviert xlink:href="http://httpd.apache.org/docs/current/mod/mod_ssl.html">
werden.</para> http://httpd.apache.org/docs/current/mod/mod_ssl.html</uri>
beschrieben.</para>
</sect3> </sect3>
<sect3> <sect3>
<title>Skriptsprachen</title> <title><filename>mod_perl2</filename></title>
<para>Für die wichtigsten Skriptsprachen existieren Module,
die es erlauben, <application>Apache</application>-Module
nahezu vollständig in einer Skriptsprache zu programmieren.
Derartige Module dienen oft dazu, einen Sprach-Interpreter in
den Webserver einzubetten. Dadurch wird ein zusätzlicher
externer Interpreter überflüssig, was die Startzeit
von dynamischen Internetseiten deutlich verringert.</para>
</sect3>
</sect2>
<sect2>
<title>Dynamische Webseiten</title>
<indexterm><primary>Webserver</primary>
<secondary>dynamisch</secondary></indexterm>
<para>In den vergangenen Jahren haben immer mehr Unternehmen
das Internet als Mittel für die Steigerung ihrer
Einnahmen sowie für die Erhöhung ihrer Reichweite
entdeckt. Dadurch stieg auch die Nachfrage nach interaktiven
Internetinhalten. Neben einigen Unternehmen, darunter
&microsoft;, die dafür proprietäre Produkte
entwickelt haben, hat auch die Open Source Community auf
diesen Umstand reagiert und unter anderem mit Django,
Ruby on Rails, <application>mod_perl2</application>, und
<application>mod_php</application> Möglichkeiten zur
Generierung dynamischer Internetseiten geschaffen.</para>
<sect3>
<title>Django</title>
<indexterm><primary>Python</primary></indexterm>
<indexterm><primary>Django</primary></indexterm>
<para>Bei <foreignphrase>Django</foreignphrase> handelt es
sich um ein unter der BSD-Lizenz verfügbares
Framework zur schnellen Erstellung von mächtigen
Internet-Applikationen. Es beinhaltet einen
objekt-relationalen Mapper (wodurch Datentypen als
Phyton-Objekte entwickelt werden können) sowie eine
API für den dynamischen Datenbankzugriff auf diese
Objekte, ohne dass Entwickler jemals SQL-Code schreiben
müssen. Zusätzlich existiert ein umfangreiches
Template-System, wodurch die Programmlogik von der
HTML-Präsentation getrennt werden kann.</para>
<para>Django setzt das Modul
<application>mod_python</application>,
den <application>Apache</application>-Webserver sowie eine
SQL-Datenbank voraus. Der &os;-Port wird alle
Abhängigkeiten mit sinnvollen Optionen konfigurieren und
installieren.</para>
<example xml:id="network-www-django-install">
<title>Django mit <application>Apache2</application>,
<application>mod_python3</application>, und
<application>PostgreSQL</application> installieren</title>
<screen>&prompt.root; <userinput>cd /usr/ports/www/py-django; make all install clean -DWITH_MOD_PYTHON3 -DWITH_POSTGRESQL</userinput></screen>
</example>
<para>Nachdem Django und die abhängigen Pakete installiert
sind, benötigt die Anwendung ein Projektverzeichnis und die
Apache-Konfiguration, um den eingebetteten
Python-Interpreter zu nutzen. Dieser wird spezifische URLs
der Seite aufrufen.</para>
<example xml:id="network-www-django-apache-config">
<title>Apache-Konfiguration für Django/mod_python</title>
<para>Sie müssen <filename>httpd.conf</filename> anpassen,
damit Apache Anfragen für bestimmte URLs an die
Internet-Applikation übergibt:</para>
<screen>&lt;Location "/"&gt;
SetHandler python-program
PythonPath "['/dir/to/the/django/packages/'] + sys.path"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonAutoReload On
PythonDebug On
&lt;/Location&gt;</screen>
</example>
</sect3>
<sect3>
<title>Ruby on Rails</title>
<indexterm><primary>Ruby on Rails</primary></indexterm>
<para>Bei <foreignphrase>Ruby on Rails</foreignphrase> handelt
es sich um ein weiteres, als Open Source verfügbares
Webframework. Es bietet einen kompletten Entwicklungsstack
und erlaubt es Webentwicklern, umfangreiche und mächtige
Applikationen in kurzer Zeit zu programmieren. Das
Framework kann über die Ports-Sammlung installiert
werden.</para>
<screen>&prompt.root; <userinput>cd /usr/ports/www/rubygem-rails; make all install clean</userinput></screen>
</sect3>
<sect3>
<title><application>mod_perl2</application></title>
<indexterm> <indexterm>
<primary>mod_perl2</primary> <primary>mod_perl2</primary>
<secondary>Perl</secondary> <secondary>Perl</secondary>
</indexterm> </indexterm>
<para>Die Kombination <application>Apache</application>/Perl <para><application>mod_perl2</application> macht es
vereinigt die Vorteile der Programmiersprache Perl und des möglich, vollständig in <application>Perl</application>
<application>Apache</application> HTTP-Servers. Durch geschriebene <application>Apache</application>-Module zu
das Modul <application>mod_perl2</application> ist es erzeugen. Da der
möglich, vollständig in Perl geschriebene <application>Perl</application>-Interpreter in den Server
<application>Apache</application>-Module zu erzeugen. eingebettet wird, muss weder ein externer Interpreter noch
Da der Perl-Interpreter in den Server eingebettet wird, <application>Perl</application> zusätzlich aufgerufen
müssen Sie weder einen externen Interpreter noch werden.</para>
Perl zusätzlich aufrufen.</para>
<para><application>mod_perl2</application> ist über den Port <para><application>mod_perl2</application> wird über den Port
<filename role="package">www/mod_perl2</filename> oder das Paket <package>www/mod_perl2</package> installiert.
erhältlich.</para> Dokumentation für dieses Modul finden Sie unter <uri
xlink:href="http://perl.apache.org/docs/2.0/index.html">
http://perl.apache.org/docs/2.0/index.html</uri>.</para>
</sect3> </sect3>
<sect3> <sect3>
<!--
<info> <info>
<title><filename>mod_php</filename></title>
<authorgroup> <authorgroup>
<author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Geschrieben von </contrib></author> <author>
<personname>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
</personname>
<contrib>Geschrieben von </contrib>
</author>
</authorgroup> </authorgroup>
</info> </info>
-->
<title><application>mod_php</application></title>
<indexterm> <indexterm>
<primary>mod_php</primary> <primary>mod_php</primary>
@ -4918,6 +4833,100 @@ DocumentRoot /www/someotherdomain.tld
<application>PHP</application> unterstützt.</para> <application>PHP</application> unterstützt.</para>
</sect3> </sect3>
</sect2> </sect2>
<sect2>
<title>Dynamische Webseiten</title>
<indexterm>
<primary>Webserver</primary>
<secondary>dynamisch</secondary>
</indexterm>
<para>In den vergangenen Jahren haben immer mehr Unternehmen
das Internet als Mittel für die Steigerung ihrer
Einnahmen sowie für die Erhöhung ihrer Reichweite
entdeckt. Dadurch stieg auch die Nachfrage nach interaktiven
Internetinhalten. Neben einigen Unternehmen, darunter
&microsoft;, die dafür proprietäre Produkte
entwickelt haben, hat auch die Open Source Community auf
diesen Umstand reagiert und unter anderem mit Django,
Ruby on Rails, <application>mod_perl2</application>, und
<application>mod_php</application> Möglichkeiten zur
Generierung dynamischer Internetseiten geschaffen.</para>
<sect3>
<title>Django</title>
<indexterm><primary>Python</primary></indexterm>
<indexterm><primary>Django</primary></indexterm>
<para>Bei <foreignphrase>Django</foreignphrase> handelt es
sich um ein unter der BSD-Lizenz verfügbares
Framework zur schnellen Erstellung von mächtigen
Internet-Applikationen. Es beinhaltet einen
objekt-relationalen Mapper (wodurch Datentypen als
Phyton-Objekte entwickelt werden können) sowie eine
API für den dynamischen Datenbankzugriff auf diese
Objekte, ohne dass Entwickler jemals SQL-Code schreiben
müssen. Zusätzlich existiert ein umfangreiches
Template-System, wodurch die Programmlogik von der
HTML-Präsentation getrennt werden kann.</para>
<para>Django setzt das Modul
<application>mod_python</application>,
den <application>Apache</application>-Webserver sowie eine
SQL-Datenbank voraus. Der &os;-Port wird alle
Abhängigkeiten mit sinnvollen Optionen konfigurieren und
installieren.</para>
<example xml:id="network-www-django-install">
<title>Django mit <application>Apache2</application>,
<application>mod_python3</application>, und
<application>PostgreSQL</application> installieren</title>
<screen>&prompt.root; <userinput>cd /usr/ports/www/py-django; make all install clean -DWITH_MOD_PYTHON3 -DWITH_POSTGRESQL</userinput></screen>
</example>
<para>Nachdem Django und die abhängigen Pakete installiert
sind, benötigt die Anwendung ein Projektverzeichnis und die
Apache-Konfiguration, um den eingebetteten
Python-Interpreter zu nutzen. Dieser wird spezifische URLs
der Seite aufrufen.</para>
<example xml:id="network-www-django-apache-config">
<title>Apache-Konfiguration für Django/mod_python</title>
<para>Sie müssen <filename>httpd.conf</filename> anpassen,
damit Apache Anfragen für bestimmte URLs an die
Internet-Applikation übergibt:</para>
<screen>&lt;Location "/"&gt;
SetHandler python-program
PythonPath "['/dir/to/the/django/packages/'] + sys.path"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonAutoReload On
PythonDebug On
&lt;/Location&gt;</screen>
</example>
</sect3>
<sect3>
<title>Ruby on Rails</title>
<indexterm><primary>Ruby on Rails</primary></indexterm>
<para>Bei <foreignphrase>Ruby on Rails</foreignphrase> handelt
es sich um ein weiteres, als Open Source verfügbares
Webframework. Es bietet einen kompletten Entwicklungsstack
und erlaubt es Webentwicklern, umfangreiche und mächtige
Applikationen in kurzer Zeit zu programmieren. Das
Framework kann über die Ports-Sammlung installiert
werden.</para>
<screen>&prompt.root; <userinput>cd /usr/ports/www/rubygem-rails; make all install clean</userinput></screen>
</sect3>
</sect2>
</sect1> </sect1>
<sect1 xml:id="network-ftp"> <sect1 xml:id="network-ftp">