Я успешно скомпилировал Apache x64, затем использую PHP 5.3.29 и 5.4.45 release 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, instantclient-sdk-win64-10.2.0.5.zip
и instantclient-sdk-windows.x64-11.2.0.4.0.zip
на Oracle.
Шаги компиляции:
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
phpinfo()
.instantclient-sdk-win64-10.2.0.5.zip
затем создал oracle
каталог в php-sdk
, переместил извлеченную папку и переименовал ее в instantclient10
.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.
Затем я попытался удалить --enable-snapshot-build
на configure
, на этот раз я просто использовал 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
. Нет файлов DLL в root
(построить выходной каталог) и ext
папка.
Может ли кто-нибудь дать мне полное руководство по сборке, например, выпуск x86?
Буду признателен за вашу помощь.
Кажется, ваша проблема заключается в смешивании 64-битного Apache с 32-битным PHP. Это невозможно.
Вы можете запустить отдельный 32-битный PHP с PHP-FPM или FastCGI. FastCGI доступен во всех версиях PHP 5.x и PHP-FPM, начиная с 5.3. Но вам действительно стоит перейти на поддерживаемый PHP версия: по состоянию на май 2020 года PHP 7.3 и 7.4 имеют активную поддержку и поддержку безопасности PHP 7.2.