Giter Site home page Giter Site logo

PHP 8.1 windows builds? about php-zmq HOT 28 OPEN

oriceon avatar oriceon commented on July 30, 2024 5
PHP 8.1 windows builds?

from php-zmq.

Comments (28)

zhiyong-ft avatar zhiyong-ft commented on July 30, 2024 3

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

from php-zmq.

paulocesarborges avatar paulocesarborges commented on July 30, 2024 1

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

from php-zmq.

paulocesarborges avatar paulocesarborges commented on July 30, 2024 1

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

from php-zmq.

linuxenic avatar linuxenic commented on July 30, 2024 1

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.

from php-zmq.

Darecki1 avatar Darecki1 commented on July 30, 2024 1

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

from php-zmq.

paulocesarborges avatar paulocesarborges commented on July 30, 2024 1

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!

from php-zmq.

zhiyong-ft avatar zhiyong-ft commented on July 30, 2024 1

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.

from php-zmq.

paulocesarborges avatar paulocesarborges commented on July 30, 2024 1

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

from php-zmq.

asmith20002 avatar asmith20002 commented on July 30, 2024

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

from php-zmq.

stijnvdb88 avatar stijnvdb88 commented on July 30, 2024

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

from php-zmq.

igoriok1994 avatar igoriok1994 commented on July 30, 2024

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?

from php-zmq.

ClosetGeek-Git avatar ClosetGeek-Git commented on July 30, 2024

@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

from php-zmq.

igoriok1994 avatar igoriok1994 commented on July 30, 2024

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

from php-zmq.

ajayrai avatar ajayrai commented on July 30, 2024

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

from php-zmq.

ClosetGeek-Git avatar ClosetGeek-Git commented on July 30, 2024

@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

from php-zmq.

ajayrai avatar ajayrai commented on July 30, 2024

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

from php-zmq.

ajayrai avatar ajayrai commented on July 30, 2024

@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

from php-zmq.

ClosetGeek-Git avatar ClosetGeek-Git commented on July 30, 2024

@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

from php-zmq.

Darecki1 avatar Darecki1 commented on July 30, 2024

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

from php-zmq.

billroland avatar billroland commented on July 30, 2024

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.

from php-zmq.

paulocesarborges avatar paulocesarborges commented on July 30, 2024

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

from php-zmq.

paulocesarborges avatar paulocesarborges commented on July 30, 2024

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?

from php-zmq.

billroland avatar billroland commented on July 30, 2024

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

from php-zmq.

paulocesarborges avatar paulocesarborges commented on July 30, 2024

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

from php-zmq.

billroland avatar billroland commented on July 30, 2024

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.

from php-zmq.

paulocesarborges avatar paulocesarborges commented on July 30, 2024

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

from php-zmq.

clinicavida avatar clinicavida commented on July 30, 2024

Thanks you, it works to me.

from php-zmq.

begench993 avatar begench993 commented on July 30, 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

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

from php-zmq.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.