Installationsanleitung zu Apache 1.3.x
Inhalt:
- Verwendete Software
- Installation vorbereiten
- cronolog installieren
- mod_ssl installieren
- Apache installieren
- mod_gzip installieren
- mod_perl installieren
- mod_php5 installieren
- mod_dav installieren
- mod_accounting installieren
- APC (Alternative PHP Cache) installieren
- Zertifikat für HTTPS erzeugen
- Startscripte installieren
- Apache konfigurieren
- Dateien zur Anleitung
- Starten der Dienste (Programme)
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 - Apache 1.3.27
- Homepage - PHP 4.2.3
- Homepage - APC Current-CVS
- Homepage - cronolog 1.6.2
- Homepage - mod_perl 1.27
- Homepage - mod_ssl 2.8.11-1.3.27
- Homepage - mod_gzip 1.3.26.1a
- Homepage - mod_dav 1.0.3-1.3.6
- Homepage - expat 1.95.6
Installation vorbereiten:
Jetzt werden alle Archive entpackt, damit wir die Installation beginnen können.
|
cd /usr/local/src/ tar -xzf lampxxl/apache_1.3.27.tar.gz tar -xzf lampxxl/php-4.2.3.tar.gz tar -xzf lampxxl/apc-cvs.tar.gz tar -xzf lampxxl/cronolog-1.6.2.tar.gz tar -xzf lampxxl/mod_perl-1.27.tar.gz tar -xzf lampxxl/mod_ssl-2.8.11-1.3.27.tar.gz tar -xzf lampxxl/mod_gzip-1.3.26.1a.tgz tar -xzf lampxxl/mod_dav-1.0.3-1.3.6.tar.gz tar -xzf lampxxl/expat-1.95.6.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 make make install ln -s /usr/local/cronolog/1.6.2 /usr/local/cronolog/current |
mod_ssl installieren:
Sollte bereits ein Zertifikat erstellt sein und verwendet werden, dann die fett markierten hinzufügen (und die Pfadangabe entsprechend ändern) und die Anweisungen bei Zertifikat für HTTPS erzeugen überspringen.
Für die erste Installation von mod_ssl:
|
cd /usr/local/src/mod_ssl-2.8.11-1.3.27/ ./configure \ --with-apache=/usr/local/src/apache_1.3.27 \ --with-ssl=/usr/local/openssl/current \ --with-mm=/usr/local\ --with-crt=/home/domain.de/ssl/server.crt \ --with-key=/home/domain.de/ssl/server.key |
Für eine Aktualisierung von mod_ssl:
|
cd /usr/local/src/mod_ssl-2.8.11-1.3.27/ ./configure \ --with-apxs=/usr/local/apache/current/bin/apxs \ --with-ssl=/usr/local/openssl/current \ --with-mm=/usr/local make make install |
Apache installieren:
Die fett hervorgehobene Zeile schaltet mod_userdir,
welches Standardmäßig eingeschaltet ist, aus. Siehe dazu
mod_userdir,
wenn nötig.
Die kursiv markierten können ausgelassen werden, wenn diese nicht benötigt werden.
Siehe dazu
mod_unique_id,
mod_speling oder
mod_digest.
Die Anweisungen in der httpd.conf zu diesen Modulen müssen dann noch auskommentiert werden.
Die Angaben --enable-module=ssl und --enable-shared=ssl nur bei der ersten
Installation von mod_ssl angeben, denn bei einer Aktualisierung braucht der Apache nicht
erneut kompiliert werden.
|
cd /usr/local/src/apache_1.3.27/ EAPI_MM=/usr/local \ SSL_BASE=/usr/local/openssl/current \ ./configure \ --prefix=/usr/local/apache/1.3.27 \ --enable-suexec \ --suexec-caller=wwwrun \ --suexec-logfile=/var/log/apache/suexec/suexec.log \ --suexec-uidmin=500 \ --suexec-gidmin=100 \ --suexec-docroot=/home \ --suexec-safepath="/bin:/usr/bin:/usr/local/bin" \ --enable-module=so \ --disable-module=userdir \ --enable-module=digest \ --enable-shared=digest \ --enable-module=unique_id \ --enable-shared=unique_id \ --enable-module=speling \ --enable-shared=speling \ --enable-shared=log_config \ --enable-module=ssl \ --enable-shared=ssl make make install ln -s /usr/local/apache/1.3.27 /usr/local/apache/current |
mod_gzip installieren:
|
cd /usr/local/src/mod_gzip-1.3.26.1a make APXS=/usr/local/apache/current/bin/apxs make install APXS=/usr/local/apache/current/bin/apxs |
mod_perl installieren:
Bei diesem Schritt wird jetzt mod_perl konfiguriert und installiert.
|
cd /usr/local/src/mod_perl-1.27 perl Makefile.PL \ USE_APXS=1 \ WITH_APXS=/usr/local/apache/current/bin/apxs \ EVERYTHING=1 \ PERL_USELARGEFILES=0 \ CFLAGS="-DEAPI -I/usr/local/apache/current/include" \ make make install |
mod_php5 installieren:
Die Anweisung --with-ldap natürlich nur dann angeben, wenn LDAP
genutzt werden soll.
Die Anweisung --with-pgsql ebenfalls nur dann angeben, wenn PostgreSQL
genutzt werden soll.
|
cd /usr/local/src/php-4.2.3/ ./configure \ --with-ldap=/usr/local/openldap/current \ --with-pgsql=/usr/local/postgresql/current \ --with-apxs=/usr/local/apache/current/bin/apxs \ --with-mysql=/usr/local/mysql/current \ --with-openssl=/usr/local/openssl/current \ --with-mm=/usr/local \ --with-gd=/usr/local \ --with-zlib-dir=/usr/local \ --enable-sockets \ --enable-trans-sid \ --enable-ftp \ --enable-memory-limit \ --enable-sysvshm \ --enable-sysvsem \ --enable-track-vars \ --with-config-file-path=/etc --disable-libxml make make install |
mod_dav installieren:
Als erstes wird expat installiert, da dieses Paket von mod_dav benötigt wird:
- cd /usr/local/src/expat-1.95.6
- ./configure \
- --prefix=/usr/local/expat/1.95.6 \
- make
- make install
- ln -s /usr/local/expat/1.95.6 /usr/local/expat/current
Library-Pfade hinzufügen:
- echo "/usr/local/expat/current/lib >> /etc/ld.so.conf
ACHTUNG: Es ist unbedingt darauf zu achten, das ">>" verwendet wird, denn ansonsten ist alles andere
aus der Datei verloren und nur noch obiger Eintrag steht drin!
Und dann noch:
- /sbin/ldconfig -v
Nun wird mod_dav installiert:
- cd /usr/local/src/mod_dav-1.0.3-1.3.6
- ./configure \
- --with-apxs=/usr/local/apache/current/bin/apxs \
- --with-expat=/usr/local/expat/current
- make
- cp libdav.so /usr/local/apache/modules/
[1] c´t Ausgabe 10/2003, Seite 216
mod_accounting installieren:
Bei diesem Schritt wird jetzt mod_accounting konfiguriert und installiert.
|
cd /usr/local/src/mod_accounting-0.5 vi ./Makefile |
In Zeile 8 der Pfad zu apxs ändern in /usr/local/apache/current/bin/apxs.
In Zeile 12 -DNEED_POSTGRES oder -DNEED_MYSQL entfernen und in Zeile 13 und 14 die
richtigen Pfade zu den Include und Lib eintragen.
Für MySQL:
/usr/local/mysql/current/include/ und
/usr/local/mysql/current/lib/mysql/
Für PostgreSQL:
/usr/local/postgres/current/include/ und
/urrent/lib/
Dann kompilieren und installieren:
|
make APXS=/usr/local/apache/current/bin/apxs cp mod_accounting.so /usr/local/apache/modules/ |
APC (Alternative PHP Cache) installieren:
Als nächstes wird apc (Alternative PHP Cache) installiert. Dieser Cache legt PHP-Dateien in ihrem kompilierten Zustand ab und spart dadurch den Overhead des parsens und kompilieren. Performancesteigerung garantiert. ;)
|
cd /usr/local/src/apc/ ./configure \ --enable-apc \ --with-php-config=/usr/local/bin/php-config make cp modules/php_apc.so /usr/local/lib/php/extensions |
Mit Hilfe des folgenden PHP-Befehls kann die Funktion des APC überprüft werden.
| <?php apcinfo(); ?> |
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 |





