Knud Schröder: Apache + PHP Konfiguration für Zugriff auf Oracle-DB

Hallo,

ich hab einen bestehenden Webserver mit Apache 2.0 und PHP laufen.
Was muss ich tun, damit dieser Webserver auf einen fremden Server auf eine Oracle Datenbank zugreifen kann?

Sicherlich muss ich in der php.ini das Modul aktivieren, aber nur das schlägt fehl.

Ich hab versucht etwas über google.de herauszufinden, bin aber nicht sicher, was genau zu tun ist.

Muss ich definitiv auf meinem Webserver einen Oracle Client installieren? Wenn ja, wie heisst das Ding genau, da ich im Download-Bereich von Oracle nichts entsprechendes gefunden habe.

Muss ich in der httpd.conf vom Apache noch was eintragen?
Hab was von Oracle-Home und oracle-SID gelesen.

Gibts da vielleicht ne verständliche Doku im Netz?

Wie gesagt, auf meinem Server liegt kein Oracle, nur auf einem "fremden" Server, von dem ich Zugangsdaten für die DB habe.

(Zur Zeit werden manuell Exports nach Excel erzeugt, die ich wiederum manuell in CSV umwandle und dann in meine MySQL-DB importiere.
Bisschen umständlich dachte ich mir, oder?)

Dank und Gruß,

Knud

  1. Hallo Knud,

    Was muss ich tun, damit dieser Webserver auf einen fremden Server auf eine Oracle Datenbank zugreifen kann?

    Oracle-Client (s.u.) auf dem Rechner installieren und die Datei tnsnames.ora einrichten, damit die Datenbank erreichbar ist. Wenn unter Windows: PHP-Modul aktivieren, nachdem Oracle-Client installiert worden ist und es sollte funktionieren. (die Umgebungsvariablen werden vom Installer AFAIK automatisch gesetzt) Unter Linux: PHP mit Oracle kompilieren und vor jedem Apache-Start die Oracle-Umgebungsvariablen korrekt setzen. (ORACLE_HOME, ORACLE_SID, ...)

    Muss ich definitiv auf meinem Webserver einen Oracle Client installieren?

    Ja.

    Wenn ja, wie heisst das Ding genau, da ich im Download-Bereich von Oracle nichts entsprechendes gefunden habe.

    Ich glaube Du musst Dir komplett Oracle runterladen und dann bei der Installation 'Oracle Client' auswählen - kann mich aber auch täuschen.

    Muss ich in der httpd.conf vom Apache noch was eintragen?

    Nein.

    Hab was von Oracle-Home und oracle-SID gelesen.

    Ja, es gibt diverse Umgebungsvariablen für den Oracle-Client. Da ich jedoch nie nur den Standalone-Client installiert habe, kann ich nicht sagen, welche dazuzählen, ich kann es nur definitiv von ORACLE_HOME und ORACLE_SID sagen. (wobei ORACLE_SID nicht unbedingt benötigt wird, die PHP-Funktion OCILogon unterstützt auch das manuelle Eingeben der SID)

    Wie gesagt, auf meinem Server liegt kein Oracle, nur auf einem "fremden" Server, von dem ich Zugangsdaten für die DB habe.

    Das ändert nichts an der Tatsache, dass Du den Oracle-Client brauchst.

    Viele Grüße,
    Christian

  2. Hoy Knud!

    hehe ich hab dieses Prozedere gerad hinter mir *puhhh*. Ich schreib mal in Stichpunkten auf was wichtig ist:

    • Es ist zwingend ein Oracle-Client erforderlich. Du musst den OracleServer 8i von Oracle komplett herunterladen um an den Client (Administrator-Install) zu kommen. Oracle 9i ist inkompatibel mit PHP4.x und 5b. Denk daran, das Oracle nach der 8.06 Version nur noch über X mit Java installiert werden kann. Unter Windoof halt wie üblich.

    • Im Apache2 brauchst du lediglich das PHP-Modul entsprechend einzubinden (kommt hier auf Deine Compilemethode an)

    • In PHP musst du ./configure mit --with-oci8=(ORACLE HOME) konfigurieren. --with-oracle kannst du weglassen.

    • Bei der Oracle-Installation dran denken ... das die ORA-ENV-Variablen <<VORHER<< gesetzt werden müssen. Ich setze diese immer in der /etc/profile. Dann erst die Installroutine starten.

    • Bei der TNSNAMES drauf achten, falls unter Linux, das die Zeilenumbrüche korrekt sind. Anonsten hustet Dir Oracle was und gibt nur Fehler aus ;)

    Falls noch Fragen sind schreib einfach ne E-Mail. Schreibe gerade an einer Doku dafür, aber ist noch nich komplett fertig ;)

    cYa
    Sebastian

    1. Hallo Sebastian,

      Oracle 9i ist inkompatibel mit PHP4.x und 5b.

      Das wäre irgendwie seltsam, denn ich habe hier PHP 4.3.3 mit Oracle 9.2.0.1.0 am Laufen.

      Viele Grüße,
      Christian