Kurios: MSSQL-Erweiterung in PHP

Im HOWTO steht auch

Für die Erweiterung müssen die MS SQL Client Tools auf dem System installiert sein auf dem PHP installiert ist. Die Client Tools können entweder von der MS SQL Server-CD oder durch Kopieren von ntwdblib.dll von \winnt\system32 auf dem Server nach \winnt\system32 auf dem PHP-Rechner installiert werden. Das Kopieren von ntwdblib.dll unterstützt nur den Zugriff. Für die Konfiguration des Clients ist eine Installation aller Tools nötig.

und

Damit diese Funktionen zur Verfügung stehen, müssen Sie PHP mit --with-mssql[=DIR] übersetzen, wobei DIR der Präfix der FreeTDS-Installation ist. Und FreeTDS muss mit --enable-msdblib übersetzt werden.

Mfg Akkie
 
Der Server ist für mehrere Instanzen ausgelegt und es sind auch alle Clienttools installiert.
Nur, was ich nicht so recht verstehe, ist:

Damit diese Funktionen zur Verfügung stehen, müssen Sie PHP mit --with-mssql[=DIR] übersetzen, wobei DIR der Präfix der FreeTDS-Installation ist. Und FreeTDS muss mit --enable-msdblib übersetzt werden.

Wie muss ich wo PHP übersetzen? Was will ich mit FreeTDS? Das ist doch für Linux?
 
Das ganze Zeug mit dem Übersetzen gilt nur für Linux. Auf Windows hast du stattdessen die DLLs die du einbinden kannst. Die stehen unter Linux eben nicht zur Verfügung!
 
Auf Windows hast du stattdessen die DLLs die du einbinden kannst.

Kannst Du das bitte näher erläutern?

Muss ich irgendwelche DLLs in bestimmte Verzeichnisse extra reinkopieren? Wenn ja, welche und wohin?
 
Zuletzt bearbeitet:
Hi

Also berichtige mich wenn ich falsch liege. Aber ich glaube du hast da unrecht wenn du sagst du musst php nicht mit dieser Option kompilieren.

Die php Binärfiles die du zum runterladen bekommst sind auch aus dem Source kompiliert genau wie unter Linux. Dort musst du genauso diese Optionen freischalten.

The third step is configuring. To view the list of the available configuration options type cscript /nologo configure.js --help. After choosing the options that you will enable/disable, type something like: cscript /nologo configure.js --disable-foo --enable-fun-ext. Using --enable-foo=shared will attempt to build the 'foo' extension as a shared, dynamically loadable module.

Quelle: http://www.php.net/manual/de/install.windows.building.php

Was jetzt genau in den fertigen Binaries einkompiliert ist kann ich dir nicht sagen.
Wahrscheinlich wird es so sein das für die ddl`s im ext Vezeichnis liegen auch Support einkompiliert ist.

Mfg Akkie
 
Ich hab's! :)

Ich hatte auf dem Webserver die SQL Server-Clientkonfiguration geöffnet. Hier kam die Meldung, dass die Datei msvcr71.dll nicht vorhanden ist. Die Suche nach der Datei hat ergeben, dass diese unter C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 liegt. Von dort habe ich dann diese Datei in das PHP-root kopiert, den IIS neugestartet und es ging!
 
Der Thread ist zwar schon ein paar Jährchen alt, zwar kann ich mich msycho nur anschließen, bei mir war's aber ein bisschen anders.

Meine Konstellation, ein Windows 2008 Server (x86) mit MSSQL 2008 R2 Server und PHP über den Web Platform Installer installiert, es läuft als Fast CGI Modul.

Wer trotz korrekt konfigurierter php.ini und vorhandener php_mssql.dll nicht mit dem SQL Server verbinden kann, da die MSSQL Extension nicht geladen wird / ist sollte mal folgendes ausprobieren:

Shell öffnen und "php -m" ausführen, wenn nun ein Dialog erscheint in dem steht dass die "MSVCR71.dll" fehlt dann diese hier downloaden oder aus dem Anhang von diesem Post entnehmen und in das Verzeichnis "C:\Windows\System32" kopieren.

Vorsicht, ich bin mir nicht sicher ob die x86 dll unter x64 läuft und habe daher eine x64 dll im Anhang dazu gehängt. Diese unter dem x64 System in das "C:\Windows\SysWOW64" Verzeichnis kopieren.

Sichergehen dass die MSSQL Extension existiert, "php -m" sollte keine Fehlermeldungen mehr ausgeben, falls doch dann mal nachsehen ob die Module installiert sind "Start" -> "Systemsteuerung" -> "Programme und Funktionen" -> "PHP 5.x.x" -> "Ändern" (oben) -> PHP Setup Fenster "Weiter" -> "Ändern" -> "IIS Fast CGI" -> "Extensions" erweitern -> "MSSQL" auswählen -> "PDO" erweitern -> "Microsoft SQL Server" auswählen -> "weiter" -> "Ändern" und Installation abschließen.

Zudem ist mir aufgefallen das trotz Setup Installation einige Extensions wie z.B. die "php_mime_magic" gefehlt haben, daher habe ich einige Extensions gezipped hinterlegt. Auch hier aus einem x86 und x64 System, da ich mir auch hier nicht sicher bin ob es von der Installation unter verschiedenen Systemen Unterschiede gibt. Bei einem x64 System wird zwar in das "Programme (x86)" Verzeichnis installiert, sollten also x86 bins sein aber man weiß ja nie.

Ich hoffe Euch hilft dieser Post und erspare Euch etwas Zeit an Arbeit und Nerven.

Grüße aus München :)
 

Anhänge

  • MSVCR71.zip
    176,9 KB · Aufrufe: 14
  • php5.2.13_ext_x64.zip
    2,7 MB · Aufrufe: 19
  • php5.2.14_ext_x86.zip
    2,7 MB · Aufrufe: 19
  • msvcr71_x64.zip
    176,9 KB · Aufrufe: 19
Zurück