2017-10-11 40 views
0

我的PHP是在Windows 2012服務器上的路徑c:\ php 我將c:\ php添加到PATH變量。PHP沒有加載擴展,即使它們存在

我下加入php_pdo_sqlsrv_56_ts.dll:\ PHP \ ext目錄

我添加以下用C線:\ PHP \ php.ini文件:

extension_dir = "c:\php\ext" 
extension=php_pdo_sqlsrv_56_ts.dll 

但下面的命令給我警告的是,儘管它的存在有它無法找到該模塊:

php --ini 
PHP Warning: PHP Startup: Unable to load dynamic library 'c:\php\ext\php_sqlsrv_56_ts.dll' - The specified module could not be found. in Unknown on line 0 

PHP Warning: PHP Startup: Unable to load dynamic library 'c:\php\ext\php_pdo_sqlsrv_56_ts.dll' - The specified module could not be found. in Unknown on line 0 

Configuration File (php.ini) Path: C:\Windows 

Loaded Configuration File:   C:\php\php.ini 
+0

您使用的是哪個版本的PHP? – apokryfos

+0

php 5.6 @apokryfos – Ashutosh

回答

2

,這可能是一個Windows的問題,其中一個DLL被報告爲「不存在」,如果本身需要anoth呃未找到的DLL。因此,例如:

php_someextusingssl.dll - the file exists 

但php_someextusingssl.dll需要ssleay32.dll,和不是在運行時發現的。所以你得到的錯誤是「無法加載php_someextusingssl.dll:找不到文件」。找不到的文件不是php_someextusingssl.dll,而是ssleay32.dll。

你如何解決這個問題:掌握一些實用工具,如DEPENDS.EXE,並打開行爲不當的擴展。它應該顯示擴展名以及它所依賴的所有DLL。 IF我說得對,那麼一個或多個會被標記爲「缺失」。這些是您需要提供的DLL。

UPDATE 1:有可能丟失的文件在Microsoft SQL Server Driver page列出的文件中。

UPDATE 2:我已經下載了Microsoft驅動程序的副本。您的依賴於ODBC32.DLL,MSVCP110.DLL和MSVCR110.DLL。後兩者是用於x86的Microsoft Visual C++ 2010 SP1可再發行組件的一部分,您可以在其中找到here。第一個是根據Update 1列出的ODBC32驅動程序的一部分。