none
Verbindungsprobleme zu externen MSSQL Server via PHP RRS feed

  • Frage

  • Hallo Leute,

    ich versuche jetzt schon seit geraumer Zeit, eine Verbindung zu meinem MSSQL von einem externen Webhoster aus aufzubauen. Der Webhost verfügt über die PHP Extension für MSSQL und eigentlich sollte ich in der Lage sein, via mssql_connect zum Server zu verbinden.

    Am MSSQL Server ist TCP/IP eingeschalten und vermutlich auch richtig konfiguriert. Ich habe auch diverse Versionen vom MSSQL Server versucht ( 2005, 2008, 2014 ) und 2014 hat auch noch Logs ausgeworfen. Die Verbindung kam erst einmal an, aber lieferte mir den Fehler, dass ein Verbindungspacket fehlerhaft ist und somit ist kein Login möglich.Es gab einige Artikel von MS dazu und dort sollte man die MaxTokenSize in der Registry setzen - Hab ich gemacht, hat leider nichts gebracht. Den genauen Log kann ich gerade nicht mehr wiedergeben, da derzeit 2005 Express installiert ist und mir leider keine Logs bietet :(

    Jedenfalls ist der Webhoster Strato und auch an dieser Stelle warte ich noch auf eine Antwort vom Support - Eventuell ist das Verbinden zu externen Servern prinzipiell limitiert.

    Wenn ich allerdings mit dem SQL Management Studio von einem externen PC versuche auf den MSSQL Server zu verbinden, dann funktioniert das Fehlerfrei.

    Die eigentliche Frage, die sich mir stellt ist jetzt eigentlich nur, ob es am Webhoster liegen muss, da es ja via Management Studio möglich ist, oder ob es da eventuell noch andere Dinge beachten muss, wenn ich via mssql_connect und PHP zu meinem MSSQL Server eine Verbindung aufbauen möchte.

    MFG Synaptic

    Samstag, 2. September 2017 17:26

Antworten

  • Es hat sich erledigt.

    Ich verfluche diese Linuxsysteme. Habe die Verbindung jetzt erfolgreich aufgebaut.

    Für alle, denen das selbe Problem auf einem Hoster der FreeTDS benutzt begegnet folgendes:

    Ihr müsst die FREETDSCONF manuell umschreiben, und dann via putenv laden, da ihr in der Regel nicht an die originale Datei heran kommt.

    Bevor ihr also in PHP via mssql_connect(IP:PORT, USER, PASS) verbindet, gehört so etwas in euer PHP Script:

    putenv("TDSVER=80");
    putenv("FREETDSCONF=PFADZUEUREREIGENENFREETDSCONF/freetds.conf");

    und in die freetds.conf schreibt ihr folgendes:

    [global]
    tds version = 7.0

    Mehr wird nicht benötigt.

    Trotzdem danke für die Hilfe.

    Samstag, 2. September 2017 18:54

Alle Antworten

  • Hallo Synaptic,

    PHP-seitig:
    Findet sich beim Aufruf der phpinfo () Ausgabe ein Abschnitt "sqlsvr"?

    Sonst ist die Installation/Konfiguration nicht in Ordnung.

    MSSQL-Server seitig:
    Wurde unter TCP/IP Port 1433 angegeben? Bei den Express Versionen ist das nach meiner Erinnerung mit einer Installation erst mal nicht so. Du findest das im SQL Server Configuration Manager, SQL Server Network Configuration, Protocols for MSSQL Server, TCP/IP, IP Adresses

    Schönen Abend.


    • Bearbeitet Joerg_x Samstag, 2. September 2017 18:37
    Samstag, 2. September 2017 18:36
  • Es hat sich erledigt.

    Ich verfluche diese Linuxsysteme. Habe die Verbindung jetzt erfolgreich aufgebaut.

    Für alle, denen das selbe Problem auf einem Hoster der FreeTDS benutzt begegnet folgendes:

    Ihr müsst die FREETDSCONF manuell umschreiben, und dann via putenv laden, da ihr in der Regel nicht an die originale Datei heran kommt.

    Bevor ihr also in PHP via mssql_connect(IP:PORT, USER, PASS) verbindet, gehört so etwas in euer PHP Script:

    putenv("TDSVER=80");
    putenv("FREETDSCONF=PFADZUEUREREIGENENFREETDSCONF/freetds.conf");

    und in die freetds.conf schreibt ihr folgendes:

    [global]
    tds version = 7.0

    Mehr wird nicht benötigt.

    Trotzdem danke für die Hilfe.

    Samstag, 2. September 2017 18:54