Benutzer mit den meisten Antworten
Microsoft Driver for PHP - Modul nicht gefunden

Frage
-
Hallo Experten,
System:
Installation in einer VM
Windows 2008 Server R2 x64
Webserver IIS 7
PHP 5.4.14 installiert unter PHP5
Microsoft Driver 3.0 for PHP for SQL Server - http://www.microsoft.com/en-us/download/details.aspx?id=20098
SSMS 2008 Express R2II7 funktioniert. PHP Seiten lassen sich aufrufen. Anmeldung zur Datenbank mit SSMS funktiniert.
Anmeldung zur Datenbank aus PHP schlägt fehl (SQL Server Treiber wurden unter PHP mit dem PHP Manager eingebunden, und werden als aktiviert angezeigt).
Einziger Hinweis in der php-5.4.14_errors.log
PHP Startup: Unable to load dynamic library 'C:\PHP5\ext\php_pdo_sqlsrv_54_nts.dll' - Das angegebene Modul wurde nicht gefunden.
in Unknown on line 0
PHP Startup: Unable to load dynamic library 'C:\PHP5\ext\php_sqlsrv_54_nts.dll' - Das angegebene Modul wurde nicht gefunden.
in Unknown on line 0Habe vom vielen Suchen schon kleine Augen, und bin deshalb für jeden noch so kleinen Hinweis zur Lösung oder zu einer Checkliste, warum die DLL nicht gefunden werden, sehr dankbar. Bitte eine kurze Info, sollten weitere Informationen benötigt werden. Einen Auszug aus der php.ini im Anhang unter (1).
Jörg
(1)
[MSSQL]
; Allow or prevent persistent links.
mssql.allow_persistent = On; Maximum number of persistent links. -1 means no limit.
mssql.max_persistent = -1; Maximum number of links (persistent+non persistent). -1 means no limit.
mssql.max_links = -1; Minimum error severity to display.
mssql.min_error_severity = 10; Minimum message severity to display.
mssql.min_message_severity = 10; Compatibility mode with old versions of PHP 3.0.
mssql.compatability_mode = Off; Connect timeout
;mssql.connect_timeout = 5; Query timeout
;mssql.timeout = 60; Valid range 0 - 2147483647. Default = 4096.
;mssql.textlimit = 4096; Valid range 0 - 2147483647. Default = 4096.
;mssql.textsize = 4096; Limits the number of records in each batch. 0 = all records in one batch.
;mssql.batchsize = 0; Specify how datetime and datetim4 columns are returned
; On => Returns data converted to SQL server settings
; Off => Returns values as YYYY-MM-DD hh:mm:ss
;mssql.datetimeconvert = On; Use NT authentication when connecting to the server
mssql.secure_connection = Off; Specify max number of processes. -1 = library default
; msdlib defaults to 25
; FreeTDS defaults to 4096
;mssql.max_procs = -1; Specify client character set.
; If empty or not set the client charset from freetds.conf is used
; This is only used when compiled with FreeTDS
;mssql.charset = "ISO-8859-1"...
[PHP_PDO_SQLSRV_54_NTS]
extension=php_pdo_sqlsrv_54_nts.dll
[PHP_SQLSRV_54_NTS]
extension=php_sqlsrv_54_nts.dll
Antworten
-
Hallo,
die Treiber-Dateien müssen im extension_dir liegen, bei Dir müsste das "C:\PHP5\Ext" sein - ggf. den Eintrag in extension_dir anpassen.
Die Treiber müssen als extension freigegeben sein:
;extension=php_zip.dll extension=php_sqlsrv_54_nts.dll extension=php_pdo_sqlsrv_54_nts.dll ;;;;;;;;;;;;;;;;;;; ; Module Settings ; ;;;;;;;;;;;;;;;;;;;
Wenn die Einstellugnen wie in http://www.php.net/manual/de/install.windows.iis7.php gemacht sind,
sollte es laufen - zumindest bei mir tut es das unter Windows 7 32-bit für eine frische PHP Installation.Gruß Elmar
- Als Antwort markiert Joerg_x Sonntag, 21. April 2013 13:38
-
Hallo Jörg,
wenn die DLLs fehlen, so musst Du das Microsoft Visual C++ 2010 SP1 Redistributable Package (x86)
installieren - bei mir waren die schon drauf, da Entwicklermaschine ;)Ich habe mit einem PHP Skript getestet, das PDO verwendet und auf eine SQL Server 2008 R2 Instanz zugreift.
Ausgenommen der oben angegebenen Änderungen habe ich nichts verändert,
phpinfo() liefert bei mir die gleichen Angaben.Gruß Elmar
- Bearbeitet Elmar BoyeEditor Sonntag, 21. April 2013 05:13
- Als Antwort markiert Joerg_x Sonntag, 21. April 2013 13:38
Alle Antworten
-
Hallo,
die Treiber-Dateien müssen im extension_dir liegen, bei Dir müsste das "C:\PHP5\Ext" sein - ggf. den Eintrag in extension_dir anpassen.
Die Treiber müssen als extension freigegeben sein:
;extension=php_zip.dll extension=php_sqlsrv_54_nts.dll extension=php_pdo_sqlsrv_54_nts.dll ;;;;;;;;;;;;;;;;;;; ; Module Settings ; ;;;;;;;;;;;;;;;;;;;
Wenn die Einstellugnen wie in http://www.php.net/manual/de/install.windows.iis7.php gemacht sind,
sollte es laufen - zumindest bei mir tut es das unter Windows 7 32-bit für eine frische PHP Installation.Gruß Elmar
- Als Antwort markiert Joerg_x Sonntag, 21. April 2013 13:38
-
Guten Abend, Elmar,
vielen Dank für den Hinweis.
Die Installation habe ich bereits nach der Seite durchgeführt; allerdings bin ich nun dem Hinweis nachgegangen, das PHP-Script aus der Konsole zu starten.
Dabei habe ich die Fehlermedlungen erhalten, dass die DLL-Dateien:
msvcp100.dll
msvcr100.dllfehlen. Merkwürdig; alles eine frische Installtion.
Jetzt sehen die Errorlogs anders aus. Die PHP.info zeigt nun:
Das scheint mir in Ordnung, und die DLL werden nun offensichtlich gefunden. Könntest Du das einmal gegenprüfen bzw. mir anzeigen, welche Abschnitte bei Diranzeigen, dass die Module ordnungsgemäß eingebunden worden sind.
Danke schon mal.
Jörg
-
Hallo Jörg,
wenn die DLLs fehlen, so musst Du das Microsoft Visual C++ 2010 SP1 Redistributable Package (x86)
installieren - bei mir waren die schon drauf, da Entwicklermaschine ;)Ich habe mit einem PHP Skript getestet, das PDO verwendet und auf eine SQL Server 2008 R2 Instanz zugreift.
Ausgenommen der oben angegebenen Änderungen habe ich nichts verändert,
phpinfo() liefert bei mir die gleichen Angaben.Gruß Elmar
- Bearbeitet Elmar BoyeEditor Sonntag, 21. April 2013 05:13
- Als Antwort markiert Joerg_x Sonntag, 21. April 2013 13:38
-
Hallo Elmar,
hier wird es auch erwähnt:
http://www.iishacks.com/2011/02/14/how-to-install-php-5-3-fastcgi-on-windows-2008-iis-7/
Zitat:
"For the VC9 versions you will need the Microsoft 2008 C++ Runtime (VC
x86, VC x64, even though you are installing 32-bit PHP, install the
correct version of VC++ for the version of Windows that you have)."Schon ziemlich versteckt, dieser Hinweis.
Schönen Tag.
-