MAC: PHP connect auf Microsoft Server 2012 Express Edition

Heute hatte ich einige Probleme, mittels PHP auf einen Microsoft SQL-Server zu connecten (über den mssql_connect-Befehl).

Als Voraussetzung benötigt Ihr auf jeden Fall ein installiertes FreeTDS auf Eurem Mac und ein PHP, welches mit der MSSQL_Extension compiliert wurde (w. meinen Artikel hier).

Normalerweise müsste man ja über ein mssql_connect($hostname, $benutzername, $passwort) auf den Server gelangen. Vorher gibt es jedoch einige Stolpersteine:

Authentifizierungs-Modus am Server

Bitte prüft auf jeden Fall, ob Euer Server nicht nur über die Windows-Authentifizierung, sondern auch über eine SQL-Authentifizierung erreichbar ist. Die mssql_connect()-Funktion weiß ja nichts über Euren Windows-Benutzer 🙂

Diese Einstellungen findet Ihr im „SQL Management Studio“.

Protokolle und Ports auf dem Server

Im „SQL Server Konfigurations Manager“ solltet Ihr unter „SQL-Server Netzwerkkonfiguration“ prüfen, ob Named Pipes und TCP/IP aktiviert sind. In unserem Beispiel nutzen wir TCP/IP.

Des weiteren solltet Ihr prüfen, ob keine dynamischen Ports aktiviert sind. Hierzu einen Rechtsklick auf TCP/IP machen -> Eigenschaften -> IP-Adressen. Dort bei jedem Eintrag bei „Dynamische Ports“ und „Port“ den Port 1433 eintragen.

Danach den Server-Dienst unter „SQL-Server Dienste“ -> „SQL Server (SQLEXPRESS)“ neu starten.

Windows-Firewall

Natürlich solltet Ihr die Windows-Firewall aktiviert haben. Diese sperrt jedoch die Verbindung zum MSSQL-Server.

Fügt einfach eine Regel hinzu vom Typ „Port“, und lasst Verbindungen vom TCP-Port 1433 zu.

FreeTDS Konfiguration

Nun müssen wir den Server einen Alias anlegen, mit dem wir ihn mittels mssql_connect() erreichen. Hierzu müsst Ihr die Datei /usr/local/freetds/conf/freetds/freetds.conf editieren und einen Alias hinzufügen wie z.B.:

[win81vm]
host = 10.211.55.3
port = 1433
tds version = 7.0
instance = SQLExpress

Hier wird definiert, dass der Server, den wir später mit „win81vm“ erreichen möchten, auf der IP 10.211.55.3 läuft. Der Port ist 1433, TDS Version 7.0 ist gültig für alle neueren Microsoft SQL Server.

Danach klappt es, mittels mssql_connect('win81vm', 'sa', 'passwort') auf den Server zu connecten.

Über Fasty

iOS- und PHP-Entwickler My Google Profile+
Dieser Beitrag wurde unter OS X, PHP veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.