<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">

<article>
<artheader>
<title>Apache Compile HOWTO (Linux Edition) Deutsch</title>

<!-- <Copyright>
<year>2000</year>
<year>2001</year>
<holder>Luc de Louw</holder>
</Copyright> -->

<author>
      <firstname>Luc</firstname>
      <surname>de Louw</surname>
      <affiliation>
        <address>
           <email>luc at delouw.ch</email>
        </address>
      </affiliation>
</author>

<revhistory>

<revision>
   <revnumber>1.9.16</revnumber>
   <date>2002-07-07</date>
   <revremark>Software-Pakete auf den neusten Stand gebracht, LogFormat Konfiguration für mod_gzip hinzugefügt. gdbm zu den 
	Vorraussetzungen hinzugefügt. Verbesserungen im SGML Code (mehr Metadaten), FAQ Sektion neu gestaltet.
   </revremark>
</revision>

<revision>
    <revnumber>1.9.15</revnumber>
    <date>2002-06-24</date>
    <revremark>Update auf Apache 1.3.26, ein update ist dringendst empfohlen (siehe CERT CA-2002-17), viele kleine Fehler beseitigt. </revremark>
</revision>

<revision>
    <revnumber>1.9.14</revnumber>
    <date>2002-06-16</date>
    <revremark>Nicht in deutsch erschienen</revremark>
</revision>

<revision>
    <revnumber>1.9.13</revnumber>
    <date>2002-06-16</date>
    <revremark>Software-Pakete auf den neusten Stand gebracht, und viele kleine Fehler beseitigt. Dokument Struktur verbessert,
	Module mod_gzip und mod_gunzip hinzugefügtügt. Weiterführende Quellen wurden hinzugefügt, FAQ (Fragen und Antworten) Sektion 
	wurde hinzugefügt</revremark>
</revision>


<revision>
    <revnumber>1.9.8-1.9.12</revnumber>
    <date>2002-02-08</date>
    <revremark>Nicht in deutsch erschienen. Eigentlich wollte ich dieses Dokument dem »Deutsches Linux HOWTO Projekt« zur Verfügung
	stellen, und wurde trotz Riesenaufwand meinerseits abgelehnt. Seitens des elitären Projekt Managers erlebte ich 
	eine nie erlebte Ignoranz und Arroganz. Es hat leider eine ganze Weile gedauert bis ich wieder up-to-date war, sorry.
</revremark>
</revision>

<revision>
    <revnumber>1.9.7</revnumber>
    <date>2001-12-27</date>
    <revremark>Software-Pakete auf den neusten Stand gebracht, Test der Anleitung auf Linux S/390 (IBM Mainframes zSeries).
	 Siehe "Plattformen" für mehr Infos, Kurzanleitung für Tomcat wurde hinzugefügt (nur Binär-Installation) </revremark>
</revision>

<revision>
    <revnumber>1.9.6</revnumber>
    <date>2001-10-27</date>
    <revremark>Erste deutsche Fassung</revremark>
</revision>

</revhistory>


<abstract>
<para>
Dieses Dokument beschreibt wie man den Apache Webserver und die wichtigsten dazugehörigen Module 
wie mod_perl, mod_dav, mod_auth_ldap, mod_dynvhost, mod_roaming, mod_jserv, und mod_php kompiliert.</para>
</abstract>

</artheader>

<warning><title>Sicherheitslücke in <application>Apache</application> kleiner als 1.3.26</title>
<para>
Benutzen Sie KEINE Version von <application>Apache</application> älter als 1.3.26. Siehe
<ulink url="http://www.cert.org/advisories/CA-2002-17.html">http://www.cert.org/advisories/CA-2002-17.html</ulink> für
mehr Informationen.
</para>
</warning>


<sect1 id="intro">
<title>Einführung</title>

<sect2>
<title>Mitwirkende und Kontakte</title>
<para>Zuerst möchste ich allen Leuten danken, welche Fragen und Vorschläge sandten.
Dies ermöglichte es mir, dieses HOWTO weiter zu entwickeln. Daher fordere ich alle auf,
weiterhin kritische Fragen und Vorschläge einzusenden. Email genügt: <email>luc at delouw.ch</email>
</para>
</sect2>

<sect2>
<title>Wieso dieses Dokument geschrieben wurde</title>
<para>Alle Distributionen welche von mir getestet wurden, haben eine schlechte Apache-Installation. 
Des weiteren sind viele dieser Versionen veraltet.
</para>
<para>Dazu kommt, dass die meisten kommerziellen <acronym>Unix</acronym> Betriebssysteme selten mit einem 
vorinstallierten Apache geliefert werden.</para>

<para>Mein Job ist es auf verschiedenen Unix-Plattformen Webserver zu implementieren. Da ich etwas bequem 
bin, und auch niemand die ganzen configure-Parameter auswendig wissen kann, schrieb ich als erstes ein 
Plaintext Dokument, zum bequemen copy-pasten. Ein Freund postete dann irgendwann die URL 
in eine Newsgroup, und es kamen die ersten Anfragen ...
Dies ermutigte mich dann mehr aus dem Dokument zu machen.</para>
<para>Besonders viele Leute fragten nach einem »offiziellen« HOWTO im <acronym>SGML</acronym> 
Format. Nun, hier ist es...</para>
</sect2>

<sect2>
<title>Was dieses Dokument bezweckt</title>
<para>Wie bereits erwähnt, niemand kann die alle Konfigurationsoptionen auswendig kennen, welche nötig sind einen Apache mit 
allen Features zu kompilieren. Dieses Dokument hält die Konfigurationsschritte zum <foreignphrase>copy-paste</foreignphrase> bereit.
</para>
<para>Das zweite Ziel ist es, dass die Leute lernen wie man sich selber zu einem Apache verhilft. Dadurch wird die Abhängigkeit 
von Distributoren etwas geringer werden.</para>
</sect2>

<sect2>
<title>Was dieses Dokument nicht ist</title>
<para>Es ist ganz einfach nur ein Dokument, kein Script, welches einem die Arbeit abnimmt. Alle Schritte müssen vom 
Benutzer selber ausgeführt werden.</para>
</sect2>

<sect2>
<title>Plattformen</title>
<para>Das ursprüngliche Dokument war für alle wichtigen Un*x Plattformen gedacht, beim aktuellen HOWTO ist das 
etwas anders, es wird für jede Plattform ein eigenes geben, der Anfang ist <application>Linux</application>.</para>
<itemizedlist>
<listitem><para>Linux (Alle Prozessoren)</para></listitem>
<listitem><para>IBM <acronym>AIX</acronym> 4.3 und 5.1L</para></listitem>
<listitem><para>Sun Solaris 6/7/8</para></listitem>
<listitem><para>Hewlett-Packard <acronym>HP-UX</acronym> 11</para></listitem>
<listitem><para>&lcub;Free|Net|Open&rcub;-<acronym>BSD</acronym></para></listitem>
</itemizedlist>

<para>Wichtige Information für Benutzer welche Linux auf IBM S/390 Mainframes (zSeries) betreiben: 
<application>PostgreSQL</application> und <application>jserv</application> lassen sich auf diesen 
Systemen nicht kompilieren. Die übringen Anleitungen laufen allerdings perfekt</para>
<para>Andere <acronym>Unix</acronym>-Plattformen: Ich bin sehr dankbar für einen Gast-Zugang um das ganze auszuprobieren.</para>
<para>Windows: Nein danke, ich bin noch viel zu jung für einen Herzinfarkt :-)</para>
</sect2>

<sect2 id="copyright"><title>Copyright Informationen</title>
<para>Dieses Dokument ist Copyright (c) 2000,2001,2002 by Luc de Louw und ist unter den Bedingungen 
der GNU Free Dokument License  veröffentlicht. Dies bedeutet, dass dieser Text sowohl in elektronischer
wie auch physikalischem Weg verbreitet werden darf, Solange der Copyright Vermerk nicht entfernt wird.
Eine kommerzielle Verbreitung ist erlaubt und erwünscht. Bei Veröffentlichung ist dies dem Autor mitzuteilen.
</para>

</sect2>

<sect2 id="disclaimer"><title>Haftungsausschlussklausel</title>
<para>
Der Autor lehnt jegliche Haftung für das Resultat der Anwendung dieses Dokumentes ab.
Dies schliesst auch Datenverluste infolge von eventuellen Fehlern in diesem Dokument mit ein.
Die Anwendung erfolgt auch eigenes Risiko und Gefahr.</para>
<para>
Es wird dringend angeraten die aufgeführten Prozeduren erst auch einem Testsystem auszuprobieren
um die gewünschte Funktionalität zu prüfen</para>

</sect2>

<sect2 id="newversions">
<title>Neuste Versionen dieses Dokuments</title>
<para>
Die neuste Version ist jeweils auf <ulink url="http://www.delouw.ch/linux/apache.phtml">
http://www.delouw.ch/linux/apache.phtml</ulink> zu finden.</para>

<para>Neue Versionen werden auf <ulink url="http://freshmeat.net/apacompile">
http://freshmeat.net/apacompile</ulink>angekündigt.</para>

</sect2>


<sect2 id="credits"><title>Credits</title>
<para>An dieser Stelle möchte ich mich bei all den vielen Leuten bedanken welche mir kritische Fragen und 
Fehlerberichtigungen geschickt haben.</para>

<para>Speziell danken möchte ich den Leuten der <abbrev>TLDP</abbrev> 
<foreignphrase>The Linux Documentation Project</foreignphrase> Mailingliste 
<email>discuss at linuxdoc.org</email> welche mich vor allem in SGML Fragen unterstützt haben.</para>

</sect2>

<sect2 id="feedback"><title>Feedback</title>
<para>Feedback ist immer herzlich willkommen. Wenn Sie Anregungen und Wünsche betreffend diesem Dokument haben, schreiben
Sie mir einfach ein Email an <email>luc at delouw.ch</email>

</sect2>

<sect2 id="translations"><title>Übersetzungen</title>

<para>
        Im Moment ist dieses Dokument in folgenden Sprachen verfügbar:
        <itemizedlist>
                <listitem>
                        <para>
                        <ulink url="http://www.delouw.ch/linux/DE-Apache-Compile-HOWTO/html/index.html">Deutsch</ulink>
                        </para>
                </listitem>

                <listitem>
                        <para>
                        <ulink url="http://www.delouw.ch/linux/FR-Apache-Compile-HOWTO/html/index.html">Französisch</ulink>
                        </para>
                </listitem>

		<listitem>
                        <para>
                        <ulink url="http://www.delouw.ch/linux/Apache-Compile-HOWTO/html/index.html">Englisch (Original)</ulink>
                        </para>
                </listitem>
        </itemizedlist>
   </para>

   <para>
	Übersetzungen in andere Sprachen sind immer willkommen. Bitte lassen Sie es mich wissen wenn Sie dieses Dokument 
	übersetzt haben, damit hier ein Link eingefügt werden kann.</para>
	
   <para>Ich bitte Sie wenn möglich die englische Version im SGML Quellcode als Grundlage zu verwenden</para>

   </sect2>



<sect2><title>Über den Autor</title>
<para>Luc ist 29 Jahre alt, und spielt mit Computern seit etwa 20 Jahren rum.
Zur Zeit ist er bei einer IT-Firma in Kloten (Zürich), Schweiz als Unix System Engineer angestellt.
Hauptbeschäftigung ist alle möglichen innovativen Sachen zu auf Linux (und anderen Un*xes) zum Laufen zu bringen.
Weiter landet alles "unmögliche" bei ihm auf dem Schreibtisch. (Ja, es macht Spass!) 
</para>

</sect2>

</sect1>

<sect1 id="prereqs">
<title>Voraussetzungen</title>


<sect2><title>Generell</title>
<itemizedlist>
<listitem><para><application>flex</application> 2.54</para></listitem>
<listitem><para><application>bison</application> 1.28</para></listitem>
<listitem><para><application>autoconf</application> 2.52</para></listitem>
<listitem><para><application>automake</application> 1.4</para></listitem>
<listitem><para><application>libtool</application> 1.4</para></listitem>
<listitem><para><application>yacc</application>-91.7.30</para></listitem>
<listitem><para><application>freetype2</application>-devel 
<footnote><para>Dieses <abbrev>RPM</abbrev> enthält die  header Dateien
welche für PHP gebraucht werden</para></footnote></para></listitem>

<listitem><para><application>re2c</application>
<footnote><para>Wird nur benötigt, wenn PHP von den Quellen aus dem CVS tree kompiliert werden soll</para>
</footnote></para></listitem>

</itemizedlist>
<para>Fortsetzung folgt</para>

</sect2>

<sect2><title>OpenSSL</title>
 
<sect3><title>Was ist OpenSSL</title>
<blockquote><attribution>www.openssl.org</attribution>
<para>Das OpenSSL Projekt hat ein gemeinschaftliches Ziel, eine robuste, einem kommerziellen Produkt 
in nichts nachstehende vollständige Secure Sockets Layer (SSL v2/v3) und Transport Layer Security (TLS v1) Implementierung 
auf OpenSource Basis zu entwickeln. Dazu gehört ebenfalls eine universelle Kryptografische Bibliothek.
Das Projekt wird durch eine weltweite Gemeinschaft von Volutären unterhalten welches das Internet für 
Kommunikation, Planung und Entwicklung benutzt.</para>
<para>OpenSSL basiert auf der exzellenten SSLeay Bibliothek von Eric A. Young und Tim J. Hudson.
OpenSSL hat eine Apache-ähnliche Lizenz, welche grundlegend besagt: Freie Benutzung für kommerzielle und 
nicht-kommerzielle Anwendungen.</para>
</blockquote>

<para>Aus meiner Sicht ist es die Basis um einem sicheren Webserver einzurichten. 
OpenSSL ist die OpenSource Basis für sehr viele Applikationen welche sichere Verschlüsselung gebrauchen 
(Wie zum Beispiel <application>OpenSSH</application> etc)
</para>
 
</sect3>
 
<sect3><title>Download des Quellcodes</title>
<para>Haupt-Seiten
<ulink url="http://www.openssl.org">http://www.openssl.org</ulink>
</para>
</sect3>
 
<sect3><title>Kompilieren und installieren</title>
 
<screen>
cd /usr/local
tar -xvzf openssl-0.9.6d.tar.gz
 
cd openssl-0.9.6d
 
./config
 
make
make test
make install
</screen>
 
</sect3>
 
</sect2>

<sect2><title>GNU Database System</title>

<sect3><title>Was ist <application>gdbm</application>

<blockquote><attribution>www.gnu.org/software/gdbm</attribution>
<para>
GNU dbm ist ein Datenbank System das erweiterbare »hashing«. Es arbeites ähnlich dem 
standart <acronym>UNIX</acronym> dbp Programm.
</para></blockquote>

<para>Das GNU Datenbank Sytem ist eine sehr wichtige Applikation, und wird von fast allen Distributoren eingesetzt.
Es ist standartmässig bei allen Distributionen eingesetzt, welche ich getestet habe.</para>

<para>Ziemlich sicher ist jedoch, dass die die header Dateien nicht standartmässig installiert werden. Diese werden allerdings 
zwingend benötigt, um Apache mit mod_rewrite zu kompilieren, und werden auch von <acronym>PHP</acronym> gebraucht. 
Bitte installieren Sie die benötigen Dateien von der <abbrev>CD</abbrev>/<abbrev>DVD</abbrev> 
Ihres Distributors nach (Version kann abweichen).
</para>

<screen>
rpm -i gdbm-devel-1.8.0-546
</screen>

<para>Diese Instruktion funktioniert auf SuSE und Redhat Systemen. Andere <abbrev>RPM</abbrev>-basierende Systeme wie Mandrake: 
bitte bestätigen.</para>

<para>
Benutzer von Debian basierenden System können das Paket folgendermassen installieren:</para>

<screen>
apt-get install libgdbmg1-dev
</screen>


<sect3><title>Selber kompilieren und installieren</title>

<para>Im kaum anzunehmenden Fall, dass Ihre Distribution <application>gdbm</application> nicht enthält, hier die Intruktionen wie Sie
das Programm selber kompilieren.</para>

<screen>
./confgure

make
make install

ldconfig
</screen>


</sect3>

</sect2>


<sect2><title>MySQL</title>
 
<sect3><title>Was ist MySQL</title>
<para>
<application>MySQL</application> ist eine sehr schnelle, performante und einfach zu handhabende Datenbank.</para>
 
<para>Speziell für Webapplikationen die häufige Lesezugriffe tätigen, und relativ seltene Schreibzugriffe benötigen ist 
MySQL die beste Wahl. Wenn Transaktionen benötigt werden ist PostgreSQL allerdings die bessere Wahl, da Transaktionen 
bei MySQL noch in den Kinderschuhen stecken.
</para>
 
<para>Im Bezug zu Apache, hier wird das C-<abbrev>API</abbrev> von MySQL gebraucht, um <acronym>PHP</acronym> und
<application>mod_authmysql</application> zu kompilieren, Siehe <xref linkend="authmysql"></para>
</sect3>
 
<sect3><title>Download</title>
<para>
Hauptserver: <ulink url="http://www.mysql.com/downloads/">http://www.mysql.com/downloads/</ulink>
</para>
</sect3>

<sect3><title>Kompilieren und Installieren</title>
<screen>
cd /usr/local
tar -xvzf mysql-3.23.51.tar.gz 
cd mysql-3.23.51

./configure 
--prefix=/usr/local/mysql \ 
--enable-assembler \ 
--with-innodb

make 
make install 

/usr/local/mysql/bin/mysql_install_db
echo /usr/local/mysql/lib/mysql >> /etc/ld.so.conf 
ldconfig
</screen>

<para>
Um die Sicherheit zu erhöhen, fügen Sie Ihrem System einen MySQL-Benutzer hinzu. Dannach muss der Besitzer des
Datenverzeichnisses angepasst werden:
</para>

<screen>
chown -R mysql /usr/local/mysql/var
</screen>

<para>
Wahrscheinlich ist ein automatischer Start von MySQL beim Systemstart gewünscht, dazu kopieren Sie die Datei
<filename>/usr/local/mysql/share/mysql/mysql.server</filename> nach <filename>/etc/init.d/</filename> 
(oder wo immer die rc-scripts auf dem entsprechenden System zu finden sind). 
Auch müssen die entsprechenden symbolischen Links in den 
entsprechenden <foreignphrase>Runleveldirectories</foreignphrase> erstellt werden. 
</para>

<screen>
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/

ln -s /etc/init.d/mysql.server /etc/init.d/rc3.d/S20mysql
ln -s /etc/init.d/mysql.server /etc/init.d/rc3.d/K20mysql
</screen>

<para>Dieses Beispiel funktioniert bei SuSE ab Version 7.0</para>

</sect3>

<sect3 id="mysqlsecurity"><title>Sicherheit erhöhen</title>
<para>Dieser Teil ist nicht unbedingt nötig aber dringend empfohlen.</para>

<para>Wenn nicht anders benötigt sollte MySQL nur auf das loopback-interface 127.0.0.1 gebunden werden.
Dies stellt sicher, das niemand über das Netzwerk auf Ihren MySQL Server zugreifen kann. 
Dies macht natürlich nur Sinn, wenn MySQL auf dem gleichen Rechner wie der Webserver läuft.</para>

<para>
Editieren Sie <filename>/etc/init.d/mysql.server</filename> etwa auf Linie 107 wie folgt:</para>

<para>Original Linie:</para>


<screen>
$bindir/safe_mysqld --datadir=$datadir --pid-file=$pid_file&
</screen>

<para>Neu:</para>

<screen>
$bindir/safe_mysqld --datadir=$datadir --pid-file=$pid_file \
--bind-address=127.0.0.1& <co id="bind">
</screen>
<para>

<calloutlist>
<callout arearefs="bind">
<para>
Hier wird die Adresse an welche MySQL gebunden werden soll definiert.
</para>
</callout>
</calloutlist>
</para>

<para>
oder alternativ kann die ganze Netzwerkfunktionalität abgeschaltet werden:
</para>

<screen>
$bindir/safe_mysqld --datadir=$datadir --pid-file=$pid_file \
--skip-networking &
</screen>

</sect3>


</sect2>

<sect2><title>Kompilieren von mm</title>
 
<sect3><title>Was ist <application>mm</application></title>
<blockquote><attribution>www.engelschall.com</attribution>
<para>
Die mm Bibliothek ist eine 2-Schichten Abstraktions-Bibliothek, welche die Verwendung von Shared Memory zwischen
Prozessen auf Un*x Plattformen erleichtert.
Die erste Schicht versteckt die Plattformabhängigkeit der verschiedenen Implementierungen (Handling und Locking)
Die zweite Schicht bietet ein high-level malloc(3)-style API für eine bequeme und gut dokumentierte Arbeit
innerhalb der Shared Memory Segmenten.
</para>
</blockquote>

<para>MM ist es eine allgemeine Bibliothek für <abbrev>shm</abbrev> (Shared Memmory) handling welche hier in diesem 
Zusammenhang für <application>mod_ssl</application> und <application>PHP</application> gebraucht wird.</para>
</sect3>
 
<sect3><title>Download</title>
<para>HauptServer : <ulink url="http://www.engelschall.com/sw/mm/mm-1.1.3.tar.gz">http://www.engelschall.com/sw/mm/mm-1.1.3.tar.gz</ulink>
</para>
</sect3>
 
<sect3><title>Kompilieren und Installieren</title>
 
<screen>
cd /usr/local
 
tar -xvzf mm-1.1.3.tar.gz
 
cd mm-1.1.3
 
./configure
make
make test
make install
</screen>

</sect3>
</sect2>
</sect1>

<sect1 id="apache">
<title>Downloaden, kompilieren und installieren von Apache und seinen wichtigsten Modulen</title>

<sect2><title>Download und auspacken des Apache Quellcodes</title>

<sect3><title>Was ist Apache</title>

<blockquote><attribution>www.apache.org</attribution>
<para>Das Apache-Projekt hat zum Ziel in einer gemeinschaftlichen Entwicklung einen robusten, einem 
kommerziellen Produkt in nichts nachstehenden und mit freiem Quellcode verfügbarer http (Web)Server zu bauen.  
Das Projekt wird unterhalten von einer weltweiten Gruppe aus Volutären, welche das Internet als Medium für 
Kommunikation, Planung und Entwicklung benutzen. Diese Volutäre sind bekannt als "The Apache Group".
Zusätzlich hunderte von Benutzern senden Ideen, Quellcode und Dokumentationen für das Projekt.
</para></blockquote>


<para>Apache ist ganz einfach der beste Webserver, sehr flexibel, ein den jeweiligen Ansprüchen anzupassender Webserver.
Auch ist er E-X-T-R-E-M stabil. Ich konnte noch nie einen Absturz in einer Produktions-Umgebung miterleben.
</para>
</sect3>

<sect3><title>Download des Quellcodes</title>
<para>Hauptserver:
<ulink url="http://www.apache.org/dist/httpd/">http://www.apache.org/dist/httpd/</ulink>

<screen>
cd /usr/local/

tar -xvzf apache_1.3.26.tar.gz
</screen>

</para>
</sect3>

<sect3><title>Patch für Grosse Serverumgebungen</title>
<para>Download von: <ulink url="http://www.delouw.ch/linux/apache-patch_HARD_SERVER_LIMIT.txt">
http://www.delouw.ch/linux/apache-patch_HARD_SERVER_LIMIT.txt</ulink></para>

<screen>
--- httpd.h     Thu Mar 21 18:07:34 2002
+++ httpd.h-new Sun Apr  7 13:34:11 2002
@@ -320,7 +320,7 @@
 #elif defined(NETWARE)
 #define HARD_SERVER_LIMIT 2048
 #else
-#define HARD_SERVER_LIMIT 256
+#define HARD_SERVER_LIMIT 512
 #endif
 #endif
</screen>

<para>Dieser Patch erhöht die maximale Anzahl laufender Prozesse, und damit die Anzahl maximal gleichzeitig 
zugreifender Benutzer auf 512. Man kann diese Zahl durchaus weiter erhöhen, man muss dabei allerdings an die 
Kernel-Limits und an <filename>/etc/security/limits.conf</filename> denken.

<caution><title>Sicherstellung von genügend Resourcen</title>
<para>
Mit falschen Einstellungen in <filename>/etc/security/limits.conf</filename> und/oder
falsch konfiguriertem Kernel kann man sich einen »<foreignphrase>Self-Denial-Of-Service-Attack</foreignphrase>
bescheren. Stellen Sie sicher, dass immer genügend Tasks for root exklusiv zur Verfügung stehen.
Bei Linux Kernel 2.2.x müssen ebenfalls die Kernel Quellcodes angepasst werden
</para></caution>


<para>Um den patch anzuwenden:</para>

<screen>
cd /usr/local/apache_1.3.26/src/include

patch -p0 &lt; apache-patch_HARD_SERVER_LIMIT.txt
</screen>

</sect3>
</sect2>

<sect2><title>mod_ssl</title>

<sect3><title>Was ist mod_ssl</title>
<blockquote><attribution>www.modssl.org</attribution>
<para>Dieses Module gibt die Möglichkeit starke Verschlüsslung mit dem Apache 1.3.x einzusetzen. Das verwendete
Protokoll ist Secure Socket Layer (SSL v2/v3) und Transport Layer Security (TLS v1). Dafür greift mod_ssl auf die 
OpenSource Bibliothek OpenSSL, welche auch SSLeay von Eric A. Young und Tim J. Hudson basiert zurück.
</para>
</blockquote>


<para>Dieses Modul wird benötigt um dem Apache die Möglichkeit zu geben, Daten verschlüsselt über das
Internet zum Client zu transportieren. Es ist ein Patch für den Apache-Quellcode und erweitert dessen 
<abbrev>API</abbrev>(Application Programming Interface). Das Resultat nennt sich  
<abbrev>EAPI</abbrev> (Extended Application Programming Interface). 
</para>

<para>
Falls mod_ssl eingesetzt wird, ist es sehr wichtig, alle anderen Module mit dem Compiler-Flag <option>-DEAPI</option> zu kompilieren,
sonst könnte es sein, das Apache einfach abstürzt, oder gar nicht erst läuft. Fast alle Module erkennen dies 
allerdings selbstständig, eine Ausnahme dabei ist <application>mod_jserv</application> und <application>mod_jk</application>
</para>
</sect3>

<sect3><title>Download des Quellcodes</title>
<para>Hauptserver:<ulink url="http://www.modssl.org">http://www.modssl.org</ulink></para>
</sect3>

<sect3><title>Anwenden des Patches</title>
<screen>
cd /usr/local/

tar -xvzf mod_ssl-2.8.10-1.3.26.tar.gz
cd mod_ssl-2.8.10-1.3.26/

./configure &bsol;
--with-apache=../apache_1.3.26 &bsol;
</screen>

</sect3>

</sect2>

<sect2><title>mod_perl</title>

<sect3><title>Was ist mod_perl</title>
<blockquote><attribution>perl.apache.org</attribution>
<para>
Mit mod_perl ist es möglich, Apache-Module komplett in Perl zu entwickeln. Da der Interpreter in den Apache integriert 
wird, muss im Gegensatz zu CGI nicht bei jedem Request ein neuer Prozess gestartet werden. Dies spart sehr viel 
Overhead, und macht die Applikationen schneller.
</para>
</blockquote>

<para><application>Mod_perl</application> ist eine Art Ersatz von CGIs. CGI's starten üblicherweise bei 
jedem Request einen neuen Prozess, welches die Performance natürlich in Mitleidenschaft zieht. Mod_perl verhindert genau dies.
</para>
</sect3>

<sect3><title>Download des Quellcodes</title>
<para>Hauptserver: <ulink url="http://www.apache.org/dist/perl">http://www.apache.org/dist/perl</ulink></para>
</sect3>

<sect3><title>Kompilieren und installieren</title>
<screen>
cd /usr/local

tar -xvzf mod_perl-1.27.tar.gz

cd mod_perl-1.27

perl Makefile.PL &bsol;
EVERYTHING=1 &bsol;
APACHE_SRC=../apache_1.3.26/src &bsol;
USE_APACI=1 &bsol;
PREP_HTTPD=1 &bsol;
DO_HTTPD=1

make
make install
</screen>

<para>Kompilieren Sie mod_perl nicht als <abbrev>DSO</abbrev> (Dynamic Shared Object)</para>

<caution><title>Mod_perl kann nicht als DSO kompiliert werden</title>
<para>Kompilieren Sie mod_perl nicht als <abbrev>DSO</abbrev> (Dynamic Shared Object)! 
Aufgrund von Meldungen soll Apache nicht mehr lauffähig sein.</para>
</caution>

</sect3>
</sect2>

<sect2><title>Konfigurieren und Installieren von Apache</title>
<para>
Nun sind die beiden statischen Module mod_ssl und mod_perl dem Apache-Quellcode zugefügt worden, der 
Apache ist jetzt bereit zur Konfiguration.</para>

<sect3><title>Kompilieren und installieren</title>

<screen>
EAPI_MM=&quot;/usr/local/mm-1.1.3&quot; SSL_BASE=&quot;/usr/local/ssl&quot; &bsol;
./configure &bsol;
--enable-module=unique_id &bsol;
--enable-module=rewrite &bsol;
--enable-module=speling &bsol;
--enable-module=expires &bsol;
--enable-module=info &bsol;
--enable-module=log_agent &bsol;
--enable-module=log_referer &bsol;
--enable-module=usertrack &bsol;
--enable-module=proxy &bsol;
--enable-module=userdir &bsol;
--enable-module=so &bsol;
--enable-shared=ssl &bsol;
--enable-module=ssl &bsol;
--activate-module=src/modules/perl/libperl.a &bsol;
--enable-module=perl

make
make install
</screen>

</sect3>

<sect3><title>Erstellen eines selbst signierten SSL-Zertifikates</title>

<screen>
cd /usr/local/ssl/bin

./openssl req -new &gt; new.cert.csr
./openssl rsa -in privkey.pem -out new.cert.key
./openssl x509 -in new.cert.csr \
-out new.cert.cert -req -signkey new.cert.key \
-days 999

cp new.cert.key /usr/local/apache/conf/ssl.key/server.key
cp new.cert.cert /usr/local/apache/conf/ssl.crt/server.crt
</screen>

<tip><title><foreignphrase>Common name</foreignphrase>
<para>
OpenSSL fragt nach verschiedenen Dingen. 
Ein oft gemachter Fehler ist das Missverstehen von »<foreignphrase>common name</foreignphrase>« 
Hier ist der »<foreignphrase>Fully Qualified Hostname</foreignphrase>« gemeint, also zum Beispiel www.foo.org
</para>
</tip>

</sect3>
</sect2>
</sect1>

<sect1 id="modules"><title>Zusätzliche Module</title>

<sect2><title>mod_dav</title>

<sect3><title>Was ist mod_dav</title>

<blockquote><attribution>www.webdav.org</attribution>
<para>mod_dav ist ein Apache Module das <abbrev>DAV</abbrev>-Funktionalität gemäss <abbrev>RFC</abbrev> 2518 
zur Verfügung stellt.  Es ist ein Opensource Module, freigegeben unter einer Apache-ähnlichen Lizenz.</para>
</blockquote>

<para>DAV heist: <foreignphrase>Distributed authoring and Versioning</foreignphrase> 
oder in Deutsch: »Verteilte Versionenbereinigte Verwaltung«.
Es erlaubt eine Webseiten ähnlich wie im lokalen Dateisystem zu verwalten.  
Es ist ebenfalls als Ersatz für FTP-Transfers gedacht. DAV ist ein anerkannter Standard.</para>
<para>DAV wird von allen wichtigen Web-Entwicklungs-Werkzeugen unterstützt. (Inkl. M$ Frontpage) 
</para>
</sect3>

<sect3><title>Download des Quellcodes</title>
<para>Hauptserver: <ulink url="http://www.webdav.org/mod_dav/">http://www.webdav.org/mod_dav/</ulink></para>
</sect3>

<sect3><title>Kompilieren und installieren</title>

<screen>
cd /usr/local

tar -xvzf mod_dav-1.0.3-1.3.6.tar.gz
cd mod_dav-1.0.3-1.3.6

./configure --with-apxs=/usr/local/apache/bin/apxs

make
make install
</screen>

<tip><title>Verwirrender Dateiname</title>
<para>Der Dateiname <filename>mod_dav-1.0.3-1.3.6</filename> suggeriert, dass das Module nur mit Apache 1.3.6 läuft,
soll aber heissen, es läuft mit Apache &gt;= 1.3.6</para>
</tip>

</sect3>

</sect2>

<sect2><title>auth_ldap</title>

<sect3><title>Was ist auth_ldap</title>
<blockquote><attribution>www.rudedog.org</attribution>
<para>auth_ldap ist ein LDAP Authentifizierungs-Modul für Apache, dem am meisten eingesetzten Webserver.
auth_ldap hat eine exzellente Performance, und unterstützt Apache sowohl unter Unix als auch Windows NT.  
auth_ldap unterstützt ebenfalls LDAP over SSL, und ein Modus welcher <application>Frontpage</application> Clients erlaubt 
ihre Web Permissions mit LDAP zu benutzen. </para>
</blockquote>


<para><acronym>LDAP</acronym> (<foreignphrase>Lightweight Directory Access Protocol</foreignphrase>) 
ist ein wunderbarer Weg Login-Facilities zu 
konsolidieren, das heisst den Benutzern in einer Firma ein einheitlicher Benutzername/Passwort zu geben, 
welches auf verschiedenen Diensten wie FTP, Windows Login und so weiter 
benutzt werden kann. <acronym>LDAP</acronym> ist ein offener Standard welcher sehr breit unterstützt wird.
</para>
</sect3>

<sect3><title>Download des Quellcodes</title>
<para>Hauptserver: <ulink url="http://www.rudedog.org/auth_ldap/">http://www.rudedog.org/auth_ldap/</ulink></para>
</sect3>

<sect3><title>Kompilieren und installieren</title>

<screen>
cd /usr/local

tar -xvzf auth_ldap-1.6.0.tar.gz

cd auth_ldap-1.6.0

./configure --with-apxs=/usr/local/apache/bin/apxs &bsol;
--with-sdk=openldap

make
make install
</screen>

</sect3>

</sect2>

<sect2 id="authmysql"><title>mod_auth_mysql</title>
<sect3><title>Was ist mod_auth_mysql</title>
<para>mod_auth_mysql ist ein http-Basic Authentication Modul. Es erlaubt Benutzerdaten bequem in einer 
MySQL-Datenbank abzuspeichern und zu unterhalten.</para>
</sect3>
<sect3><title>Download des Quellcodes</title>
<para>Hauptserver: <ulink url="ftp://ftp.kciLink.com/pub/mod_auth_mysql.c.gz">ftp://ftp.kciLink.com/pub/mod_auth_mysql.c.gz</ulink></para>
</sect3>

<sect3><title>Kompilieren und  installieren</title>

<screen>
/usr/local/apache/bin/apxs &bsol;
-c -I/usr/local/mysql/include &bsol;
-L/usr/local/mysql/lib/mysql &bsol;
-lmysqlclient -lm mod_auth_mysql.c

cp mod_auth_mysql.so /usr/local/apache/libexec/
</screen>

<para>
Folgendes muss in httpd.conf zugefügt werden:
</para>

<screen>
LoadModule mysql_auth_module libexec/mod_auth_mysql.so
</screen>

<para>
Und dort wo auch die anderen module geladen werden:
</para>
<screen>AddModule mod_auth_mysql.c
</screen>
<para>Es ist darauf zu achten, das die MySQL Libs and Includes richtig angegeben wurden!</para>

<tip><title>Library Pfad</title>
<para>Es ist sicherzustellen, das der Pfad <filename>/usr/local/mysql/lib/mysql</filename> 
in <filename>/etc/ld.so.conf</filename> steht bevor das Modul kompiliert wird</para>
</tip>


</sect3>

<sect3><title>Beispiel Konfiguration</title>
<example><title>/usr/local/apache/conf/httpd.conf</title>
<screen>
&lt;location /manual/&gt;
  AuthType Basic
  AuthUserfile /dev/null
  AuthName Testing
  AuthGroupFile /dev/null
  AuthMySQLHost localhost
  AuthMySQLCryptedPasswords Off
  AuthMySQLUser root
  AuthMySQLDB users
  AuthMySQLUserTable user_info
  &lt;Limit GET POST&gt;
    require valid-user
  &lt;/limit&gt;
&lt;/location&gt;
</screen>
</example>

<sect4><title>Script um die MySQL-Datenbank zu erstellen</title>

<para>
Zuerst muss die Datei <filename>authmysql.sql</filename> mit folgendem Inhalt erstellt werden:
</para>

<screen>
  create database http_users;
  connect http_users;

  CREATE TABLE user_info (
  user_name CHAR(30) NOT NULL,
  user_passwd CHAR(20) NOT NULL,
  user_group CHAR(10),
  PRIMARY KEY (user_name);
</screen>

<para>Dannach kann MySQL angewiesen werden, dies Datei zu verarbeiten</para>

<screen>
mysql < authmysql.sql
</screen> 


</sect4>
</sect3>
</sect2>

<sect2><title>mod_dynvhost</title>

<sect3><title>Was ist mod_dynvhost</title>

<para>
mod_dynvhost ist ein kleines Modul welches erlaubt neue VirtualHosts zu definieren und in Betrieb zu nehmen, 
ohne das der Apache neu gestartet werden muss. Dazu muss nur ein Ordner erstellt werden, fertig.
</para>

<para>Ist eine gute Lösung für Massen-Virtual-hosting.</para>
</sect3>

<sect3><title>Download des Quellcodes</title>
<para>Hauptserver: <ulink url="http://funkcity.com/0101/projects/dynvhost/mod_dynvhost.tar.gz">
http://funkcity.com/0101/projects/dynvhost/mod_dynvhost.tar.gz</ulink>
</para>
</sect3>

<sect3><title>Kompilieren und installieren</title>
<para>

<screen>
cd /usr/local

tar -xvzf mod_dynvhost.tar.gz

cd dynvhost/

/usr/local/apache/bin/apxs -i -a -c mod_dynvhost.c
</screen>

</para>

<tip><title>Überprüfung von <filename>httpd.conf</filename>
<para>Ein Blick in httpd.conf ob mod_dynvhost.so beim Starten geladen wird ist sinnvoll: </para>

<screen>
LoadModule dynvhost_module libexec/mod_dynvhost.so
</screen>

</tip>


</sect3>

<sect3><title>Beispielkonfiguration </title>
<example><title>/usr/local/apache/conf/httpd.conf</title>

<screen>
&lt;DynamicVirtualHost /usr/local/apache/htdocs/vhosts/&gt; 
  HomeDir / 
&lt;/DynamicVirtualHost&gt;
</screen>
</example>

<para>Nun muss für jeden gewünschten Virtualhost in <filename>/usr/local/apache/htdocs/vhosts/</filename> 
ein Subverzeichnis erstellt werden</para>
<para>Zum Beispiel</para>
<para><filename>/usr/local/apache/htdocs/vhosts/foo.bar.org</filename></para>
<para>Der Webserver muss NICHT neu gestartet werden, die vhosts sind sofort aktiv.</para>
</sect3>
</sect2>

<sect2><title>mod_roaming</title>

<sect3><title>Was ist mod_roaming</title>
<blockquote><attribution>www.klomp.org/mod_roaming/</attribution>
<para>
Mittels mod_roaming ist es möglich den Apache Webserver als Netscape Roaming Access Server zu benutzen.
Dies erlaubt es Netscape 4.x Einstellungen, Bookmarks, Adressbücher, Cookies usw. zentral zu speichern und 
an verschiedenen Orten zu benutzen.
</para>
</blockquote>


<para>Das ist wirklich cool. Leider funktioniert es nicht über Proxy-Verbindungen. 
Auch andere Browser wie <application>Netscape</application> 6.1, <application>Mozilla</application> oder 
<application>Opera</application> haben diese Möglichkeit nicht vorgesehen.
</para>
</sect3>

<sect3><title>Download des Quellcodes</title>
<para>Hauptserver: <ulink url="http://www.klomp.org/mod_roaming/">http://www.klomp.org/mod_roaming/</ulink>
</para>
</sect3>

<sect3><title>Kompilieren und installieren</title>

<screen>
cd /usr/local 

tar -xvzf mod_roaming-1.0.2.tar.gz

cd mod_roaming-1.0.2

/usr/local/apache/bin/apxs -i -a -c mod_roaming.c
</screen>


<tip><title>Überprüfung von <filename>httpd.conf</filename>
<para>Überprüfung von <filename>httpd.conf</filename> ob mod_roaming beim Starten geladen wird: </para>
<screen>

LoadModule roaming_module libexec/mod_roaming.so

</screen>
</tip>

</sect3>

<sect3><title>Beispielkonfiguration</title>

<example><title>/usr/local/apache/conf/httpd.conf</title>

<screen>
RoamingAlias /roaming /usr/local/apache/roaming
&lt;Directory /usr/local/apache/roaming&gt;
  AuthUserFile /usr/local/apache/conf/roaming-htpasswd
  AuthType Basic
  AuthName &quot;Roaming Access&quot;
  &lt;Limit GET PUT MOVE DELETE&gt;
    require valid-user
  &lt;/Limit&gt;
&lt;/Directory&gt;
</screen>
</example>

</sect3>
</sect2>
</sect1>

<sect1 id="compress"><title>Komprimierte Auslieferung</title>

<para>
Es sind zwei Module zur Komprimierung der Auslieferung verfügbar: mod_gzip und mod_gunzip. Diese verwenden verschiedene
Methoden um dieses Ziel zu erreichen: Reduktion der verwendeten Bandbreite.
</para>

<para>
mod_gunzip erwartet komprimierte Dateien im Dateisystem, und dekomprimiert diese, falls der Browser keine komprimieren
Daten verarbeiten kann. Der Vorteil ist das nur wenig CPU Ressourcen gebraucht werden weil fast alle Browser in der Lage sind
komprimierte Dateien zu verarbeiten. Auf der anderen Seite werden heutzutage der grösste Teil der Webseiten dynamisch erstellt,
zum Beispiel mit PHP, und diese Inhalte werden dann unkomprimiert ausgeliefert.
</para>

<para>
mod_gzip braucht keine komprimieren Dateien auf dem System, alle zuvor definierten Inhalte werden automatisch komprimiert
bevor diese ausgeliefert werden. Der Vorteil davon ist, dass auch dynamisch erzeugte Inhalte komprimiert werden. Auf der anderen 
Seite wird recht viel CPU Ressourcen verbraten, weil dann bei jeder Anfrage das Ergebnis on-the-fly komprimiert wird.
mod_gzip kann allerdings auch so konfiguriert werden, das bereits vorkomprimierte Inhalte direkt ausgeliefert werden können.
<para>

<para>
Schlussfolgerung: Sie müssen sorgfältig abwägen welche der beiden Methoden die Richtige ist für Ihre Anwendung und Ihren Server.
Wenn für Sie CPU-Ressourcen kein Thema sind, dann wird mod_gzip die richtige Wahl. Wenn Sie auf sehr schnelle Antwortzeiten
angewiesen sind, ist mod_gunzip die bessere Wahl.
<para>

<para>
Eine gute Seite (in Englisch), welche Ihnen weiterhelfen kann bei Ihrer Entscheidung ist Martin Kiff's Dokument über mod_gunzip
<ulink url="http://www.innerjoin.org/apache-compression/howto.html">http://www.innerjoin.org/apache-compression/howto.html</ulink>
</para>


<sect2><title>mod_gzip</title>

<sect3><title>Download</title>
<para>Origin-Site: <ulink url="http://www.ehyperspace.com/htmlonly/products/mod_gzip.html">http://www.ehyperspace.com/htmlonly/products/mod_gzip.html</ulink>
</para>
</sect3>

<sect3><title>Kompilieren und installieren</title>

<screen>
/usr/local/apache/bin/apxs -i -a -c -lz mod_gzip.c
</screen>
</sect3>

<sect3>
<title>Beispielkonfiguration</title>
<para>Fügen sie folgendes in  <filename>/usr/local/apache/conf/httpd.conf</filename> ein:</para>
<example><title>/usr/local/apache/conf/httpd.conf</title>
<screen>
mod_gzip_on                 Yes
mod_gzip_can_negotiate      Yes
mod_gzip_dechunk            Yes
mod_gzip_minimum_file_size  600
mod_gzip_maximum_file_size  0
mod_gzip_maximum_inmem_size 100000
mod_gzip_keep_workfiles     No
mod_gzip_temp_dir           /usr/local/apache/gzip
mod_gzip_item_include       file \.html$
mod_gzip_item_include       file \.txt$
mod_gzip_item_include       file \.jsp$
mod_gzip_item_include       file \.php$
mod_gzip_item_include       file \.pl$
mod_gzip_item_include       mime ^text/.*
mod_gzip_item_include       mime ^application/x-httpd-php
mod_gzip_item_include       mime ^httpd/unix-directory$
mod_gzip_item_include       handler ^perl-script$
mod_gzip_item_include       handler ^server-status$
mod_gzip_item_include       handler ^server-info$
mod_gzip_item_exclude       file \.css$
mod_gzip_item_exclude       file \.js$
mod_gzip_item_exclude       mime ^image/.*
</screen>
</example>

<para>Wenn Sie die Resultate der Kompression in der Logdatei speichern wollen, kann dies mit einer 
Änderung in der »LogFormat« Direktive in <filename>/usr/local/apache/conf/httpd.conf</filename> angepasst werden</para>

<screen>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" 
 mod_gzip: %{mod_gzip_compression_ratio}npct." combined
</screen>


</sect3>


</sect2>


<sect2><title>mod_gunzip</title>

<sect3><title>Download</title>
<para>Origin-Site: <ulink url="http://www.oldach.net/mod_gunzip.tar.gz">http://www.oldach.net/mod_gunzip.tar.gz</ulink>
</para>
</sect3>

<sect3><title>Kompilieren und installieren</title>

<screen>
tar -xvzf mod_gunzip.tar.gz
cd mod_gunzip-2

/usr/local/apache/bin/apxs -i -a -c -lz mod_gunzip.c
</screen>
</sect3>

<sect3>
<title>Beispielkonfiguration</title>
<para>Fügen Sie folgendes in <filename>/usr/local/apache/conf/httpd.conf</filename> ein:</para>

<screen>
AddType text/html .htmz
AddHandler send-gunzipped .htmz
</screen>

<para>
Sie können nun mit <command>gzip</command> Ihre Html-Dateien komprimieren und umbenennen:
</para>
<screen>
gzip index.html
mv index.html.gz index.htmz
</screen>

<para>
Natürlich müssen alle Links auf den Seiten entsprechend geändert werden, also zum Beispiel:
 &lt;a href="page.htmz"&gt;Eine Seite&lt;/a&gt;
</para>

</sect3>
</sect2>
</sect1>

<sect1 id="php">
<title>mod_php seine Voraussetzungen</title>


<sect2><title>Was ist mod_php</title>
<blockquote><attribution>www.php.net</attribution>
<para>PHP ist eine serverseitige, plattformübergreifende, <abbrev>HTML</abbrev>-embedded Scriptsprache.</para>
<para>Am Anfang war es ein einfaches Gästebuch-Verarbeitungsprogramm, und es wuchs und wuchs. Seit der Version 3
ist PHP eine mächtige Web-Entwicklungs-Sprache</para>
</blockquote>

<para>Seit Version 4 ist PHP fähig und robust genug für unternehmenskritische Applikationen. PHP ist mächtig, und unterstützt
die meisten wichtigen Datenbanken von Hause aus, oder via <abbrev>ODBC</abbrev>. PHP auf Apache ist auf derselben Hardware um einiges 
schneller als <application>IIS</application> mit <abbrev>ASP</abbrev> aus dem Hause Microsoft.</para>
<para>Da sich die Syntax stark an Java, C und Perl orientiert kann man <application>PHP</application> sehr schnell erlernen.</para>

<para>Es existieren Erweiterungen wie <application>APC</application> (Alternative PHP Cache) welche die 
Geschwindigkeit um weitere 50-400 &percnt; erhöhen
(Kommt auf die Anwendung an)</para>
</sect2>

<sect2><title>Voraussetzungen</title>
<para>
Abhängig von den gewünschten Fähigkeiten welche <application>PHP</application> haben soll, muss erst noch 
einiges an Software installiert werden.
MySQL ist bereits installiert um  <application>mod_auth_mysql</application> kompilieren zu können.</para>

<sect3><title>IMAP client</title>

<sect4><title>Was ist IMAP</title>
<para>IMAP heisst »Internet Mail Application Protocol« und ist ein Protokoll als Nachfolger
von POP3. 
Es erlaubt Emails in verschiedenen Verzeichnissen auf dem Server aufzubewahren 
(welcher hoffentlich eine regelmässige Datensicherung erfährt - Nie mehr verlorene Mails weil die 
lokale Festplatte zerstört wurde).
</para>
</sect4>
</sect3>

<sect3><title>Download des Quellcodes</title>

<para>Hauptserver: <ulink url="http://www.washington.edu/imap/">http://www.washington.edu/imap/</ulink>
</para>
</sect3>

<sect3><title>Kompilieren und installieren</title>

<para>
<screen>
cd /usr/local

tar -xvfz imap.tar.Z

cd imap

make slx SSLTYPE=unix <co id="imap">
</screen>
</para>

<para>
<calloutlist>
<callout arearefs="imap">
<para>Hier wird <option>SSLTYPE=unix</option> angegeben, falls SSL Unterstützung benötigt wird.</para></callout>
</calloutlist>
</para>

<tip><title>Dateiname zum downloaden</title>
<para><filename>imap.tar.Z</filename> ist ein symbolischer Link zur letzten verfügbaren Version, also zum Beispiel 
<filename>imap-2001a.tar.Z</filename></para>
</tip>

</sect3>

<sect3><title>PostgreSQL</title>
<sect4><title>Was ist PostgreSQL</title>
<para>PostgreSQL ist eine sehr mächtige Datenbank mit langer Geschichte</para>
<para>PostgreSQL ist wie MySQL sehr gut geeignet für Webapplikationen, aber aus meiner Sicht 
weniger einfach zu handhaben.</para>
<para>Wenn die Applikation sehr viel Schreibzugriffe tätigt, oder auf Transaktionen angewiesen ist, 
dann ist PostgreSQL eine gute Wahl.</para>
</sect4>
<sect4><title>Download des Quellcodes</title>
<para>Hauptserver: <ulink url="http://www.postgresql.org">http://www.postgresql.org</ulink> </para>
</sect4>
<sect4><title>Kompilieren und installieren</title>

<screen>
cd /usr/local

tar -xvzf postgresql-7.2.1.tar.gz

cd postgresql-7.2.1

./configure &bsol;
--with-perl &bsol;
--with-odbc &bsol;

make
make install

echo /usr/local/pgsql/lib &gt;&gt; /etc/ld.so.conf

ldconfig
</screen>

</sect4>
</sect3>

<sect3><title>PDFlib</title>

<sect4><title>Was ist PDFlib</title>
<blockquote><attribution>www.pdflib.com</attribution>
<para>PDFlib: Eine Bibliothek welche es erlaubt PDF dynamisch zu erzeugen. PDFlib ist die erste Wahl wenn  
PDF dynamisch auf dem Server erzeugt werden soll. PDF konvertiert Text und Grafiken, oder implementiert PDF in 
eigenentwickelten Produkten.</para>
</blockquote>

<para>PDFlib ist eine kommerzielle Software, die Prüfung ob eine Lizenz benötigt wird oder nicht ist dringend anzuraten!</para>
</sect4>

<sect4><title>Download des Quellcodes</title>
<para>Hauptserver: <ulink url="http://www.pdflib.com/pdflib/download/pdflib-4.0.3.tar.gz">
http://www.pdflib.com/pdflib/download/pdflib-4.0.3.tar.gz</ulink></para>
</sect4>

<sect4><title>Kompilieren und installieren</title>

<screen>
cd /usr/local/
tar -xvzf pdflib-4.0.3.tar.gz

cd pdflib-4.0.3

./configure --enable-shared-pdflib --enable-cxx

make
make install

ldconfig
</screen>
</sect4>
</sect3>

<sect3><title>gettext</title>

<sect4><title>Was ist gettext</title>
<para>gettext ist eine Bibliothek welche für die Internationalisierung von Applikationen verwendet werden kann.</para>
</sect4>

<sect4><title>Download des Quellcodes</title>
<para>Hauptserver: <ulink url="ftp://ftp.gnu.org/gnu/gettext">ftp://ftp.gnu.org/gnu/gettext</ulink>
</para>
</sect4>

<sect4><title>Kompilieren und installieren</title>

<screen>
cd /usr/local

tar -xvzf gettext-0.11.2.tar.gz

cd gettext-0.11.2

./configure

make
make check
make install
</screen>

</sect4>
</sect3>

<sect3><title>zlib</title>

<sect4><title>Was is zlib</title>
<para>zlib ist eine Bibliothek welche eine verlustfreie Kompression ermöglicht. zlib läuft auf praktisch jeder 
Hardware und Betriebssystem.</para>
</sect4>

<sect4><title>Download des Quellcodes</title>
<para>Origin-Site: 
<ulink url="//ftp.info-zip.org/pub/infozip/zlib/zlib.tar.gz">ftp://ftp.info-zip.org/pub/infozip/zlib/zlib.tar.gz</ulink>
</para>
</sect4>

<sect4><title>Kompilieren und installieren</title>

<screen>
cd /usr/local

tar -xvzf zlib.tar.gz

cd zlib-1.1.4/

./configure

make
make check
make install

ldconfig
</screen>
</sect4>
</sect3>

</sect2>

<sect2 id="build-php"><title>Kompilieren und installieren von PHP4</title>

<screen>
cd /usr/local

tar -xvzf php-4.2.1.tar.gz

cd php-4.2.1

./configure &bsol;
--with-apxs=/usr/local/apache/bin/apxs &bsol;
--with-mysql=/usr/local/mysql &bsol;
--with-pgsql=/usr/local/pgsql &bsol;
--enable-track-vars &bsol;
--with-openssl=/usr/local/ssl &bsol;
--with-imap=/usr/local/imap-2001a &bsol;
--with-gd --with-ldap &bsol;
--enable-ftp &bsol;
--enable-sysvsem &bsol;
--enable-sysvshm &bsol;
--enable-sockets &bsol;
--with-pdflib=/usr/local &bsol;
--with-gettext &bsol;
--with-mm=/usr/local/mm-1.1.3 &bsol;
--with-jpeg-dir=/usr/lib &bsol;
--with-zlib-dir=/usr/local &bsol;

make
make install
</screen>

<para>Kopieren Sie die mitgelieferte Beispiel <filename>php.ini-dist</filename> nach <filename>/usr/local/lib/php.ini</filename></para>

<screen>
cp /usr/local/php-4.2.1/php.ini-dist /usr/local/lib/php.ini
</screen>

<para>Entfernen Sie die &num; an Anfang der folgenden Linien in <filename>/usr/local/apache/conf/httpd.conf</filename></para>
<para>Die derzeitige Apache Version enthält die folgen Zeilen nicht, und müssen eingefügt werden.</para>

<para>
<screen>
AddType application/x-httpd-php .php
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php .php3

AddType application/x-httpd-php-source .phps <co id="source">
</screen>
</para>

<para>
<calloutlist> 
<callout arearefs="source"><para>Diese Zeile brauchen Sie nur einzufügen, falls Sie PHP Quellcodes im Browser einzeigen 
lassen wollen. Diese Dateien müssen die Endung .phps besitzen</para>
</callout>
</calloutlist>
</para>

<para>Der Apache muss nun neu gestartet werden: </para>

<para>
<screen>
/usr/local/apache/bin/apachectl restart
</screen>
</para>

</sect2>
</sect1>


<sect1 id="phpext"><title>PHP Erweiterungen</title>
<para>Es existieren verschiedene Erweiterungen <foreignphrase>(extensions)</foreignphrase> für PHP, welche in der 
<filename>php.ini</filename> eingetragen werden können.</para>

<sect2><title>APC (Alternative PHP-Cache)</title>
<sect3><title>Was ist APC</title>
<blockquote><attribution>www.apc.communityconnect.com/</attribution>
<para>APC heisst »Alternative PHP Cache«. APC wurde erdacht um einen Weg zu Performancesteigerung auf hoch belasteten Servern
zu erzielen. Dies wird erreicht durch das Zwischenspeichern der php-Seiten in ihrem kompilierten Zustand, 
so das der Overhead des Parsens und Kompilieren nahezu eliminiert wird.

Es existieren kommerzielle Produkte mit derselben Funktionalität, aber diese sind weder OpenSource noch frei verfügbar.
</para>
</blockquote>


<para>Ich machte einige Performancetests mit apc und es war wirklich eine Überraschung. Eine PHP-Webpage mit 
verschachtelten MySQL-Abfragen (total 10 Abfragen) wurde mehr als 50&percnt; schneller.</para>

</sect3>
<sect3><title>Download des Quellcodes</title>
<para>Hauptserver: <ulink url="http://apc.communityconnect.com/sources/apc-cvs.tar.gz">http://apc.communityconnect.com/sources/apc-cvs.tar.gz</ulink></para>
</sect3>

<sect3><title>Kompilieren und installieren</title>

<screen>
cd /usr/local

tar -xvzf apc-cvs.tar.gz

cd apc

./configure --enable-apc --with-php-config=/usr/local/bin/php-config

make
make install

cp modules/php_apc.so /usr/local/lib/php/extensions

echo 'zend_extension=&quot;/usr/local/lib/php/extensions/php_apc.so&quot;' &gt;&gt; /usr/local/lib/php.ini
echo &ldquo;apc.mode = shm&rdquo; &gt;&gt; apc.mode = shm
</screen>

<para>
Apache muss nun neu gestartet werden. Durch das Erstellen eines PHP-Dokumentes mit folgendem Inhalt 
kann die Funktion des APC überprüft werden: </para>

<screen>
&lt;?php
apcinfo();
?&gt;
</screen>

</sect3>
</sect2>


<sect2><title>Zend-Optimizer</title>
<sect3><title>Was ist Zend-optimizer</title>
<para>Zitat www.zend.com</para>
<blockquote><attribution>www.zend.com</attribution>
<para>Der Zend-Optimizer optimiert den Code weitergehend als die Zend-Engine, und erreicht durch dies 
eine Performancesteigerung.</para>
</blockquote>

<para>Bei eigenen Performancetests habe ich einen Performance-Verlust von rund 5&percnt; 
gesehen? Ich stelle die Frage in den Raum, für was diese close source-Applikation den nützlich sein soll?
</para>
<para>Auf jeden Fall sind eigene Test angebracht um zu sehen in welchen spezifischen Fällen APC oder 
Zend-Optimizer das bessere Ergebnis produziert.</para>
<para>Was leider nicht funktioniert, ist APC und Zend-Optimizer zusammen laufenzulassen, 
Apache startet erst gar nicht</para>
</sect3>

<sect3><title>Download des Programms</title>
<para>Hauptserver: <ulink url="https://www.zend.com/store/free_download.php?pid=13">https://www.zend.com/store/free_download.php?pid=13</ulink></para>

<para>Um das Programm downloaden zu können muss man sich erst bei zend.com registrieren, meine Erfahrung war, 
das kein SPAM verschickt wurde aufgrund dieser Registration.</para>
</sect3>


<sect3><title>Installieren</title>
<para>Das das Produkt closedsource ist, gibts nichts zu kompilieren.
</para>

<screen>

cd /usr/local

tar -xvzf ZendOptimizer-1.3.1-Linux_glibc21-i386.tar.gz

cd ZendOptimizer-1.3.1-Linux_glibc21-i386

./install.sh

</screen>

<para>Das Installations-Script sollte selbsterklärend sein. Wenn Sie Apache und PHP so kompiliert haben, wie in diesem 
Dokument beschrieben, genügt es bei den Fragen <keycap>ENTER</keycap> zu drücken.
</para>

</sect3>
</sect2>
</sect1>

<sect1 id="ssjava"><title>Serverseitiges Java</title>
<sect2><title>mod_jserv</title>
<sect3><title>Was ist mod_jserv</title>
<blockquote><attribution>java.apache.org</attribution>
<para>Apache JServ ist eine 100% pure Java Servlet Engine welche voll den Anforderungen 
von JavaSofts Java Servlet <abbrev>API</abbrev> 2.0 entspricht.
</para>
</blockquote>

<para>mod_jserv ist erstaunlich einfach zu handhaben, was für Java-Applikationen 
an ein Wunder grenzt.</para>

<para>
Unglücklicherweise wird mod_jserv nicht mehr länger aktiv weiterentwickelt, sondern nur 
noch allfällige schwerwiegende Fehler repariert.</para>
<para>An Stelle von mod_jserv ist Tomcat getreten, welches ungleich schwieriger zu handhaben und installieren ist.
Auch JSDK 2.0 ist nicht aktuell. Sobald ich genügend Erfahrungen mit Tomcat habe, wird das HOWTO 
entsprechend erweitert.
</para>

</sect3>
<sect3><title>Voraussetzungen</title>
<sect4><title>JSDK 2.0</title>
<sect5><title>Was ist JSDK</title>
<para>Es ist das API von Sun Microsystems um Servlets entwickeln zu können.</para>
</sect5>
<sect5><title>Download</title>
<para>Hauptserver: <ulink url="http://java.sun.com/products/servlet/archive.html">
http://java.sun.com/products/servlet/archive.html</ulink></para>
</sect5>
<sect5><title>Installieren</title>
<para>JSDK ist ein Java-Binary, einfach installieren genügt</para>

<tip><title>Verwirrender Dateiname</title>
<para>Der Dateiname <filename>jsdk20-solaris2-sparc.tar.Z</filename> suggeriert das die Datei nur für die 
SPARC Plattform ist, funktioniert aber auf allen anderen Plattformen ebenfalls. 
</para>
</tip>

<para>
<screen>
cd /usr/local/ 

uncompress jsdk20-solaris2-sparc.tar.Z
tar -xvf jsdk20-solaris2-sparc.tar
</screen>
</para>

</sect5>
</sect4>
</sect3>
<sect3><title>Download des Quellcodes</title>
<para>Hauptserver: <ulink url="http://java.apache.org/jserv/dist/">http://java.apache.org/jserv/dist/</ulink></para>
</sect3>
<sect3><title>Kompilieren und installieren</title>

<para>
<screen>
cd /usr/local

tar -xvzf ApacheJServ-1.1.2.tar.gz
cd ApacheJServ-1.1.2

./configure &bsol;
--prefix=/usr/local/jserv &bsol;
--with-apxs=/usr/local/apache/bin/apxs &bsol;
--with-JSDK=/usr/local/JSDK2.0 &bsol;
--enable-EAPI &bsol;

make
make install
</screen>
</para>

<caution><title>Extended API</title>
<para>Hier ist es sehr wichtig das Compilerflag <option>--enable-EAPI</option> zu benutzen, falls Apache mit 
mod_ssl kompiliert wurde</para>
</caution>

</sect3>
</sect2>

<sect2><title>jakarta-tomcat</title>
<sect3><title>Was ist Tomcat</title>
<blockquote><attribution>jakarta.apache.org</attribution>
<para>Tomcat ist ein <foreignphrase>servlet container</foreignphrase> der in der offiziellen Referenzimplementierung für die Java 
Servlet und JavaServer Pages Technologien benutzt wird. Die Java Servlet und JavaServer Pages 
Spezifikationen sind von Sun im <foreignphrase>Java Community Process</foreignphrase> entwickelt.</para>
</blockquote>

<para>Tomcat ist der Nachfolger von jserv das nicht mehr weiterentwickelt wird. 
Tomcat unterstützt die aktuellsten jsp und Servlet-API's die Sun definiert hat. Leider is Tomcat sehr 
aufwändig zu kompilieren, weil es ein total proprietäres Building-System benutzt (Ant). 
Die Voraussetzungen dazu enthält eine elend lange Liste: 
<ulink url="http://jakarta.apache.org/tomcat/tomcat-4.0-doc/BUILDING.txt">http://jakarta.apache.org/tomcat/tomcat-4.0-doc/BUILDING.txt</ulink> 
Viel Glück, und Feedback ist willkommen. In der Zwischenzeit wird an dieser Stelle eine Installation der 
Binär-Distribution beschrieben.</para>
<para>Ich suche Voluntäre welche mit der kompilierung der Quellcodes Erfahrungen haben und die Erfahrungen mitteilen.
</para>

</sect3>
<sect3><title>Voraussetzungen</title>
<sect4><title>Java2</title>
<sect5><title>Was ist Java2</title>
<para>Zitat java.sun.com</para>
<para>Kein Zitat, das dieses HOWTO sonst doppelt so lange würde. Hier der Link zu der entsprechenden Seite bei Sun: <ulink url="http://java.sun.com/j2se/1.3/docs/relnotes/features.html">http://java.sun.com/j2se/1.3/docs/relnotes/features.html</ulink></para>
</sect5>
<sect4><title>Download der Binär-Distribution</title>

<para><ulink url="http://java.sun.com/j2se/1.3/">http://java.sun.com/j2se/1.3/</ulink> 
<footnote><para>
Es existiert auch die Version 1.4.0 von Java. Wenn Sie keine Bedenken bezüglich Stabilität haben, können Sie auch diese 
Version downloaden </para>
</footnote> ,wählen Sie die von Ihnen eingesetzte Plattform 
und folgen Sie den Instruktionen auf der Webseite.</para>
</sect4>

<sect4><title>Installation der Binär-Distribution</title>
<para>
Dazu muss die Datei ausgeführt werden:</para>

<screen>
chown +x j2sdk-1_3_1_02-linux-i386.bin

./2sdk-1_3_1_02-linux-i386.bin
</screen>

<para>Nach dem akzeptieren der Lizenz wird ausgepackt, danach kann man das Verzeichnis nach <filename>/usr/lib</filename> verschieben. 
</para>

</sect4>
</sect3>
<sect3><title>Download der Binärdistribution</title>
<para>Hauptserver: 
<ulink url="http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.3/bin/jakarta-tomcat-4.0.3.tar.gz">
http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.3/bin/jakarta-tomcat-4.0.3.tar.gz</ulink></para>

<sect3><title>Installation der Binär-Distribution</title>

<screen>
cd /usr/local

tar -xvzf jakarta-tomcat-4.0.3.tar.gz

cd jakarta-tomcat-4.0.3

cd bin

rm *.bat

echo export JAVA_HOME=/usr/lib/java/ >> /etc/profile
. /etc/profile
</screen>

<para>Jetzt sollte es möglich sein Tomcat zu starten:</para>

<screen>
/usr/local/apache/jakarta-tomcat-4.0.3/bin/startup.sh
</screen>

<para>Falls der Start erfolgreich war, sollte man jetzt Tomcat erreichen können: <ulink url="http://localhost:8080/index.html">http://localhost:8080/index.html</ulink></para>

<para>Für die weiteren Schritte wie installieren der Servlets und jsp Dateien ist jeder selber verantwortlich...</para>

<tip><title>Umgebungsvariabeln</title>
<para>
Sollte Tomcat und/oder Ihre Servlets nicht ausgeführt werden können, liegt meinestens ein Problem mit 
der Umgebungsvariable <varname>CLASSPATH</varname> vor. Stellen Sie sicher das alle von Ihren Servlets benötigten Klassen
in in dieser Variable drin stehen.
</para>
</tip>

</sect3>
</sect2>
</sect1>

<sect1 id="moreinfo"><title>Weiterführende Informationen</title>
<para>Hier finden Sie Quellen für weiterführende Informationen zum den besprochenen Themen</para>

<sect2 id="newsgroups">
<title>Newsgroups</title>

<para>Einige interessante (englische) Newsgroups:

<indexterm>
     <primary>disk!information resources!news groups</primary>
    </indexterm>

    <itemizedlist>

     <listitem>
      <para>
       <ulink url="news:alt.apache.configuration">alt.apache.configuration</ulink>
      </para>
     </listitem>

     <listitem>
      <para>
       <ulink url="news:comp.infosystems.www.servers.unix">comp.infosystems.www.servers.unix</ulink>
      </para>
     </listitem>

     <listitem>
      <para>
       <ulink url="news:alt.comp.lang.php">alt.comp.lang.php</ulink>
      </para>
     </listitem>

     <listitem>
      <para>
       <ulink url="news:alt.php">alt.php</ulink>
      </para>
     </listitem>

     <listitem>
      <para>
       <ulink url="news:comp.databases">comp.databases</ulink>
      </para>
     </listitem>

    </itemizedlist>


<para>
Daneben gibts es einige Länderspezifische Newsgroups, welche ebenfalls in Sachen Apache helfen können. Ein Beispiel ist:
<ulink url="news://ch.comp.os.linux">ch.comp.os.linux</ulink>

</sect2>

<sect2 id="mailinglists"><title>Mailing Listen</title>
<para>Für einige Themen existieren Mailinglisten, allerdings sind alle welche ich kenne in Englisch.
Diesen Mailinglisten sollte man nur in englisch schreiben.
Wenn jemand diese Sprache nicht so beherrscht, macht nichts, Rechtschreibefehler werden verziehen.
</para>

<sect3>
   <title><email>users@httpd.apache.org</email></title>
   <para>Senden Sie ein leeres Email an <email>users-subscribe@httpd.apache.org</email> um in 
der Mailingliste aufgenommen zu werden.</para>

   <para>Bevor Sie Fragen an eine Mailingliste schicken konsultieren Sie bitte das entsprechende Archiv. 
	Im Falle von Apache is dieses	an folgender Adresse zu finden: <ulink url="http://marc.theaimsgroup.com/?l=apache-httpd-users">
   http://marc.theaimsgroup.com/?l=apache-httpd-users</ulink></para>


</sect3>

<sect3><title><email>modperl@apache.org</email></title>
<para>Senden Sie ein Email mit dem Inhalt (nicht Betreff) »subscribe modperl" an <email>modperl@apache.org</email> </para>

<para>Das Archiv dieser Liste kann hier gefunden werden:
<ulink url="http://outside.organic.com/mail-archives/modperl/">
   http://outside.organic.com/mail-archives/modperl/</ulink></para>

</sect3>

<sect3><title><email>openssl-users@openssl.org</email></title>
<para>Senden Sie ein Email mit dem Inhalt (nicht Betreff) »subscribe openssl-users" an <email>majordomo@openssl.org</email>
</para>

<para>Das Archiv dieser Liste kann hier gefunden werden: <ulink url="http://www.mail-archive.com/openssl-users@openssl.org/">
        http://www.mail-archive.com/openssl-users@openssl.org/</ulink></para>

</sect3>

<sect3>
<title><email>modssl-users@modssl.org</email></title>
<para>Senden Sie ein Email mit dem Inhalt (nicht Betreff) »subscribe modssl-users" an 
<email>majordomo@modssl.org</email> </para>

<para>Das Archiv dieser Liste kann hier gefunden werden:
<ulink url="http://www.mail-archive.com/modssl-users@modssl.org/">
        http://www.mail-archive.com/modssl-users@modssl.org/</ulink></para>

</sect3>

<sect3>
<title><email>mysql@lists.mysql.com</email></title>
<para>Senden Sie ein leeres Email an <email>mysql-subscribe@lists.mysql.com</email></para>

<para>Das Archiv dieser Liste kann hier gefunden werden:
<ulink url="http://lists.mysql.com/cgi-ez/ezmlm-cgi/">
        http://lists.mysql.com/cgi-ez/ezmlm-cgi/</ulink></para>

</sect3>

<sect3>
<title><email>pgsql-general@postgres.org</email></title>
<para>Füllen Sie das Formular auf <ulink url="http://developer.postgresql.org/mailsub.php">
        http://developer.postgresql.org/mailsub.php</ulink> </para>

<para>Das Archiv dieser Liste kann hier gefunden werden:
<ulink url="http://archives.postgresql.org/pgsql-general/">
        http://archives.postgresql.org/pgsql-general/</ulink></para>

</sect3>

<sect3>
<title>PHP Mailinglisten</title>
<para>Hier gibt es diverse Mailinglisten, einfach das Formular auf folgender Webseite ausfüllen:
<ulink url="http://www.php.net/mailing-lists.php">
        http://www.php.net/mailing-lists.php</ulink>
<para>Auf dieser Seite gibts ebenfalls Links zu den entsprechenden Archiven</para>

</sect3>

<sect3>
<title><email>apc-cache@lists.communityconnect.com</email></title>
<para>Sende ein Email mit dem Inhalt (nicht Betreff) »subscribe« an <email>apc-cache-request@lists.communityconnect.com</email>
</para>

</sect3>
</sect2>

<sect2><title>HOWTO</title>

<para>Leider sind zu verwandten Thememen keine deutchsprachigen HOWTO's vorhanden. Dies liegt wohl daran,
dass die Qualitätsansprüche des »Deutschen Linux HOWTO Projektes« schlichtweg zu hoch sind. Bei diesem Projekt wird
auf maximale sprachliche Qualität Wert gelegt. Da selten ein Hacker Germanistik studiert hat, ist die Auswahl entsprechend 
sehr klein.</para>

<para>Ich spiele mit dem Gedanken, ein alternatives Projekt zu gründen, welches mehr Wert auf den technischen Inhalt legt,
mit dem Vorbild des <foreignphrase>Linux Documentation Project</foreignphrase></para>

<para>Alleine ist der Arbeitsaufwand allerdings kaum zu bewältigen. Daher müsste ein solches Projekt 
»Mitstreiter« haben, welche die Arbeit gemeinsam erledigen.</para>

<para>Folgende Kenntnisse sind sinnvoll:</para>

<itemizedlist>

<listitem>
<para>SGML Kenntnisse, speziell Erfahrungen mit den Docbook 3.1 und 4.1 DTD's</para>
</listitem>

<listitem>
<para>XML Kenntnisse, speziell Erfahrungen mit Docbook 4.1 XML DTD</para>
</listitem>

<listitem>
<para>CVS Kenntnisse, um einen CVS Server zu pflegen</para>
</listitem>

</itemizedlist>

<para>
Web und CVS Server sowie 512kbps Leitung kann ich zumindest vorläufig zur Verfügung stellen. 
</para>

<para>Viel zu bieten hat ein solches Projekt den Teinehmern kaum, ausser ein gutes Gefühl, 
etwas für die Allgemeinheit getan zu haben. Ausserdem macht sich eine Publikation immer gut 
auf einer Stellenbewerbung :-)</para>

</sect2>


</sect1>

<sect1 id="faq"><title>FAQ (Häufig gestellte Fragen)</title>
<indexterm>
    <primary>(your index root)!FAQ</primary>
   </indexterm>
   <indexterm>
    <primary>(your index root)!frequently asked questions</primary>
   </indexterm>

<para>Hier beantworte ich die am häufigsten gestellten Fragen</para>

  <para>
        
<qandaset>
<qandadiv><title>FAQ</title>
<qandaentry>
<question>
	<para>
	Frage: Gibt es eine Version dieses Dokumentes für Apache 2.0?</para>

	</question>
	
	<answer>
	<para>
	Antwort: Noch nicht. Das liegt daran, das PHP 4.2.1 das Apache2 API zur Zeit nur experimentell unterstützt. Dadurch ist
	die Stabilität des ganzen sehr in Frage gestellt. Ausserdem habe ich bei ersten Tests massive 
	Geschwindigkeitsprobleme festgestellt. Apache 2.0 ist ein ganz gewaltiger Fortschritt in Sachen Funktionalität und
	Geschwindigkeit (ohne PHP). Deshalb wird ganz sicher ein entsprechendes HOWTO geschrieben. Zur Zeit bin 
	ich am Sammeln von Vorschlägen, was von den Benutzern denn so gewünscht wird. Für Vorschläge bitte ein Email senden an:
	<email>luc at delouw.ch</email>
	</para>
	</answer>
</qandaentry>


<qandaentry><question>
	<para>
	Frage: Wieso gibt es in diesem Dokument keine Beschreibung für mod_xyz?
	</para>
	</question>

	<answer>

	<para>
	Antwort: Weil ich das entsprechende Modul nicht kenne, und weil niemand danach gefragt hatte. Wenn ich genügend Anfragen 
	für die Unterstützung eines Modules erhalte, und ich das Modul entsprechend getestet habe, werde ich das 
	Dokument entsprechend ergänzen.</para>
	</answer>
</qandaentry>

<qandaentry><question>

	<para>
	Frage: Meine Kunden erhalten beim Aufruf von https://myserver.org eine Fehlermeldung wegen einem ungültigen Zertifikat.
	Was läuft falsch?</para>

       </question>

        <answer>
	<para>
	Antwort: Das selber erstellte Zertifikat wie beschrieben in diesem Dokument is selbst-zertifiziert. Nun kennen die Browser der
	Kunden dieses Zertifizierungsstelle (<foreignphrase>Certification Authority</foreignphrase>, <abbrev>CA</abbrev>) nicht. 
	Im Falle eines Einsatzes in einem Intranet ist der einfachste Weg, das Zertifikat auf den Browsern zu installieren. 
	Für kommerzielle Webserver im Internet für Zahlungsverkehr oder ähnliches ist aber dringend empfohlen das 
	Zertifikat von entsprechender Stelle autorisieren zu lassen.
	Ein solcher Vorgang kostet leider einige hundert US Dollars, zum Beispiel bei <ulink url="http://www.verisign.com">
	http://www.verisign.com</ulink>.
	</para>
        </answer>
</qandaentry>

<qandaentry><question>

	<para>
	Frage: Wenn ich eine PHP Seite aufrufe will der Browser die Seite downloaden oder zeigt mir den Quellcode der PHP-Seite an.
	Was ist hier falsch gelaufen?</para>
        </question>

        <answer>
	<para>
	Antwort: Sie haben vergessen dem Apache mitzuteilen was mit den Dateien anzufangen ist. So sind die Dateien eben nicht 
	von der Zend Engine ausgeführt worden. Um dies zu berichtigen lesen Sie bitte <xref linkend="build-php">
	durch.
	</para>

        </answer>
</qandaentry>

<qandaentry><question>
	<para>
	Frage: Was ist mit Anderen Plattformen? ganz oben kann ich lesen es soll eine AIX, HP-UX usw. Version geben?
	</para>
       </question>

        <answer>
	<para>
	Antwort: Nun, sobald ich entsprechend Zeit und Maschinen zu Verfügung habe werde ich mich dem Thema wieder annehmen.
	Zur Zeit bin ich in der Lage sagen zu können, das Solaris fast 1:1 übernommen werden kann, und das es auf AIX unmöglich ist
	ohne brutale Quellcode Hackery PHP kompilieren zu können. Auf HP-UX habe ich PHP zum laufen gebracht, aber nicht als DSO,
	sondern nur statisch (php configure --with-apache=/.. anstelle --with-apxs=/..)
	</para>

        </answer>
</qandaentry>
</qandadiv>
</qandaset>


</sect1>	



</article>

