Firebird Lokal PHP Internet Anbindung geht nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Firebird Lokal PHP Internet Anbindung geht nicht

    Hallo Forum,
    so langsam verzweifele ich meiner Anbindung zur lokalen Firebird Datenbank aus dem Internet.
    Trotz studenlanger Suche, komme ich einfach nicht weiter.
    ich würde gern einfach nur aus dem Internet per php auf meine Datenbank, die auf meinem PC zu Haus liegt
    zugreifen wollten und ein Select ausführen.

    Was ist bereits gemacht habe.

    Meinen Serveranbieter angeschrieben, dass er mir die Interbase Funktion freischaltet.

    unter PHP.info erscheint folgendes

    interbase
    Firebird/InterBase Support dynamic
    Compile-time Client Library Version Firebird API version 20
    Run-time Client Library Version LI-V6.3.4.13130 Firebird 2.0
    Directive Local Value Master Value
    ibase.allow_persistent On On
    ibase.dateformat %Y-%m-%d %Y-%m-%d
    ibase.default_charset no value no value
    ibase.default_db no value no value
    ibase.default_password no value no value
    ibase.default_user no value no value
    ibase.max_links Unlimited Unlimited
    ibase.max_persistent Unlimited Unlimited
    ibase.timeformat %H:%M:%S %H:%M:%S
    ibase.timestampformat %Y-%m-%d %H:%M:%S %Y-%m-%d %H:%M:%S

    In den geparsten ini´s steht auch: /etc/php5/cgi/conf.d/interbase.ini

    Da ich nicht an die Einrichtungsverzeichnisse komme, gehe ich einfach davon aus, dass alles richtig eingerichtet worden ist.

    An die php.ini kommte ich glaube ich auch nicht ran
    Ich bin mir nicht sicher, welche Anforderungen diese haben muss.

    Lokal habe ich windows und Firebird 2.1 laufen. Die Dienste laufen auch und der Port der Fritzbox ist auf den Firebird Port
    weitergeleitet.
    in der firebird.conf ist
    RemoteServiceName = gds_db
    RemoteServicePort = 3050
    freigeschaltet
    in der c/windows/system32/drivers/ services steht:
    gds_db 3050/tcp #Interbase/Firebird
    inder hosts steht meine IP des Servers, wo der PHP Code läuft

    Mache ich nun eine Abfrage mit php
    $host= "xx.xxx.202.136:3050:c:/hfoffice.fdb";
    $username = "sysdba";
    $password = "masterkey";

    $dbh = ibase_connect ($host, $username, $password);
    $stmt = 'SELECT * FROM FERIEN';
    $sth = ibase_query ($dbh, $stmt);
    while ($row = ibase_fetch_object ($sth)) {
    print $row->email . "\n";
    }
    ibase_close ($dbh);

    Erscheint die Fehlermeldung:
    Warning: ibase_connect() [function.ibase-connect]: unavailable database in /var/www/web69/html/firebird.php on line 10
    ...
    ...
    Die Datenbank ist aber da und ich kann auch lokal darauf zugreifen mit FlameRobin

    Kann ich irgendwie herausfinden, ob die API richtig eingerichtet wurde?
    Ist die Referenzierung auf die Datenbank mit IP, Port und Pfad ggf. falsch?
    Tausend Dank für ein Hilfe!!!

  • #2
    Hallo,

    zuerst würde ich mal temporär die Firewall auf dem Heim-PC deaktivieren und testen, ob es dann funktioniert. Dann nochmal in der Fritz-Box nachsehen, ob die Portweiterleitung wirklich auf die richtige IP-Adresse verweist. Es kann ja sein, dass dein PC diesmal per DHCP eine andere zugeteilt bekommen hat als er bei der Einrichtung der Portweiterleitung hatte.

    Wenn das nicht hilft, bitte nochmal melden.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Danke AmicaNoctis,

      für deine Mithilfe!!!

      Ich habe noch einmal alles überprüft. Alle IP Adressen stimmern. Auch die mir zugewiesene Temporäte IP, die ich später durch Dyndns erstetzen möchte.

      Firewall ist aus.

      Ich habe zum Versuch das Passwort geändert.

      Warning: ibase_connect() [function.ibase-connect]: Your user name and password are not defined. Ask your database administrator to set up a Firebird login. in /var/xxx/xxx/xxx/firebird.php on line 10

      Ich müßte daher durchkommen.

      Ändere ich es wieder zurück, auf die richtigen Werte, kommt:

      Warning: ibase_connect() [function.ibase-connect]: unavailable database in /var/www/web69/html/firebird.php on line 10
      Ich habe die Datenbank noch einmal über die Aliases referenziert.

      Auch hier die gleichen Fehlermeldungen mit und ohne richtigem Passwort.
      (s.o)

      Das Problem muss daher wohl lokal hier auf dem PC sein. Gibt es noch weitere Einstellungen für Firebird, die zu beachten sind? Habe den PC nun auch neu gestartet, um sicher zu gehen, dass alle Config Dateien für den Server neu eingelesen werden.

      Keine Änderung auf die Fehlermeldung

      Kommentar


      • #4
        Du hast doch bestimmt auch einen lokalen Apache laufen? Um weitere eventuelle Verbindungsprobleme auszuschließen, könntest du dessen Port auch weiterleiten und von remote versuchen, mal mit CURL deinen lokalen Server zu erreichen.

        Du merkst sicher, dass ich auch nur rumrate. Wenn es also daran nicht liegt, kann ich vermutlich auch nicht helfen. Aber manchmal (vor allem, wenn man schon länger an einem Problem sitzt) übersieht man das offensichtlichste. Daher meine wilden Spekulationen in der Hoffnung, dass du irgendetwas davon übersehen hattest.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Hallo AmicaNotes,

          Apache hatte ich nicht laufen, habe diesen nun aber eingerichtet.

          Ein Zugriff von Außerhalb ist möglich. It works!

          Auch ZoneAlarm habe ich testweise eingerichtet, um zu prüfen, welche IP Anfragen überhaupt eingehen. Der Apache server wurde erst geblockt, ist nun aber zugänglich.

          An der Verbindung scheint es nicht zu liegen?

          Kommentar


          • #6
            Vorschlag: Du gibst mir deine aktuelle IP-Adresse per PM und ich versuche, ob ich drauf komme. Wenn ja, liegt es am Webspace-Provider. Wenn nicht, liegt es an deinem lokalen System. Würde das helfen?
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Also ich komm drauf:

              Code:
              ...
              stdClass Object
              (
                  [FERIEN_ID] => 666
                  [FERIEN_ARTID] => 14
                  [FERIEN_BESCHREIBUNG] => Sommerferien
                  [FERIEN_VON] => 2012-07-23
                  [FERIEN_BIS] => 2012-09-05
              )
              stdClass Object
              (
                  [FERIEN_ID] => 667
                  [FERIEN_ARTID] => 15
                  [FERIEN_BESCHREIBUNG] => Sommerferien
                  [FERIEN_VON] => 2012-06-25
                  [FERIEN_BIS] => 2012-08-04
              )
              ...
              Edit: Ich hab aber den Port nicht mit drin stehen, nimm mal nur
              Code:
              $host= xxx.xxx.xxx.136:c:/hfoffice.fdb;'
              Ich glaub, das war der eigentliche Fehler.
              Zuletzt geändert von AmicaNoctis; 26.11.2010, 13:58.
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                Hallo AmicaNotes,

                noch einmal vielen Dank. Deine Hilfe ist wirklich super.

                Ich bin ja erstaunt, dass du die Daten lesen konntest.

                Lasse ich den Port weg und führe folgenden Quellcode aus:

                <?php
                require("class_fbird.php");

                $host= "xxx.xxx.xxx.136:c:/hfoffice.fdb";
                $username = "sysdba";
                $password = "masterkey";

                $dbh = ibase_connect ($host, $username, $password);
                $stmt = 'SELECT * FROM FERIEN';
                $sth = ibase_query ($dbh, $stmt);
                while ($row = ibase_fetch_object ($sth)) {
                print $row->email . "\n";
                }
                ibase_close ($dbh);
                ?>

                kommt nur noch eine leere Seite. Diese hat im Quellcode 351 Zeilen mit je einem Leerzeichen.

                Dann liegt es wahrscheinlich doch an der falschen Einrichtung bei meinem Provider?

                Danke nochmals!!!

                Kommentar


                • #9
                  War bei mir auch so, deswegen hab ich dann print_r($row) versucht und damit den gesamten Datensatz gesehen. Der Grund: es gibt kein $row->email, also kann auch nichts ausgegeben werden.
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    Hallo AmicaNoctis,

                    es klappt!!!!!!!

                    Danke tausend mal. Die Funktion hatte ich aus einem Forum geholt, welches zig mal zitiert worden ist. Da habe ich nicht drann gedacht, dass die Funktion auch selbst noch falsch sein kann.

                    Habe über 10 Stunden drann gesessen...

                    Melde mich per PM noch mal.

                    Danke danke Danke

                    Kommentar

                    Lädt...
                    X