2017-10-11 39 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驱动程序的一部分。