Open oriceon opened 2 years ago
I'm forced to use php7 because ZMQ doesn't work for php 8 on windows. Any news on this one?
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
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 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
@ClosetMonkey Ah, that was not obvious. I thought it should work with PHP 8.1.X and PHP 8.2.X.
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 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.
@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?
@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 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
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
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.
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:
But.. i still dont have any idea how to deal with ZMQ, the instrucions are totalyy unclear
zmq-php-8.2.10-NTS.zip Just Did it - ZMQ PHP 8.2.10 NTS
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?
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
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
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.
WOW!! Thank you!!!!!!!!! it worked!
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!)
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.
@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.
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
Open "Developer Command Prompt for VS2019"
All commands listed below must be run using the VS2019 command prompt you just opened:
cd into the directory you just cloned, and run phpsdk-vs16-x64.bat
Than, run:
phpsdk_buildtree phpdev
*This will built those folders structure:
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.
Thanks you, it works to me.
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.
Do you have NTS (non-thread safe) version ?
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.
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
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
Hi. Anyone has / use and can share some PHP 8.1.3 windows builds?
Thanks.