Weiter Zurück [Inhalt] Online Suche im Handbuch

59.3 Apache und PHP 3

Nun werden wir Schritt für Schritt also zuerst einmal PHP 3 in der Grundkonfiguration in den Apache Server hineinkompilieren:

Zuerst aber müssen wir die PHP - Libraries erzeugen. Laden Sie sich vom Server http://www.php3.net die Quellen zu PHP3. Diese heißen in unsererm Beispiel php-3.0.12.tar.gz. Kopieren Sie diese neben das Apache Archiv in /home/www und entpacken Sie die Quellcodes mit tar -xzvf php-3.0.12.tar.gz. Es wird ein Verzeichnis php-3.0.12 angelegt.


www@tunix:~ > cd
www@tunix:~ > cd php-3.0.12
www@tunix:~/php-3.0.12 > ./configure --prefix=/home/www/www --with-mysql \
        --with-apache=../apache_1.3.9 --with-axps
...
...
creating libphp3.module
creating extra/gd/bdf2gdfont
creating regex/Makefile
creating pcrelib/Makefile
creating dbase/Makefile
creating config.h

www@tunix:~/php-3.0.12 > make ; make install
www@tunix:~/php-3.0.12 >

Sie haben nun PHP3 mit allen erdenklichen Modulen für verschiedenste SQL Server, Grafikbibliotheken und Funktionen für den Zugriff über Sockets auf andere Server u.s.w. kompiliert. Damit jedoch MySQL auch korrekt läuft, müssen die MySQL Bibliotheken in /usr/lib/mysql/ installiert sein.

Falls Sie gedenken, den Apache Server in einer CHROOT() Umgebung zu installieren, müssen Sie entweder alles statisch kompilieren, oder die Systemlibraries in die CHROOT() Umgebung kopieren. Lesen Sie hierzu das Firewall Handbuch: http://www.little-idiot.de/firewall/.

Wechseln Sie nun in das Verzeichnis des Apache-Servers, und führen Sie folgende Kommandos aus:


www@tunix:~/php-3.0.12 > cd
www@tunix:~ > cd apache_1.3.9
root@tunix:/home/www/apache_1.3.9 > ./configure
--prefix=/home/www/usr/local/apache-1.3.9
--activate-module=src/modules/php3/libphp3.a
--datadir=/home/www/usr/local/apache-1.3.9/htdocs
--enable-module=info

Mit make; make install können Sie dann den Apache WWW-Server neu kompilieren. Damit dieser auch PHP 3 Skripte korrekt interpretiert, müssen Sie (entgegen den Anleitungen der Apache Dokumentation) in der Datei srm.conf zwei Zeilen hinzufügen:


AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php3-source .phps

Sie sollten auch in der Datei /home/www/usr/local/apache-1.3.9/conf/httpd.conf den Port, die Log - Verzeichnisse und evtl. das DocumentRoot Verzeichnis (/home/www/usr/local/apache-1.3.9/htdocs/) anpassen.

Nun können Sie mit /home/www/usr/local/apache-1.3.9/bin/apachectl start den Apache Server neu kompilieren und installieren. Dieser Apache WWW-Server wird nun viele PHP 3 Skripte korrekt ausführen.

Einige Dinge werden noch nicht funktionieren. Das sind die Ansteuerung von MySQL und die tollen Grafikroutinen von Thomas Boutell, mit denen man in Echtzeit Schrift auf Buttons schreiben kann....

Wenden wir uns nun also den vielen Routinen für PHP3 zu, und versuchen, diese in der Umgebung /home/www/ zu installieren und zu kompilieren...

Vergessen Sie alle Distributionen und RPM, DEB oder PKG Dateien. Diese Softwarepakete können unsere Ansprüche ohnehin nicht alle erfüllen. Wenn Sie nach dieser Anleitung vorgehen, dann können Sie sogar LINUX 1.2.13 nach dem Stand von vor 3 Jahren verwenden. Vergessen Sie also einmal den Versions-Hype der LINUX Distributoren - es ist absoluter Blödsinn, sich stets eine aktuelle LINUX Distribution zu kaufen, wenn man mal wieder ein kleines Feature mehr benötigt, wie z.B. PHP3 oder PHP4. Ich persönlich arbeite sogar noch mit einer Version 1.2.13. Der Server läuft seit ca. 2 Jahren ohne Unterbrechung. Inzwischen läuft auch das aktuelle LAMP System mit MySQL 3.23 und Apache 1.3.9 darauf.

Bevor wir nun den Apache Server bauen, zunächst einige Grundlagen:

Ein Makefile ist dafür verantwortlich, das komplette System zu erstellen und zu installieren. Wenn man standardmäßig make all angibt, dann läuft man in Gefahr, eine alte Installation zu überschreiben, oder daß das sogenannte DocumentRoot, also das Homeverzeichnis des Apache WWW-Servers in einem Verzeichnis installiert wird, an welches man mit Hilfe des FTP Servers zum Upload von HTML, PHP3, CGI-BIN´s nicht herankommt. Daher gibt man beim Kompilieren einige Optionen an, die dieses Problem lösen:


#!/bin/sh
# Apache Konfigurations-Datei apache.conf

./configure \
        --prefix=/usr/local/apache-1.3.9 \
        --mandir=/usr/local/man \
        --logfiledir=/home/www/logs \
        --sysconfdir=/home/www/conf \
        --datadir=/home/www \
        --enable-module=info \
        $*

Dieses Skript starten das Konfigurations - Skript .configure mit den Optionen, die schließlich veranlassen, daß einige Teile im HTTPD so verändert werden, daß der Apache Server stets das Verzeichnis /home/www als Verzeichnis für die HTML Dateien betrachtet. Zu einem späteren Zeitpunkt können Sie dann beliebig viele, virtuelle WWW-Server hinzufügen. Sie können auch mehrere Apache Versionen parallel installieren, wobei z.B. die neue Version auf Port 81 läuft. Mit Hilfe der Option Redirect www.domain.de www.domain.de:81 in dem Konfigurationsfile Ihres Apache Servers auf Port 80 können Sie dann veranlassen, daß diese Domain dann auf den neuen Apache Server umgeleitet wird. So können Sie auf einem einzigen Server zwei oder mehrere Versionen des Apache WWW-Servers für utnerschiedliche Kunden installieren. Versuchen Sie das einmal mit Windwows NT !

Der Apache WWW-Server benötigt nur wenige Konfigurationsanweisungen da bisher keine zusätzlichen Module eingebunden werden. Lediglich das mitgelieferte Info-Modul wird aktiviert, da dies die Fehlersuche in einem LAMP-Systems erleichtert. Apaches Log-Dateien werden in /home/www/logs angelegt, seine Konfigurationsdateien in /home/www/conf und die die Daten der Beispielseiten werden in /home/www/htdocs gespeichert. Dadurch wird eine einfache Datensicherung gewährleistet. Legen Sie diese Verzeichnisse so mit mkdir an, oder ändern Sie diese so ab, daß Sie mit Ihren Vorstellugnen von Userverzeichnissen übereinstimmt.

Das Makefile selber sieht folgendermaßen aus. Sie können aber auch das originale Makefile verwenden, welches nach Ausführung von .configure oder obigem Skript erstellt wurde:


Weiter Zurück [Inhalt] Online Suche im Handbuch