3. Downloaden, kompilieren und installieren von Apache und seinen wichtigsten Modulen

3.1. Download und auspacken des Apache Quellcodes

3.1.3. Patch für Grosse Serverumgebungen

Download von: http://www.delouw.ch/linux/apache-patch_HARD_SERVER_LIMIT.txt

--- 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

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 /etc/security/limits.conf denken.

CautionSicherstellung von genügend Resourcen
 

Mit falschen Einstellungen in /etc/security/limits.conf und/oder falsch konfiguriertem Kernel kann man sich einen »Self-Denial-Of-Service-Attack 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

Um den patch anzuwenden:

cd /usr/local/apache_1.3.26/src/include

patch -p0 < apache-patch_HARD_SERVER_LIMIT.txt

3.2. mod_ssl

3.2.3. Anwenden des Patches

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 \
--with-apache=../apache_1.3.26 \

3.3. mod_perl

3.3.3. Kompilieren und installieren

cd /usr/local

tar -xvzf mod_perl-1.27.tar.gz

cd mod_perl-1.27

perl Makefile.PL \
EVERYTHING=1 \
APACHE_SRC=../apache_1.3.26/src \
USE_APACI=1 \
PREP_HTTPD=1 \
DO_HTTPD=1

make
make install

Kompilieren Sie mod_perl nicht als DSO (Dynamic Shared Object)

CautionMod_perl kann nicht als DSO kompiliert werden
 

Kompilieren Sie mod_perl nicht als DSO (Dynamic Shared Object)! Aufgrund von Meldungen soll Apache nicht mehr lauffähig sein.

3.4. Konfigurieren und Installieren von Apache

Nun sind die beiden statischen Module mod_ssl und mod_perl dem Apache-Quellcode zugefügt worden, der Apache ist jetzt bereit zur Konfiguration.

3.4.1. Kompilieren und installieren

EAPI_MM="/usr/local/mm-1.1.3" SSL_BASE="/usr/local/ssl" \
./configure \
--enable-module=unique_id \
--enable-module=rewrite \
--enable-module=speling \
--enable-module=expires \
--enable-module=info \
--enable-module=log_agent \
--enable-module=log_referer \
--enable-module=usertrack \
--enable-module=proxy \
--enable-module=userdir \
--enable-module=so \
--enable-shared=ssl \
--enable-module=ssl \
--activate-module=src/modules/perl/libperl.a \
--enable-module=perl

make
make install

3.4.2. Erstellen eines selbst signierten SSL-Zertifikates

cd /usr/local/ssl/bin

./openssl req -new > 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

TipCommon name
 

OpenSSL fragt nach verschiedenen Dingen. Ein oft gemachter Fehler ist das Missverstehen von »common name« Hier ist der »Fully Qualified Hostname« gemeint, also zum Beispiel www.foo.org