web-dev-qa-db-ja.com

SQLSRV PHP for SQL Server forは有効なWin32アプリケーションではありません

これが私のセットアップです

  • Windows Server 2008 R2 64ビット
  • Apache 2.4.4 64ビット
  • PHP 5.4.15 32ビット(64ビットはまだ実験段階です)、スレッドセーフ、VC9コンパイラ
  • Microsoft SQL Server 2012ネイティブクライアント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をインストールしましたが、エラーは同じままです:(

15
iltdev

それが役立つかどうかはわかりませんが、Windows 7 64ビットシステムですべての32ビットを使用しました

これが私が使用したもので、SQL Serverを使用できます

httpd-2.4.6-win32-VC9 //Apache 2.4
php-5.4.9-Win32-VC9-x86 //php5

私の場合\php\フォルダ

  • php5Apache2_4.dll

内部\php\ext\ 私が持っています

  • php_pdo_sqlsrv_54_nts.dll
  • php_pdo_sqlsrv_54_ts.dll

これをphp.iniの最後に追加しました

[PHP_SQLSRV]
extension=php_sqlsrv_54_ts.dll
[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_54_ts.dll

私はそれがそれを機能させるのに適切な苦痛であったことを覚えていますが、それは今はうまくいきます。もう覚えているなら答えを編集します

UPDATE:

このブログ投稿は私がそれをどのように機能させたのかよく知っているようです

http://robsphp.blogspot.co.uk/2012/09/how-to-install-microsofts-sql-server.html

11
AdRock

同じ問題がありました。ハードRAM 32ビットが与える制限のためにインターフェイスを必要としたレガシー5.6 php x64の実行.

解決策は、Robが提供する非公式のドライバーにありました。

https://robsphp.blogspot.nl/2012/06/unofficial-Microsoft-sql-server-driver.html

私はそれをテストしました、そしてそれは5.6.33 x64で適切に動作します

3
Tschallacka

現在、Microsoft sqldriverは32ビットphpバージョンでのみ動作します。 SQLドライバをインストールするための私の手順は次のとおりです。

  • apacheの下に32ビットWampサーバーをインストールします。Apache:2.4.9 MySQL:5.6.17 PHP:5.5.12 PHPMyAdmin:4.1.14 SqlBuddy:1.3.3 XDebug:2.2.5インストール済み http://www.Microsoft.com/en-us/download/details.aspx?id=20098 3.2ドライバーがインストールされたodbcドライバー。
2
anil gangwal

Sqlsrvにはphp x86が必要です。このメッセージは、phpが64ビットアーキテクチャの場合に表示されます。

0
lisandro