Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PHP 8.1 windows builds? #223

Open
oriceon opened this issue Feb 19, 2022 · 29 comments
Open

PHP 8.1 windows builds? #223

oriceon opened this issue Feb 19, 2022 · 29 comments

Comments

@oriceon
Copy link

oriceon commented Feb 19, 2022

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

Thanks.

@asmith20002
Copy link

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

@stijnvdb88
Copy link

Hi, for anyone still looking for these, I added a PR with build instructions for Windows (b38670d). 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 (9a98785).

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
Copy link

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
Copy link

@igoriok1994 The build instructions (b38670d) 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
Copy link

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

@ajayrai
Copy link

ajayrai commented Jul 24, 2023

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
Copy link

@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
Copy link

ajayrai commented Jul 24, 2023

@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
Copy link

ajayrai commented Jul 24, 2023

@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
Copy link

ClosetGeek-Git commented Jul 25, 2023

@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
Copy link

Darecki1 commented Sep 7, 2023

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
Copy link

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
Copy link

paulocesarborges commented Sep 14, 2023

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
Copy link

paulocesarborges commented Sep 14, 2023

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

@paulocesarborges
Copy link

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
Copy link

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
Copy link

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
Copy link

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
Copy link

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

@paulocesarborges
Copy link

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
Copy link

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
Copy link

@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
Copy link

paulocesarborges commented Sep 20, 2023

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

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!

@zhiyong-ft
Copy link

zhiyong-ft commented Jan 22, 2024

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
Copy link

Thanks you, it works to me.

@begench993
Copy link

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
Copy link

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
Copy link

paulocesarborges commented Jul 5, 2024

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
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests