php-zmq icon indicating copy to clipboard operation
php-zmq copied to clipboard

PHP 8.1 windows builds?

Open oriceon opened this issue 3 years ago • 33 comments
trafficstars

Hi. Anyone has / use and can share some PHP 8.1.3 windows builds?

Thanks.

oriceon avatar Feb 19 '22 08:02 oriceon

I'm forced to use php7 because ZMQ doesn't work for php 8 on windows. Any news on this one?

asmith20002 avatar Jul 25 '22 20:07 asmith20002

Hi, for anyone still looking for these, I added a PR with build instructions for Windows (https://github.com/zeromq/php-zmq/pull/232/commits/b38670db68d2242fa3382641245fad1ee2b0dbfa). There's currently a compilation error when building zmq from master against php 8.x on Windows, there's a fix for that in the PR as well (https://github.com/zeromq/php-zmq/pull/232/commits/9a98785dd8438e7e7b0edf30e2c4ce0188a609a1).

You can also find prebuilt x64 binaries for 8.1 and 8.2 here: https://github.com/stijnvdb88/php-zmq/releases/tag/v4.3.4

stijnvdb88 avatar Mar 20 '23 20:03 stijnvdb88

You can also find prebuilt x64 binaries for 8.1 and 8.2 here: https://github.com/stijnvdb88/php-zmq/releases/tag/v4.3.4

Strange. Not working on PHP8.1 PHP Warning: PHP Startup: Unable to load dynamic library 'php_zmq'

Is this build for TS or NTS PHP version?

igoriok1994 avatar Jun 01 '23 09:06 igoriok1994

@igoriok1994 The build instructions (https://github.com/zeromq/php-zmq/commit/b38670db68d2242fa3382641245fad1ee2b0dbfa) use default parameters so I'm assuming it is TS. Also, you need to make sure your using the same version of PHP as the lib is built against, even same minor version. The 8.2 build is built against 8.2.4.0, the 8.1 build is 8.1.17.0

ClosetGeek-Git avatar Jun 27 '23 07:06 ClosetGeek-Git

@ClosetMonkey Ah, that was not obvious. I thought it should work with PHP 8.1.X and PHP 8.2.X.

igoriok1994 avatar Jun 27 '23 19:06 igoriok1994

Did any of you have zmq working with PHP 8.2.X on Windows? I tried the binaries provided in this thread and I got a " Unable to load dynamic library " error even though libzmq.dll and php_zmq.dll were present in the right places.
Also, tried to build using the build instructions in (b38670d), and I get an unknown option error for "--with-zmq".

ajayrai avatar Jul 24 '23 16:07 ajayrai

@ajayrai can you be more specific? Also, libzmq.dll needs to be renamed back to 'libzmq-v142-mt-4_3_4.dll' (assuming you used libzmq-v142-x64-4_3_4.zip as suggested in the build instructions) This literally took me over 3 hours to hunt down. Screenshot 2023-07-24 094100

ClosetGeek-Git avatar Jul 24 '23 16:07 ClosetGeek-Git

@ClosetMonkey When I used the provided binaries, I did rename the libzmq.dll back to 'libzmq-v142-mt-4_3_4.dll' . I got the same error but I will try again.

But while building, I had renamed 'libzmq-v142-mt-4_3_4.dll' to libzmq.dll since in the zmq package, it was 'libzmq-v142-mt-4_3_4.dll'. This was in the line "Download libzmq: https://github.com/zeromq/libzmq/releases (eg. libzmq-v142-x64-4_3_4.zip)" Should I have left it as is? is that why "--with-zmq" option maybe was being ignored?

ajayrai avatar Jul 24 '23 17:07 ajayrai

@ClosetMonkey I downloaded 'libzmq-v142-mt-4_3_4.dll' directly from https://github.com/zeromq/libzmq/releases and did NOT rename it, and the binaries worked. Thank you so much. By the way, you might already know that downloading 'libzmq-v142-x64-4_3_4.zip' gives a virus alert that I read in another thread that it was a false positive.

It would be helpful to know if you or anyone had an idea how I can debug "--with-zmq" error while trying to build. Thanks

ajayrai avatar Jul 24 '23 21:07 ajayrai

@ajayrai Have you tried buildconf clean && configure --with-zmq ? Try ./configure --help and check if it's output has the following option in it's list:

--with-zmq 0MQ support

If not I'd guess you need to use buildconf clean

ClosetGeek-Git avatar Jul 25 '23 03:07 ClosetGeek-Git

Anyone was able to build PHP 8.X Non Thread Safe with zmq? I followed instructions from this thread but ended up with:

WARNING
The following arguments is invalid, and therefore ignored:
--with-zmq

When running configure --help option --with-zmq is not available in the list

Darecki1 avatar Sep 07 '23 08:09 Darecki1

If anyone is able/willing to build a version of this for PHP 8.2, Non Thread Safe, I would be willing to make a monetary contribution for your effort.

billroland avatar Sep 13 '23 18:09 billroland

Same problem here with:

WARNING The following arguments is invalid, and therefore ignored: --with-zmq

I discovered that to generate the NTS of PHP version, you must include "configure --disable-zts" when you run the command: image

But.. i still dont have any idea how to deal with ZMQ, the instrucions are totalyy unclear

paulocesarborges avatar Sep 14 '23 01:09 paulocesarborges

zmq-php-8.2.10-NTS.zip Just Did it - ZMQ PHP 8.2.10 NTS

paulocesarborges avatar Sep 14 '23 03:09 paulocesarborges

Guys, as you can see i was able to build php_zmq.dll, but i was not able to generate libzmq.lib. How do i do that?

paulocesarborges avatar Sep 14 '23 13:09 paulocesarborges

Your NTS build is working for me on Windows IIS, thanks! For libzmq.lib, I think you actually need libzmq-v142-mt-4_3_4.dll' from here https://github.com/zeromq/libzmq/releases/download/v4.3.4/libzmq-v142-x64-4_3_4.zip

billroland avatar Sep 14 '23 15:09 billroland

Hi @billroland glad to hear that! TO me it just don't work, and i dont know why. Where do i need to put that file? libzmq-v142-mt-4_3_4.dll

paulocesarborges avatar Sep 14 '23 15:09 paulocesarborges

I just put libzmq-v142-mt-4_3_4.dll in the main PHP directory. So your php_zmq.dll goes in the EXT folder and libzmq-v142-mt-4_3_4.dll goes in the main PHP folder. It worked for me.

billroland avatar Sep 14 '23 15:09 billroland

WOW!! Thank you!!!!!!!!! it worked!

paulocesarborges avatar Sep 14 '23 15:09 paulocesarborges

I made a new ZIP with the instructions and the correct files to everyone!

ZMQ-4.3.4_x64_PHP8.2.10-NTS.zip

:D

Later, i'll share with you how i was able to do that, and solve the problem with

 WARNING
The following arguments is invalid, and therefore ignored:
--with-zmq 

(i'ts not too difficult.. but the instrucions here was not clear!)

paulocesarborges avatar Sep 14 '23 15:09 paulocesarborges

hi @paulocesarborges, thank you for your file! i'm looking php_zmq.dll and libzmq.dll for PHP 8.2.4, trying to search at all in internet but i found nothing.

linuxenic avatar Sep 19 '23 03:09 linuxenic

@paulocesarborges thank you very much. You the man! I would appreciate instructions on how you managed to compile this, so once I change PHP version I'll be able to build files myself.

Darecki1 avatar Sep 20 '23 11:09 Darecki1

Here are the clearest instructions regarding this I used VS2019 and PHP 8.x Versions. I don't know if it will work in other versions. But you can test. When you see: <php-sdk-binary-tools> mentioned here, you need to replace that for the path of you actual folder..

  • Create a folder on your computer and clone this directory:

  • git clone https://github.com/Microsoft/php-sdk-binary-tools

image

  • Open "Developer Command Prompt for VS2019"

  • All commands listed below must be run using the VS2019 command prompt you just opened: image

  • cd into the directory you just cloned, and run phpsdk-vs16-x64.bat image

Than, run:

  • phpsdk_buildtree phpdev

*This will built those folders structure: phpdev\vs16\x64\deps\ bin,include,lib image

*Than, you will need to Download source code of the PHP version you're building for: https://windows.php.net/download/ image

  • Extract the source code under <php-sdk-binary-tools>/phpdev/vs16/x64/php-8.2.10-src (replace php version with whatever version you downloaded)

  • Download libzmq: https://github.com/zeromq/libzmq/releases (eg. libzmq-v142-x64-4_3_4.zip)

  • Extract under <php-sdk-binary-tools>/phpdev/vs16/x64/zmq image

  • In that folder, rename libzmq-v142-mt-4_3_4.lib to libzmq.lib

image

  • Download the zip file with the source code that are mentioned in this topic: https://github.com/stijnvdb88/php-zmq/releases/tag/v4.3.4 image

Open the PHP Source code folder, and create a "zmq" folder in the "ext" folder, than extract the files that we just downloaded: <php-sdk-binary-tools>/phpdev/vs16/x64/php-8.2.10-src/ext/zmq image image

Than, back again in the VS2019 command prompt:

  • cd <php-sdk-binary-tools>/phpdev/vs16/x64/php-8.2.10-src
  • buildconf
  • configure --with-zmq="<php-sdk-binary-tools>/phpdev/vs16/x64/zmq,shared"
  • nmake

IF you needing a PHP NTS (Non Thread Safe) version, it's almost the same, but you need to add --disable-zts in the configure command:

  • cd <php-sdk-binary-tools>/phpdev/vs16/x64/php-8.2.10-src
  • buildconf
  • configure --disable-zts --with-zmq="<php-sdk-binary-tools>/phpdev/vs16/x64/zmq,shared"
  • nmake

Again, when you see: <php-sdk-binary-tools> mentioned here, you need to replace that for the path of you actual folder..

Please, test it and tell me if it work for you!

paulocesarborges avatar Sep 20 '23 14:09 paulocesarborges

Attached is binaries built for PHP 8.0. Tested working on Windows 11 with XAMPP (xampp-windows-x64-8.0.30-0-VS16-installer).

For those who choose to build binaries from sources, please be aware of your visual c++ version. If you upgraded to Visual Studio 2019 from earlier versions of VS, VC++ might be of a version that has backward compatibility. That version may not be able to compile the latest PHP source code. I ended up having to completely remove entire VS2019 installation and re-install from scratch.

zmq-php8.0.30-vs16-x64-ts.zip

zhiyong-ft avatar Jan 22 '24 05:01 zhiyong-ft

Thanks you, it works to me.

clinicavida avatar Feb 13 '24 18:02 clinicavida

Attached is binaries built for PHP 8.0. Tested working on Windows 11 with XAMPP (xampp-windows-x64-8.0.30-0-VS16-installer).

For those who choose to build binaries from sources, please be aware of your visual c++ version. If you upgraded to Visual Studio 2019 from earlier versions of VS, VC++ might be of a version that has backward compatibility. That version may not be able to compile the latest PHP source code. I ended up having to completely remove entire VS2019 installation and re-install from scratch.

zmq-php8.0.30-vs16-x64-ts.zip

Do you have NTS (non-thread safe) version ?

begench993 avatar Jul 04 '24 15:07 begench993

Attached is binaries built for PHP 8.0. Tested working on Windows 11 with XAMPP (xampp-windows-x64-8.0.30-0-VS16-installer). For those who choose to build binaries from sources, please be aware of your visual c++ version. If you upgraded to Visual Studio 2019 from earlier versions of VS, VC++ might be of a version that has backward compatibility. That version may not be able to compile the latest PHP source code. I ended up having to completely remove entire VS2019 installation and re-install from scratch. zmq-php8.0.30-vs16-x64-ts.zip

Do you have NTS (non-thread safe) version ?

Unfortunately no. Is NTS for IIS? Maybe you can try to build it from source. It is not as daunting as it seems.

zhiyong-ft avatar Jul 04 '24 17:07 zhiyong-ft

Do you have NTS (non-thread safe) version ?

Yes, for PHP 8.2.10

https://github.com/zeromq/php-zmq/files/12610669/ZMQ-4.3.4_x64_PHP8.2.10-NTS.zip

paulocesarborges avatar Jul 05 '24 13:07 paulocesarborges

amigos tengo un problema con php 8.1.9 trate de hacerlo con la 8.2 y 8.0.30 y no me ha funcionado algunome podria ayudar

oswaldoFblanco avatar Aug 20 '24 15:08 oswaldoFblanco