zeromq / php-zmq

ZeroMQ for PHP
http://pecl.php.net/zmq
Other
549 stars 119 forks source link

PHP 8.1 windows builds? #223

Open oriceon opened 2 years ago

oriceon commented 2 years ago

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

Thanks.

asmith20002 commented 2 years ago

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

stijnvdb88 commented 1 year ago

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

igoriok1994 commented 1 year ago

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?

ClosetGeek-Git commented 1 year ago

@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

igoriok1994 commented 1 year ago

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

ajayrai commented 1 year ago

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".

ClosetGeek-Git commented 1 year ago

@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

ajayrai commented 1 year ago

@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 commented 1 year ago

@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

ClosetGeek-Git commented 1 year ago

@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

Darecki1 commented 1 year ago

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

billroland commented 1 year ago

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.

paulocesarborges commented 1 year ago

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 commented 1 year ago

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

paulocesarborges commented 1 year ago

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?

billroland commented 1 year ago

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

paulocesarborges commented 1 year ago

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

billroland commented 1 year ago

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.

paulocesarborges commented 1 year ago

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

paulocesarborges commented 1 year ago

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!)

linuxenic commented 12 months ago

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.

Darecki1 commented 11 months ago

@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.

paulocesarborges commented 11 months ago

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..

image

Than, run:

*This will built those folders structure:

phpdev\vs16\x64\deps\ bin,include,lib ![image](https://github.com/zeromq/php-zmq/assets/115715857/1c601a52-0416-4db5-8b72-722421cbfac6) *Than, you will need to Download source code of the PHP version you're building for: https://windows.php.net/download/ ![image](https://github.com/zeromq/php-zmq/assets/115715857/d3c22191-6946-49ab-93df-f5d5276ebe2f) * Extract the source code under `/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 `/phpdev/vs16/x64/zmq` ![image](https://github.com/zeromq/php-zmq/assets/115715857/b06d5fa1-2c70-4864-aaa0-0b737890f817) * In that folder, **rename libzmq-v142-mt-4_3_4.lib to libzmq.lib** ![image](https://github.com/zeromq/php-zmq/assets/115715857/ff6da61d-1062-43ec-b661-3513d7e44514) * 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](https://github.com/zeromq/php-zmq/assets/115715857/aa67468d-c71f-460a-872a-bd658cb56395) Open the PHP Source code folder, and create a "zmq" folder in the "ext" folder, than extract the files that we just downloaded: `/phpdev/vs16/x64/php-8.2.10-src/ext/zmq` ![image](https://github.com/zeromq/php-zmq/assets/115715857/7db60b96-565e-46a3-a2d8-c03211de76fa) ![image](https://github.com/zeromq/php-zmq/assets/115715857/dd8dcf8e-ae72-42ab-8f62-0a32721c6177) Than, back again in the VS2019 command prompt: * `cd /phpdev/vs16/x64/php-8.2.10-src` * `buildconf` * `configure --with-zmq="/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 /phpdev/vs16/x64/php-8.2.10-src` * `buildconf` * `configure --disable-zts --with-zmq="/phpdev/vs16/x64/zmq,shared"` * `nmake` Again, when you see: `` 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!
zhiyong-ft commented 7 months ago

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

clinicavida commented 7 months ago

Thanks you, it works to me.

begench993 commented 2 months ago

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 ?

zhiyong-ft commented 2 months ago

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.

paulocesarborges commented 2 months ago

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

oswaldoFblanco commented 3 weeks ago

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