SQL Server Erweiterung

Alles, was den Apache betrifft, kann hier besprochen werden.

SQL Server Erweiterung

Postby Dani Düsentrieb » 17. March 2014 14:13

Hallo Zusammen,

ich möchte mit PHP Daten von einem SQL Server abrufen. Dazu habe ich die Schritte wie Sie hier beschrieben sind durchgearbeitet. http://robsphp.blogspot.de/2012/09/how-to-install-microsofts-sql-server.html
Ich habe mich an alle gehalten . Installiert ist auf einem Windows Server 2008 R2 ein Apache Server 32bit Version 2.4.7 mit PHP Version 5.4.26. Die Extenion Build ist: API20100525,TS,VC9. Die Datei php_sqlsrv_54_ts.dll liegt im Verzeichnis C:\Program Files\webserver\php\ext, in der php.ini ist die Datei entsprechend (extension=php_pdo_sqlsrv_54_ts.dll) hinterlegt. Den SQL Server Native Client (SNAC) habe ich auch heruntergeladen und installiert. Bei start vom Apache stehen folgende Meldungen im Error Log des Server:

Code: Select all
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\\Program Files\\webserver\\php\\ext\\php_pdo_sqlsrv_54_ts.dll' - Das angegebene Modul wurde nicht gefunden.\r\n in Unknown on line 0
[Mon Mar 17 14:00:05.019555 2014] [mpm_winnt:notice] [pid 11800:tid 356] AH00455: Apache/2.4.7 (Win32) PHP/5.4.26 configured -- resuming normal operations
[Mon Mar 17 14:00:05.019555 2014] [mpm_winnt:notice] [pid 11800:tid 356] AH00456: Apache Lounge VC11 Server built: Nov 21 2013 20:13:01
[Mon Mar 17 14:00:05.019555 2014] [core:notice] [pid 11800:tid 356] AH00094: Command line: 'C:\\Program Files\\webserver\\apache\\bin\\httpd.exe -d C:/Program Files/webserver/apache -f c:\\webserver_conf\\httpd.conf'
[Mon Mar 17 14:00:05.019555 2014] [mpm_winnt:notice] [pid 11800:tid 356] AH00418: Parent: Created child process 11848
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\\Program Files\\webserver\\php\\ext\\php_pdo_sqlsrv_54_ts.dll' - Das angegebene Modul wurde nicht gefunden.\r\n in Unknown on line 0
[Mon Mar 17 14:00:05.410116 2014] [mpm_winnt:notice] [pid 11848:tid 288] AH00354: Child: Starting 64 worker threads.


"Das angegebene Modul wurde nicht gefunden" würde für mich bedeuten das der Server die dll nicht findet. Diese ist aber defintiv im richtigen Verzeichnis und auch richtig benannt. Die Datei php_pdo_mysql.dll ist im gleichen Verzeichnis und wird ohne Probleme geladen. Nun kanns nur noch an der Apache Version liegen das diese VC11 ist und PHP VC9, kann das sein? Es kann aber auch noch sein das PHP nicht auf die DLL des SQL Server Native Clients zugreifen kann. Diese liegt im Verzeichnis c:\Windows\system32. Ich habe diese Datei auch schon mit ins PHP Verzeichns gelegt sowie ins bin - Verzeichnis vom Apache. Alles leider ohne Erfolg!
Kann mir noch jemand ein paar Tips geben?

Nachtrag: Es muß an meiner Konfig liegen dann ic habe gerade auf ner Virtuellen Maschine gerade mal nen Xampp installiert und dort dann das Modul eingebaut und das hat beim ersten Mal geklappt. Ich hab keine Ahnung wo in meiner Konfig der Fehler liegen soll!
Dani Düsentrieb
 
Posts: 8
Joined: 15. April 2009 07:52

Re: SQL Server Erweiterung

Postby Nobbie » 17. March 2014 17:14

Wenn eine *.exe oder *.dll trotz offensichtlichem Vorhandensein nicht geladen werden kann, fehlt auf dem Rechner in aller Regel die entsprechende C-Runtime Library (auch Redistribution Library genannt).

Die heißen je nach Release msvcp50.dll oder msvcp60.dll oder auch msvcr80.dll usw. Welche genau fehlt, hängt davon ab, mit welchem Microsoft C Compiler die *.dll kompiliert wurde.

Mit "Redistribution of the shared C runtime" findet man in Google alle diese Bibliotheken, oder auch mit "c runtime library download", teilweise direkt bei Microsoft, machmal auch auf chip.de. WIchtig ist, dass Du genau die richtige findest und installierst (meistens wird die in das System32 Verzeichnis eingestellt).
Nobbie
 
Posts: 8772
Joined: 09. March 2008 13:04

Re: SQL Server Erweiterung

Postby Dani Düsentrieb » 17. March 2014 19:59

Alles klar vielen Dank für den Hinweis. Da der Server auch ein virtuelles Testsystem ist kann ich dort erst Mal in Ruhe testen was geht und dann auf dem Livesystem die entprechend Runtinme installieren.
Dani Düsentrieb
 
Posts: 8
Joined: 15. April 2009 07:52

Re: SQL Server Erweiterung

Postby Dani Düsentrieb » 18. March 2014 10:45

So nachdem ich auf meinem virtuellen System die Datei vcredist_x86.exe installiert hatte funktionierte nun die Erweiterung. Also habe ich auf meinem Livesystem, da das ein 64bit System ist, die Datei vcredist_x64.exe installiert und siehe da die Erweiterung funktioniert NICHT. Erst nachdem ich auch auf dem 64Bit System die 32bit Dateien installiert hatte funktioniert die Erweiterung nun auch.

Vielen Dank für die Infos!
Dani Düsentrieb
 
Posts: 8
Joined: 15. April 2009 07:52

Re: SQL Server Erweiterung

Postby Nobbie » 18. March 2014 14:05

Dani Düsentrieb wrote:Also habe ich auf meinem Livesystem, da das ein 64bit System ist, die Datei vcredist_x64.exe installiert und siehe da die Erweiterung funktioniert NICHT. Erst nachdem ich auch auf dem 64Bit System die 32bit Dateien installiert hatte funktioniert die Erweiterung nun auch.


Das ist aber klar, denn nicht das Betriebssystem (32 oder 64 Bit) entscheidet darüber, welche vcredist benötigt wird, sondern (wie oben schon ausgeführt) ausschließlich der verwendete C-Compiler und das ist in diesem Fall offensichtlich eine 32bit Version.
Nobbie
 
Posts: 8772
Joined: 09. March 2008 13:04


Return to Apache

Who is online

Users browsing this forum: No registered users and 2 guests