Installationsanleitung zu Apache 2.2.x
Inhalt:
- Wichtiger Hinweis!
- Verwendete Software
- Installation vorbereiten
- cronolog installieren
- Apache installieren
- mod_fcgid installieren
- mod_perl installieren
- mod_php5 installieren
- mod_suPHP installieren
- Zertifikat für HTTPS erzeugen
- Startscripte installieren
- Apache konfigurieren
- Dateien zur Anleitung
- Starten der Dienste (Programme)
Wichtiger Hinweis!
Eine Umstellung von Apache/1.3.x auf Apache/2.2.x ist mit einigen wichtigen
Änderungen an den Konfigurationsdateien verbunden! Daher unbedingt die unten angegebenen Konfigurationsdateien verwenden!
Verwendete Software:
Alle Dateien runterladen und in dem Verzeichnis
| /usr/local/src/lampxxl/ |
Sollte das Verzeichnis nicht vorhanden sein, einfach anlegen:
|
cd /usr/local/ mkdir src mkdir src/lampxxl |
Nachfolgend die direkten Verknüpfungen auf die Dateien, sollte eine Datei nicht mehr gefunden werden, dann wurde bestimmt wieder die Verzeichnisstruktur auf dem Server umgestellt oder es gibt inzwischen eine neuere Version. Dann einfach die Homepage besuchen und die gewünschte Verison suchen und runterladen. Sollte die nicht mehr vorhanden sind, dann die neuere Version runterladen (sollte in den meisten fällen funktionieren).
- Homepage - httpd/2.2.15
- Homepage - cronolog 1.6.2
- Homepage - mod_fcgid/2.3.5
- Homepage - mod_perl/2.0-2.0.4
- Homepage - PHP/5.2.13
Installation vorbereiten:
Jetzt werden alle Archive entpackt, damit wir die Installation beginnen können.
|
cd /usr/local/src/ tar -xzf lampxxl/httpd-2.2.15.tar.gz tar -xzf lampxxl/cronolog-1.6.2.tar.gz tar -xzf lampxxl/mod_perl-2.0-current.tar.gz tar -xzf lampxxl/mod_fcgid-2.3.5.tar.gz tar -xzf lampxxl/php-5.2.13.tar.gz |
Nun sind alle Archive entpackt und liegen in:
| /usr/local/src |
Ab jetzt wird installiert, es ist aber darauf zu achten, das die Reihenfolge exakt beachtet wird, da einige Pakete ein anderes Paket benötigen kann!
Bei den Installationsanweisungen sind ab und zu Zeilen mit \ am Ende zu sehen,
dies bedeutet, das die Anweisungen in einer Zeile einzugeben sind und das \
wegzulassen ist!
cronolog installieren:
- cd /usr/local/src/cronolog_1.6.2/
- ----------------
- CFLAGS="-O2 -DFILE_MODE=0600 -DDIR_MODE=0700" \
- ./configure \
- --prefix=/usr/local/cronolog/1.6.2
- -------- Download --------
- make
- make install
- ln -s /usr/local/cronolog/1.6.2 /usr/local/cronolog/current
Apache installieren:
Damit das Modul mod_deflate übersetzt werden kann, muß zlib installiert sein!
Die fett markierten Anweisungen schalten ein Modul aus, wenn dieses Module benötigt wird, dann die entsprechende Anweisung auslassen.
Die schräg markierten Anweisungen sind nur dann zu installieren, wenn diese Funktionalität gewünscht ist.
Standardmäßig werden folgende Module installiert:
- mod_actions
- mod_alias
- mod_asis
- mod_auth
- mod_autoindex
- mod_access
- mod_cgi
- mod_cgid
- mod_charset_lite
- mod_dir
- mod_env
- mod_http
- mod_imap (wird bei mir ausgeschaltet mit
--disable-imap) - mod_include
- mod_log_config
- mod_mime
- mod_negotiation
- mod_setenvif
- mod_status
- mod_userdir (wird bei mir ausgeschaltet mit
--disable-userdir) - mod_so
Vor der Installation müssen folgende Librarys/Tools installiert sein:
- cd /usr/local/src/httpd-2.2.15/
- ----------------
- EAPI_MM=/usr/local \
- ./configure \
- --prefix=/usr/local/apache/2.2.15 \
- --with-ssl=/usr/local \
- --with-z=/usr/local \
- --with-mpm=prefork \
- --enable-authz_host=shared \
- --enable-auth-digest=shared \
- --enable-authn-dbm=shared \
- --enable-deflate=shared \
- --enable-headers=shared \
- --enable-logio=shared \
- --enable-ssl=shared \
- --enable-speling=shared \
- --enable-dav=shared \
- --enable-dav-fs=shared \
- --enable-rewrite=shared \
- --enable-mime-magic=shared \
- --enable-expires=shared \
- --enable-suexec \
- --with-suexec-caller=wwwrun \
- --with-suexec-logfile=/var/log/apache/suexec/suexec.log \
- --with-suexec-uidmin=500 \
- --with-suexec-gidmin=100 \
- --with-suexec-docroot=/home \
- --with-suexec-safepath="/bin:/usr/bin:/usr/local/bin" \
- --with-suexec-umask=022 \
- --disable-userdir \
- --disable-imagemap
- make
- make install
- ln -s /usr/local/apache/2.2.15 /usr/local/apache/current
Anmerkung: Sollte das Übersetzen der Quellen wegen der Meldung ... zutil.h ... nicht funktionieren,
dann einfach in /usr/local/include die Datei zutil.h aus dem Archiv kopieren.
Siehe auch: http://www.nabble.com/install-problem-on-solaris-td18822274.html
Jetzt müssen noch ein paar Rechte gesetzt werden:
- chgrp wwwrun /usr/local/apache/current/bin/suexec
- chmod 4750 /usr/local/apache/current/bin/suexec
- chown 0 /usr/local/apache/current/bin/httpd
- chgrp 0 /usr/local/apache/current/bin/httpd
- chmod 511 /usr/local/apache/current/bin/httpd
mod_fcgid installieren:
Bei diesem Schritt wird jetzt mod_fcgid konfiguriert und installiert.
- cd /usr/local/src/mod_fcgid-2.3.5
APXS=/usr/local/apache/current/bin/apxs ./configure.apxs- make
- make install
mod_perl installieren:
Bei diesem Schritt wird jetzt mod_perl konfiguriert und installiert.
- cd /usr/local/src/mod_perl-2.0.4
- perl Makefile.PL MP_APXS=/usr/local/apache/current/bin/apxs
- make
- make install
mod_php5 installieren:
Die fett markierten Anweisungen brauchen nur dann angegeben werden, wenn dieses Funktionalität benötigt wird, ansonsten die entsprechende Anweisung auslassen.
Vor der Installation müssen folgende Librarys/Tools installiert sein:
- cd /usr/local/src/php-5.2.13/
- ----------------
- ./configure \
- --with-apxs2=/usr/local/apache/current/bin/apxs \
- --with-ldap=/usr/local/openldap/current \
- --with-pgsql=/usr/local/postgresql/current \
- --with-mysql=/usr/local/mysql/current \
- --with-pdo-mysql=/usr/local/mysql/current \
- --with-openssl=/usr/local \
- --with-mcrypt=/usr/local \
- --with-curl=/usr/local \
- --with-gd \
- --with-ttf \
- --with-freetype-dir=/usr/local \
- --with-t1lib=/usr/local \
- --with-jpeg-dir=/usr/local \
- --with-png-dir=/usr/local \
- --with-libxml-dir=/usr/local \
- --with-zlib-dir=/usr/local \
- --without-mm \
- --enable-mbstring \
- --enable-sockets \
- --enable-ftp \
- --enable-sysvshm \
- --enable-sysvsem \
- --enable-force-cgi-redirect \
- --enable-fastcgi \
- --with-pcre-regex \
- --with-config-file-path=/etc
- -------- Download --------
- make
- make install
Anmerkgun: Wenn die libpng/1.2.4 installiert ist,
muss vorher die /usr/local/src/php-5.2.13/ext/gd/libgd/gd_png.c editiert werden:
- -- if (!png_check_sig (sig, 8)) { /* bad signature */
- ++ if (png_sig_cmp (sig, 0, 8)) { /* bad signature */
mod_suPHP installieren:
- cd /usr/local/src/suphp-0.7.1/
- ----------------
- ./configure \
- --prefix=/usr/local \
- --with-apxs=/usr/local/apache/current/bin/apxs \
- --with-min-uid=500 \
- --with-min-gid=100 \
- --with-apache-user=wwwrun \
- --with-logfile=/var/log/apache/suphp/suphp.log \
- --with-setid-mode=force \
- --with-apr=/usr/local/apache/current/bin/apr-1-config
- make
- make install
Zertifikat für HTTPS erzeugen:
Nun wird ein Zertifikat erstellt, hierbei handelt es sich um eines für den privaten/internen gebrauch, da es nicht von einer offziellen CA abgesegnet wurde und auch nicht Paßwort geschützt ist. Daher sollte dieses Zertifikat nicht auf einem reellen Server benutzt werden.
|
/usr/local/openssl/current/bin/openssl \ req -new -x509 -days 365 -nodes \ -out /home/domain.de/ssl/server.crt \ -keyout /home/domain.de/ssl/server.key |
Es werden ein paar Daten abgefragt, die mit vernüftigen Daten gefüllt werden sollten. Dabei die Anführungszeichen weglassen!
|
Country Name (2 Letter Code) [AU]: "DE" State or Province Name (full name) [Some-State]: "GERMANY" Organization Name (eg. company) [Internet Widgits Pty Ltd]: "Meine Firma" Organizational Unit Name (eg. section) []: "TLS/SSL-Intranetdatenverbindungsabteilung" Common Name (eg. YOUR name) []: "Meine Firma CA" Emaill Address []: "webmaster@domain.de" |
Das war es, nun ist das Zertifikat generiert und installiert.
Startscripte installieren:
Damit alles was wir eben installiert haben auch bei einem Neustart mitgestartet wird, installieren wir nun ein paar Scripte, die dieser Anleitung beiliegen (unter Dateien zur Anleitung):
Apache
|
chmod 700 /etc/init.d/apachectl ln -s /etc/init.d/apachectl /etc/init.d/rc2.d/S20apachectl ln -s /etc/init.d/apachectl /etc/init.d/rc2.d/K20apachectl |
Änderungen (z Original): HTTPD=/usr/local/apache/1.3.22/bin/httpd ---> PIDFILE=/usr/local/apache/1.3.22/logs/httpd.pid ---> STATUSURL="http://localhost/server-status" --->
HTTPD="/usr/local/apache/current/bin/httpd -f /etc/httpd/httpd.conf -DSSL"
PIDFILE="/var/run/httpd.pid"
STATUSURL="http://localhost/server-stat"
Apache konfigurieren:
Da wir einige Module installiert haben, die noch ein wenig konfiguriert werden müssen, machen wir das jetzt.
Es ist aber auch eine httpd.conf unter Dateien zur Anleitung
zu finden, somit kann man sich das ganze tippen sparen.
Nach einem Neustart des Apache, werden alle Dateien mit der Endung
.perl durch mod_perl und Dateien
mit .pl oder .cgi werden über die CGI-Schnittstelle
ausgeführt. Daher müssen .pl oder .cgi mit der bekannten
shebang-Zeile ausgestattet werden, damit der richtige Interpreter
gestartet wird.
Also wie gewohnt:
#! /usr/bin/perl
oder
#! /bin/sh
Die Log-Dateien werden nun täglich angelegt und nicht wie sonst immer alles in einer
Log-Datei geschrieben, die irgendwann > 10MB ist. Dank cronolog.
Beispiel:
/var/log/apache/access.log.20010715
/var/log/apache/access.log.20010716
/var/log/apache/access.log.20010717
Damit suEXEC richtig arbeiten kann, muß für jeden VirtualHost
jeweils ein User und Group angegeben werden. Also wie im folgendem Beispiel:
|
<VirtualHost 192.168.1.1> User linux.hs-bremerhaven.de Group users ServerName www.linux.hs-bremerhaven.de ServerAlias linux.hs-bremerhaven.de DocumentRoot /home/linux.hs-bremerhaven.de/public_html ScriptAlias /home/linux.hs-bremerhaven.de/cgi-bin </VirtualHost> |
Leider werden Scripte die durch mod_perl und mod_php4 ausgeführt werden, nicht
unter der User-ID des VirtualHost gestartet (also nicht mit suEXEC).
Unter der URL http://www.domain.de/perlstat kann man Informationen zu mod_perl
abrufen, allerdings nur von der IP-Adresse 192.168.1.2, da wir das so eingestellt haben (kann
man aber ändern ;) .
Starten der Dienste (Programme):
Am einfachsten geschiet dieses durch ein Neustart des Rechners. Aber es geht auch anders:
|
/etc/init.d/apachectl start |
Nun sollte alles ohne eine Fehlermeldung gestartet sein.
Dateien zur Anleitung:
Hier nun die Dateien, die einem eine Menge Tipparbeit abnehmen:
Startscripte:
/etc/init.d/apachectl
Conf-Dateien:
/etc/httpd/httpd.conf
/etc/php.ini
Damit nicht jeder die Dateien verändern kann, einmal den User ändern:
|
chown root.root /etc/httpd/httpd.conf chown root.root /etc/php.ini |
und den Modus ändern:
|
chmod 600 /etc/httpd/httpd.conf chmod 600 /etc/php.ini |





