da ich momentan an einem Projekt arbeite, in dem es um die Auswertung der Inventardatenbank (basiert auf Oracle 9iR2) mit PHP-Mitteln geht, habe ich mich dazu entschlossen diese kleine Anleitung zu schreiben.
Der Grund dafuer ist/war, dass XAMPP-Paket keine lauffaehige Umgebung fuer LDAP hat und sie auch nicht zum Laufen bewegen laesst. Hier im Forum habe ich auch keine Hilfe bekommen, deswegen habe ich es mit XAMPP sein lassen und es haendisch compiliert und konfiguriert.
Also nun los.
Benoetigte Software:
-> Oracle Client, damit man auf eine Oracle-Datenbank zugreifen kann. Dafuer habe ich den 10g-Client genommen.
-> Tar-Ball von www.apache.org, Version 1.3.33
-> Tar-Ball von www.php.net, Version 4.3.10
-> eine lauffaehige Entwicklungsumgebung, mit make, gcc etc.
So, als erstes installiert man den Oracle-Client auf der Maschine. Den bekommt man auf www.oracle.com, die Datei heisst ship.client.lnx32.cpio.gz und ist etwa 380MB gross. Dabei waehlt man bei der Installation "Administrator" Option auswaehlen, damit die Header- und Libfiles, die fuer PHP benoetigt sind, mitinstalliert werden.
Den Client installiert man als NICHT-ROOT, sonst bricht die Installation ab. Man braucht irgendeinen User anzulegen und mit su - user zu ihm wechseln.
Nach der Installation vom Oracle-Client beginnt man mit der Installation von Apache. Dazu entpackt man den Archiv in irgendein Verzeichnis und geht wie folgt vor (Apache Version 1.3.33):
- Code: Select all
tar -xzvf apache_1.3.33.tar.gz
cd apache_1.3.33
./configure --prefix=/opt/apache --enable-module=so
Der Flag --enable-module=so ist sehr wichtig, ohne ihn wird die PHP-Oracle-Unterstuetzung nicht laufen. Nach dem Durchlaufen des Configscripts, folgt:
- Code: Select all
make
make install
Dann startet man den Apache-Server und schaut nach ob alles tut:
- Code: Select all
/opt/apache/bin/apachectl start
Man macht den Browser auf, und gibt als URL http://rechnername/. Wenn alles geklappt hat, sieht man eine Willkommensseite von Apache.
Dann faehrt man den Apache-Server wieder runter:
- Code: Select all
/opt/apache/bin/apachectl stop
Nun faehrt man mit PHP fort (Version 4.3.10):
- Code: Select all
tar -zxvf php-4.3.10.tar.gz
cd php-4.3.10
So, bevor man PHP compiliert, muss man ORACLE_HOME "exportieren". ORACLE_HOME hat man bei der Installation des Oracle-Clients festgelegt, nun muss man die Variable fuer den User root exportieren.
Also:
- Code: Select all
export ORACLE_HOME=/opt/oraclient (bei mir ist es so)
./configure --with-oci8=$ORACLE_HOME \
--with-apxs=/opt/apache/bin/apxs \
--with-iconv \
--with-ldap \
--enable-sigchild
Nach dem Durchlaufen des Configscripts:
- Code: Select all
make
make install
cp php.ini-dist /usr/local/lib/php.ini
So, damit ist PHP auch installiert, nun muss man dem Apache PHP beibringen. Dafuer muss man /opt/apache/conf/httpd.conf editieren.
Man sucht nach folgender Zeile:
- Code: Select all
LoadModule php4_module libexec/libphp4.so
bei meiner Installation war sie schon vorhanden. Aber es fehlten weitere Zeilen.
Man sucht nach
- Code: Select all
IfModule
und fuegt nach einem
- Code: Select all
</IfModule>
folgende Zeilen ein:
- Code: Select all
<IfModule mod_php4.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php-source .phps
</IfModule>
Damit ist es installiert.
Was man noch braucht, ist ein Script, das die Umgebungsvariable setzt. Das habe ich wie mit einem Script mit folgendem Inhalt geloest:
- Code: Select all
#!/bin/bash
ORACLE_HOME=/opt/oracleclient
export ORACLE_HOME
echo "Oracle Home: $ORACLE_HOME"
echo Starting Apache
./apachectl start
Abspeichern als zum Beispiel start_apache.sh, macht es mit
- Code: Select all
chmod +x start_apache.sh
ausfuehrbar und startet das Ding.
So, nun will man natuerlich sehen, ob alles wirklich geklappt hat. Dafuer erstellt man unter /opt/apache/htdocs eine Datei mit folgendem Inhalt:
- Code: Select all
<?php
phpinfo();
?>
Abspeichern als test.php und im Browser aufrufen mit http://rechnername/test.php.
Das, was man sich erhofft zu sehen, sieht wie folgt aus:
fuer LDAP:
- Code: Select all
ldap
LDAP Support enabled
RCS Version $Id: ldap.c,v 1.130.2.10 2004/06/01 21:05:33 iliaa Exp $
Total Links 0/unlimited
API Version 2004
Vendor Name OpenLDAP
Vendor Version 20026
fuer Oracle:
- Code: Select all
oci8
OCI8 Support enabled
Revision $Revision: 1.183.2.16 $
Oracle Version 10.1
Compile-time ORACLE_HOME /opt/oraclient/
Libraries Used no value
Wenn es so aussieht, ist alles cool.
Ich hoffe, dass ich damit denjenigen von Euch geholfen habe, die etwas mehr wollen, als XAMPP bietet.
Gruss Viper'