PHP警告:PHP启动:无法加载动态库'C:\Users\Public\xampp\php\ext\php_sqlsrv_56_ts.dll'

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\Users\\Public\\xampp\\php\\ext\\php_sqlsrv_56_ts.dll'

今天我收到了一个新的开发和一个新的生产服务器。我已经在 C:\Users\Public 目录中的开发服务器上安装了 XAMPP。我已经安装了 Apache 服务器并对其进行了更改,以便它可以作为不同的、权限较低的用户执行。之后,我克隆了连接到 AD 和 MS SQL 服务器的 webapp 项目。

请记住,所有这些都已经在我以前的开发服务器上运行了。

现在,我将 php.ini 文件从我的 php 目录复制到新服务器的 php 目录中。

执行服务器时,我在 apache 错误日志中收到以下错误:

PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Users\Public\xampp\php\ext\php_sqlsrv_56_ts.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Users\Public\xampp\php\ext\php_pdo_sqlsrv_56_ts.dll' - The specified module could not be found.\r\n in Unknown on line 0

当尝试使用 sqlsrv_connect 时,它在旧的开发服务器上也能完美运行,但出现错误:

Fatal error: Uncaught Error: Call to undefined function sqlsrv_connect() in C:\Users\Public\xampp\htdocs\sql_functions.php:18

输入后,我试图复制整个 ext 目录。这是一个严重的错误:

PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Users\Public\xampp\php\ext\php_bz2.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Users\Public\xampp\php\ext\php_curl.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Users\Public\xampp\php\ext\php_fileinfo.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Users\Public\xampp\php\ext\php_gd2.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Users\Public\xampp\php\ext\php_gettext.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Users\Public\xampp\php\ext\php_ldap.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Users\Public\xampp\php\ext\php_mbstring.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Users\Public\xampp\php\ext\php_exif.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Users\Public\xampp\php\ext\php_mysql.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Users\Public\xampp\php\ext\php_mysqli.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Users\Public\xampp\php\ext\php_pdo_sqlite.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Users\Public\xampp\php\ext\php_sqlsrv_56_ts.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Users\Public\xampp\php\ext\php_pdo_sqlsrv_56_ts.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Users\Public\xampp\php\ext\php_openssl.dll' - The specified module could not be found.\r\n in Unknown on line 0

我很确定我使用的是不同的 Apache 版本。

新服务器:2.4.26

旧服务器:Apache/2.4.23 (Win32) OpenSSL/1.0.2h PHP/5.6.28

编辑:我刚刚比较了两个 httpd.conf 文件。除了路径和关于一个<IfModule headers_module>的大约7行之外,没有任何区别。

我做到了!

我从 here 下载了最新版本。

然后我简单地编辑 php.ini 以指向最新的文件,在这种情况下是:

extension=php_sqlsrv_71_ts.dll
extension=php_pdo_sqlsrv_71_ts.dll

尝试 x64 或 x86 版本。这个方法我解决了