web-dev-qa-db-ja.com

PHP 5.3およびPHP 5.4リリースx64をVisual Studio 2008 SP1でコンパイルする方法は?

私はApache x64を正常にコンパイルした後、PHP 5.3.29および5.4.45リリースx86を使用して、DLLファイルは有効なWin32ではありません。アプリケーション。Visual Studio 2008 SP1、Visual C++ 2008(x64およびx86)をインストールしました。

私が使用するファイルのリスト:

1、_php-5.3.29-src.Zip_および_php-5.4.45-src.Zip_ windows.php.netで取得しました

2、Oracleでは_instantclient-sdk-win64-10.2.0.5.Zip_および_instantclient-sdk-windows.x64-11.2.0.4.0.Zip_。

コンパイル手順:

_call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86_AMD64 (I tried using the commands in Visual Studio Tools, it also got the same error)
cd /D C:\php-sdk (I extracted the source file and renamed the directory into php-sdk)
buildconf --force
configure --enable-snapshot-build --disable-isapi --enable-debug-pack --without-mssql --without-pdo-mssql --without-pi3web --with-pdo-oci=C:\php-sdk\Oracle\instantclient10\sdk,shared --with-oci8=C:\php-sdk\Oracle\instantclient10\sdk,shared --with-oci8-11g=C:\php-sdk\Oracle\instantclient11\sdk,shared --enable-object-out-dir=../obj/ --enable-com-dotnet=shared --with-mcrypt=static --disable-static-analyze
_
  1. 上記のコマンドは、phpinfo()でx86リリースされたphpのコマンドラインから取得しました。
  2. _instantclient-sdk-win64-10.2.0.5.Zip_を解凍し、_php-sdk_にOracleディレクトリを作成し、抽出したフォルダーを移動して、名前を_instantclient10_に変更しました。
  3. _instantclient11_上記と同じことをして、_instantclient-sdk-windows.x64-11.2.0.4.0.Zip_から取得しました。

次に、_nmake snap_を使用します

しかし、エラーが発生しました:

_c:\php-sdk\zend\zend_execute.h(234) : warning C4267: 'function' : conversion fro
m 'size_t' to 'int', possible loss of data
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\
VC\BIN\x86_AMD64\cl.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\
VC\BIN\nmake.exe"' : return code '0x2'
Stop.
_

次に、configureの_--enable-snapshot-build_を削除してみましたが、今回はnmakeを使用しました。そして、私は別のエラーに遭遇しました:

_ext\mysqlnd\mysqlnd_net.c(31) : fatal error C1083: Cannot open include file: 'zl
ib.h': No such file or directory
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\
VC\BIN\x86_AMD64\cl.exe"' : return code '0x2'
Stop.
_

問題はzlibに関連していると思います。_--disable-zlib_をconfigureに追加しました。今回は、建設プロセスが成功します。ただし、_php5ts.dll_、_php_com_dotnet.dll_、_php_oci8.dll_、_php_oci8_11g.dll_、_php.exe_および_php-cgi.exe_のみが表示されます。 root(ビルド出力ディレクトリ)とextフォルダーにDLLファイルがありません。

誰かが私にx86リリースのような完全なビルドガイドを提供できますか?

よろしくお願いします。

2
Tần Quảng

あなたの問題は、64ビットのApacheと32ビットのPHPを混合しているようです。それは可能ではありません。

別の32ビットPHPをPHP-FPMまたはFastCGIで実行できます。 FastCGIは、5.3以降、すべてのPHP 5.xバージョンおよびPHP-FPMで使用できます。ただし、実際には supported PHP バージョンにアップグレードする必要があります。2020年5月の時点で、PHP 7.3および7.4にはアクティブなサポートがあり、PHP 7.2のセキュリティサポートがあります。

2
Esa Jokinen