php4-pakete mit Informixunterstützung für Debian Seite 1/6 PHP4 mit Informix auf Debian testing und stable (August 2005) Inhaltsübersicht Überblick...1 Voraussetzungen...1 Änderungen am rules File...2 Starten der Kompilation...3 Pakete installieren...3 Pakete auf hold setzen...4 Apache konfigurieren...4 Installation testen...5 Überblick Dieses Dokument beschreibt die Erstellung eines php4-paketes mit Informixunterstützung. Das entstehende Paket passt sich nahtlos in das Debianpaketmanagement an und kann von diesem mitverwaltet werden. Voraussetzungen Der Informix-Client SDK Version 2.90.UC1 muss installiert sein. Neuere oder ältere Versionen bis 2.80 sollten auch gehen. Der PHP-Quellcode muss installiert werden, inklusive der Buildabhängigkeiten: ~/> apt-get build-dep php4 Obiger Befehl lädt die zum Kompilieren des Quellpaketes notwendigen Zusatzpakete (Compiler und Development-Pakete) herunter. Nachfolgender Befehl installiert und entpackt die php4 Quellpakte mit den Debianpatches zusammen: ~/> cd /usr/local/src ~/> apt-get source php4
php4-pakete mit Informixunterstützung für Debian Seite 2/6 (Zum Zeitpunkt des Erstellens dieses Dokumentes war die Version 4.3.10-15 bei Debian Testing aktuell.) Änderungen am rules File Im php4-4.3.10-verzeichnis gibt es ein debian-unterverzeichnis, in dem sich das rules -File befindet, das die debiankonforme Kompilation und Paketerstellung steuert. Um das php4-paket mit Informixunterstützung herzustellen, müssen in das rules-file einige Änderungen eingearbeitet werden. Wichtig: Bitte verwenden Sie zum Eintragen der Pfade keine Variablen, sondern schreiben Sie die Pfade vollständig aus. Bei der Verwendung von Variablen kam es immer wieder zu Kompilierungsfehlern. Im untenstehenden Beispiel wurde angenommen, dass das Informixsdk in /usr/informix-sdk liegt. Sie müssen die Pfade natürlich an ihre Situation anpassen. Nachfolgend nun ein Beispiel, wie das rules-file angepasst werden sollte. Die Einträge sollten am Anfang der Datei gemacht werden. # informix settings INFORMIXDIR = /usr/informix sdk IFX_LIBOBJS = /usr/informix sdk/lib/esql/checkapi.o IFX_LIBDIR=" L/usr/informix sdk/lib \ L/usr/informix sdk/lib/esql" IFX_INCDIR="usr/informix sdk/incl/esql" IFX_LIBS="/usr/informix sdk/lib/esql/libifsql.a \ /usr/informix sdk/lib/libifasf.a \ /usr/informix sdk/lib/esql/libifgen.a \ /usr/informix sdk/lib/esql/libifos.a \ /usr/informix sdk/lib/esql/libifgls.a \ lgen lgls lm ldl \ /usr/informix sdk/lib/esql/checkapi.o \ /usr/informix sdk/lib/esql/libifglx.a" EXTRA_LIBS = ldl /usr/informix sdk/lib/esql/checkapi.o export INFORMIXDIR IFX_LIBDIR IFX_LIBS IFX_INCDIR IFX_LIBOBJS EXTRA_LIBS
php4-pakete mit Informixunterstützung für Debian Seite 3/6 Bei den Konfigurationsoptionen des configure-befehls für php ist folgende Zeile anzufügen (das fett Geschriebene ist relevant; Wichtig: der Backslash; es wird angenommen, dass das SDK in /usr/informix-sdk installiert ist.): --with-exec-dir=/usr/lib/php4/libexec \ --with-informix=/usr/informix-sdk Starten der Kompilation Haben Sie das rules-file entsprechend der obigen Vorgaben angepasst, gehen Sie in das Verzeichnis mit den entpackten php4-sourcen und starten den Kompiliervorgang: ~/> cd /usr/local/src/php4-4.3.10 ~/> debian/rules binary Wenn alles richtig konfiguriert wurde, sollte nach dem Kompiliervorgang im übergeordneten Verzeichnis (/usr/local/src) eine Sammlung von *deb-files liegen, die die vollständige Sammlung von Debian-php4-Paketen darstellen. Pakete installieren Die Installation wurde mit einem Apache 2 getestet. Debian liefert aktuell auch den Apache in der Version 1.3.x mit aus. Dieser wurde aber nicht getestet. Es wird das gesamte php4-paket compiliert. Sollten sie schon eine php4- Installation auf Ihrem Rechner haben, so empfiehlt es sich sämtliche schon installierten Pakete durch ihren neu übersetzten Gegenparts zu ersetzen (dpkg -i filename.deb). Ist bisher noch kein php4 auf Ihrem Rechner, benötigen Sie minimal folgende Paktet (zusätzlich zum Apache2): libapache2-mod-php4_4.3.10-15_i386.deb libapache-mod-php4_4.3.10-15_i386.deb php4_4.3.10-15_all.deb php4-common_4.3.10-15_i386.deb Sollten Sie später noch einmal andere Module von PHP nachinstallieren wollen, so nehmen Sie bitte das entsprechende Paktet aus der Sammlung der selber erstellten Pakete
php4-pakete mit Informixunterstützung für Debian Seite 4/6 Pakete auf hold setzen Damit bei einem Update der Debianinstallation die installierten php4-pakete nicht überschrieben werden, empfiehlt es sich, die Pakete auf hold zu setzen. Sie werden dann trotz eines unter Umständen zur Verfügung stehenden aktuelleren Paketes nicht aktualisiert. Folgender Befehl setzt die Pakete auf hold : ~/> echo PAKETNAME hold dpkg set-selections mit ~/> echo PAKETNAME install dpkg set-selections machen Sie das auf hold setzen wieder rückgängig Wenn aktualisierte Pakete zur Verfügung stehen, so können Sie Ihre php4- Pakete selber bauen und die aktualiserte Versione selber neu installieren. Apache konfigurieren Damit beim Starten des Apaches die benötigten Informixlibraries gefunden werden können, muss das Apache Startskript noch angepasst werden. Folgende Variablen sollten eingetragen werden: INFORMIXSERVER INFORMIXDIR LD_LIBRARY_PATH # informix environment if [ -r ~informix/ifxini.sdk ]; then. ~informix/ifxini.sdk ENV="$ENV INFORMIXSERVER=$INFORMIXSERVER INFORMIXDIR=$INFORMIXDIR LD_LIBRARY_PATH=$LD_LIBRARY_PATH" else fi echo "FATAL! Informix config not found" exit 1 Die Umgebungsvariablen müssen in einer ganz bestimmten Form im Startskript hinterlegt werden, und zwar müssen sie selbst in der Variablen ENV eingetragen werden. Obenstehend ein Beispiel, bei dem angenommen
php4-pakete mit Informixunterstützung für Debian Seite 5/6 wird, dass sich die relevanten Umgebungsvariablen (INFORMIXSERVER, INFORMIXDIR und LD_LIBRARY_PATH) in einem externen File (ifxini.sdk) befinden. Danach den Apache neu starten Installation testen Wenn der Apache nach obigen Änderungen fehlerfrei wieder hochfährt, können Sie testen, ob Ihr php4 mit Informixunterstützung läuft. Erstellen sie eine php Seite mit folgendem Inhalt: <?php phpinfo();?> Speichern Sie diese Seite unter einem beliebigen Namen, aber mit der Endung php im Apache-Dokumentenverzeichnis ab (Standard ist /var/www) und rufen Sie diese mit Ihrem Browser auf: http://<ip des Rechners>/seitenname.php In der erscheinenden Übersicht über die php-installation sollte ein Abschnitt Informix mit enem ähnlichen Inhalt wie in folgender Abbildung enthalten sein.
php4-pakete mit Informixunterstützung für Debian Seite 6/6 Um einen noch genaueren Test durchzuführen, können Sie testweise in einem php-file eine Verbindung zu einer Informixdatenbank aufbauen. Ein solches File könnte so aussehen: <? $conn_id=ifx_connect("stores7@ids_tcp","informix","abc123"); ifx_close($conn_id);?> Bekommen Sie auch hier keine Fehlermeldung, so haben Sie erfolgreich ein php mit Informixunterstützung auf Debian installiert.