【发布时间】:2014-03-20 10:35:24
【问题描述】:
这是我的设置
- Windows Server 2008 R2 64 位
- Apache 2.4.4 64 位
- PHP 5.4.15 32 位(64 位仍处于试验阶段),线程安全,VC9 编译器
- Microsoft SQL Server 2012 Native Client 64 位
- Microsoft Visual C++ 2010 x86 和 x64
我需要加载 Microsoft 的 SQLSRV 库。
我已将“extension=php_sqlsrv_54_ts.dll”添加到 php.ini 并将“php_sqlsrv_54_ts.dll”复制到安装 PHP 的 ext 文件夹中。
当我重新启动 apache 时,我的 php 错误日志中出现以下错误,并且 SQLSRV 未在 phpinfo 中列出。
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php5\ext\php_sqlsrv_54_ts.dll' - %1 is not a valid Win32 application.
我哪里错了?
编辑 出于测试目的,我刚刚安装了 PHP 5.5.10 64 位和 VC 2012,但错误仍然相同:(
【问题讨论】:
-
这里只是猜测,但我不确定 32 位应用程序 (PHP) 是否可以加载 x64 dll (SQL server)。
-
感谢您的评论。 php_sqlsrv_54_ts.dll 不是 32 位的吗?我从microsoft.com/en-gb/download/details.aspx?id=20098 下载的,看不到任何关于它是 32 位还是 64 位的参考。
-
不知道为什么投反对票。知道为什么会很有用,然后我可以提供您需要的信息。
-
对一个问题投反对票是很苛刻的,如果没有这些问题,这个网站将毫无用处。但是,这可能是因为使用 Apache 模块的 32 位 TS PHP 根本不适用于 64 位 Apache。您必须将 mod_fcgid 与 32 位 PHP NTS 或 32 位 Apache 一起使用,而不是 64 位。 (我刚刚将您的问题重新投票为 0!)
-
谢谢罗伯。真正有用的评论,当然听起来很合乎逻辑。我希望试一试,尽管我对 UniServer Zero 印象深刻。它让我快速启动并运行:)
标签: php sql-server apache sqlsrv