phpbar.de logo

Mailinglisten-Archive

[php] Oracle Connect

[php] Oracle Connect

Joerg Behrens behrens_(at)_takenet.de
Fri, 20 Oct 2000 18:08:49 +0200


Moin,moin

Jens-Ulrich Kleinschmidt schrieb:
> 
> Hallo Liste wir haben hier ein Problem,
> wir versuchen auf einem Suse 6.4 Linux Apache und PHP so zum laufen zu
> bringen damit wir eine Oracle 8.0.4 als Datenbank nutzen können die hier in
> einem Novell Netzwerk (5.0) läuft.

Komisch, die gleiche Konfiguration wie bei uns ;) Wenn du einen normalen
SysAdmin in den Wahnsinn treiben willst gibst du ihn die OracleCD und
sagst er soll den Client installieren und den Connect testen. Wenn er
dann nach 2 Tagen mit Traenen in den Augen wieder angeschlichen kommst
sagst du ihm grinsend was er falsch gemacht hat. Moechtest du ihnreif
fuer die Klappsmuehle machen sage ihm noch er solle mal eben schnell die
Sablotron+Expat Module ins PHP komplieren....

Von allen Win-kisten können wir auf
> Oracle über TCP zugreifen. Wir haben hier versucht den Apache neu zu
> kompilieren und Oracle mit einzubinden. Er bemängelte natürlich beim
> Übersetzen den Oracle-Part. Wir haben den Client auf dem Linuxrechner mal
> überprüft und festgestellt das er ein Verbindungstest über Netasst zwar
> erfolgreich absolviert, aber ein einloggen auf der Oracle DB über SQLPLUS
> nicht möglich ist. Den Test können wir auf Oracle mitloggen, das klappt den
> Versuch über tnsping kommt nicht bei Oracle an. Jeder Versuch über sqlplus
> oder tnsping endet mit dem Fehler ORA-12545 als ob er über TNSNAMES.ORA sein
> Ziel nicht identifizieren könnte.

Man braucht einen OracleUSer auf der Kiste. Dieser User hat ein
bestimmtes Environment. Ohne dieses Environment scheitert JEDER Versuch
ueber den Client mit Gott und der Welt kommunizieren zuwollen. Da kann
man Admin, Root oder der liebe Gott persoenlich sein :). Ein Env. kann
so z.B aussehen.

erstelle eine Datei namens oracle unter /usr/local.
export ORACLE_SID=ORCL
export ORACLE_TERM=vt220
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/8.0.5.1
export CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/jdbc/lib
export PATH=$PATH:$ORACLE_HOME/bin
export TMPDIR=/var/tmp
export NLS_LANG=GERMAN_GERMANY.WE8ISO8859P1

Mache 'chmod o+rx'.
Ohne das ruehrt sich nix, nicht mal das tnsping funzt. Diese Datei rufst
du aus ./profile fuer jeden User auf der mal mit Oracle etwas machen
will.

Jetzt kommt der letzte Hacken. Du musst das Env. auch deinem Webserver
bekannt machen und das bevor das PHP Modul initialisiert wird. Schriebe
in die apachectl folgenden Aufruf:

     if test -f /usr/local/oracle; then
       . /usr/local/oracle
     fi

Starte den Webserver neu. Lasse ein phpinfo() ausgeben und schaue ob im
Environment die Variablen auftauchen. Logge dich nun einmal als 'nobody'
ein bzw. unter dem User unter der dein Webserver rennt. Versuche ein
sysplus auszufuehren und euren Oracle DB Server zuconnecten. Wenn das
alles klappt kannst du anfangen etwas mit PHP zumachen. Hattet ihr es
schon eincompiliert ? '--with-oci8=/opt/oracle/product/8.1.6/
--enable-sigchild --with-oracle=/opt/oracle/product/8.1.6/ '
Ich persoenlich hatte das mit der 8.1.6er nicht hinbekommen und hab die
8.0.5.1 genommen.. Die Sachen musst du deinen Gegebenheiten anpassen.

<geloescht>

All diese Infos haettest du im Archiv dieser ML finden koennen
www.php-center.de . Auch sehr gut die FAW der NG unter
www.koehntopp.de/php . Es gibt dort einen Oracleabschnitt.


Gruss 
Joerg Behrens

ps: ich schreibe die Mail aus einer wunderschoenen Zelle mit so Polstern
an den Waenden. 3 mal am Tag kommen die netten Herren in weiss. Warum
ich diese Jacke tragen muss verstehe ich nicht den mit den Armen auf dem
Ruecken leasst sich so schlecht schreiben.... Man sagt ich mache
Fortschritte...

-- 
Key fingerprint =  92 7D E0 A6 CF AE EC 32  14 28 EF 0D 57 2A 88 5B
----------------------------------------------------------------------
TakeNet GmbH					Mobil: 0171/60 57 963			
D-97080 Wuerzburg				Tel: +49 931 903-2243				
Alfred-Nobel-Straße 20				Fax: +49 931 903-3025


php::bar PHP Wiki   -   Listenarchive