Installieren von zeromq auf einem Windows 7 WAMP-Server

9

Ich suche nach der Installation von zeromq auf meinem Windows 7-Computer für die Verwendung von zeromq mit PHP (ich verwende WAMP-Server (5.3.4), Apache Server 2.2.17).

Ich habe die Dokumentation auf ihrer Website befolgt , weiß aber nicht, was ich tun soll. Ich habe die zeromq von der folgenden Site installiert und dann versucht, die DLL von dieser Site zu kopieren, aber sie ist nicht verfügbar .

Wo kann ich die DLL bekommen? Möchte ich nur das Windows-Installationsprogramm über diesen Link installieren , oder wird noch etwas benötigt?

Ich habe die DLL von dieser Seite heruntergeladen http://178.79.157.189/~mikko/win32/php-zmq-win32.zip


Ich verwende die Version PHP 5.3.4 x64 und Windows 7 x64. Ich habe folgende Schritte versucht:

  1. ich habe installiert ZeroMQ-3.2.2rc2~miru1.5-x64
  2. kopiert libzmq.dllnachc:\wamp\bin\php\php5.3.4
  3. kopiert php-zmq\php53\php53-ts_zeromq-3.2.2 nachc:\wamp\bin\php\php5.3.4\ext
  4. aktivierte die php_zmqErweiterung inphp.ini
  5. Ich habe den WAMP neu gestartet. Es zeigt

    'c:/wamp/bin/php/php5.3.4/ext/php_zmq.dll' -% 1 ist keine gültige Win32-Anwendung

Was könnte das Problem sein?

Wieder versuchte ich es mit der Wamp x86 (PHP 5.4.3) Version und Windows 7 x64

  1. ich habe installiert ZeroMQ-3.2.2rc2~miru1.5-x86.exe
  2. kopiert libzmq.dllnachc:\wamp\bin\php\php5.4.3
  3. kopiert php-zmq\php54\php54-ts_zeromq-3.2.2 nachc:\wamp\bin\php\php5.4.3\ext
  4. aktivierte die php_zmqErweiterung inphp.ini
  5. Ich habe den WAMP neu gestartet. Es zeigt

    PHP-Start: Dynamische Bibliothek 'c: /wamp/bin/php/php5.4.3/ext/php_zmq.dll' kann nicht geladen werden - Das angegebene Modul wurde nicht gefunden. \ R \ n in Unbekannt in Zeile 0

Thirumalai Murugan
quelle

Antworten:

9

Angesichts der Tatsache, dass dies das Top-Suchergebnis bei Google für Probleme mit zeromq dll mit PHP unter Windows ist, füge ich meine zwei Cent hinzu.

Richtige Schritte zum Einrichten von zeroMQ mit PHP:

1) Laden Sie das richtige DLL-Paket für PHP herunter

Die DLL-Download-Seite für PHP ZeroMQ finden Sie jetzt unter http://pecl.php.net/package/zmq ( http://snapshot.zeromq.com ist tot). Neben jeder verfügbaren Version befindet sich ein kleiner DLL-Link '. Das ist dein Link. Klicken Sie darauf und wählen Sie Ihre DLL basierend auf Ihrer PHP-Version und ob sie threadsicher (TS) oder nicht threadsicher (NTS) ist.

Wenn Sie aus dem XAMPP-Paket kommen, sollte Ihre DLL die TS & x86-Version sein .

2) Stellen Sie sicher, dass Sie das richtige Microsoft Visual C ++ Redistributable Package installiert haben.

Zum jetzigen Zeitpunkt ist die korrekte Version die von 2012. Link zum Herunterladen des Pakets: http://www.microsoft.com/en-us/download/details.aspx?id=30679

3) Kopieren Sie die phpzmq.dll & libzmq.dll (aus dem DLL-Paket in Schritt 1) ​​in Ihr PHP \ Extensions-Verzeichnis (der standardmäßige XAMPP-PHP-Ext-Pfad lautet: C: \ xampp \ php \ ext)

4) Fügen Sie die phpzmq.dll zu Ihrer PHP.ini hinzu

5) Fügen Sie das Verzeichnis PHP \ extensions zu Ihren PATH-Systemumgebungsvariablen hinzu (sehr wichtig) und starten Sie Ihren Computer neu

Starten Sie nach dem Neustart Ihren Apache und beten Sie zu den PHP-Göttern.

FAQ für häufige Fehler:

1) Ich habe ein Popup mit der Meldung "'libzmq.dll' fehlt auf meinem Computer", wenn ich Apache starte.

Stellen Sie sicher, dass Sie Schritt 5 bis zum Buchstaben befolgt haben, und stellen Sie sicher, dass der Verzeichnispfad korrekt ist und die DLL in diesem Verzeichnis vorhanden ist.

2) Ein weiteres Popup mit der Aufschrift "'php5.dll' fehlt auf meinem Computer" beim Starten von Apache.

Sieht so aus, als hätten Sie die falsche DLL für Ihre PHP-Version. Laden Sie die richtige aus Schritt 1 herunter.

3) Ein zufälliges Popup mit der Meldung "'phpzmq.dll' ist keine gültige Win 32-Anwendung."

Diese DLL ist immer noch nicht korrekt. Stellen Sie sicher, dass Sie das richtige (x86 oder x64) haben und dass es entweder threadsicher oder nicht threadsicher ist. Wie würdest du wissen? Zeit für DLL-Roulette.

Die Hoffnung, dass dieser Beitrag tatsächlich den Benutzern hilft, die hier landen :)

Mysteryos
quelle
Tolle Antwort, danke. Ich habe seit Ewigkeiten nach einem Link zu den richtigen DLLs gesucht.
ibanore
3

Die Antwort von @ Mysteryos ist recht informativ, aber ungenau. In Schritt 3 und 4 sind nur wenige Fehler zu erwähnen.

Richtige Vorgehensweise im WAMP-Server
Schritt 3)

  • i) Kopieren libzmq.dll PHP bin Stammverzeichnis (zB C:. \ wamp \ bin \ php \ php5.5.12)
  • ii) Kopieren Sie die Datei php_zmq.dll in das Verzeichnis der PHP- Erweiterungen (z. B. C: \ wamp \ bin \ php \ php5.5.12 \ ext).
  • Ich verwende das php_zmq-1.1.2-5.5-ts-vc11-x64.zip (php 5.5, thread safe), das über diesen Link http://pecl.php.net/package/zmq abgerufen werden kann .
  • Stellen Sie sicher, dass Sie diejenige herunterladen, die Ihrer PHP-Version (5.x) entspricht. Andernfalls wird beim Starten von Apache der Fehler "Ein weiteres Popup mit der Aufschrift" php5.dll "fehlt auf meinem Computer" angezeigt


Schritt 4)
Fügen Sie die phpzmq.dll-Deklaration zu Ihrer PHP.ini hinzu.

Es ist wichtig zu beachten, dass sich nur wenige php.ini im WAMP-Serververzeichnis befinden.
Das richtige PHP befindet sich in C: \ wamp \ bin \ apache \ apache2.4.9 \ php.ini Fügen Sie
die folgende Deklaration in die oben erwähnte php.ini ein.

[ZMQ]
extension=php_zmq.dll
Zcythe
quelle
1
Ja! Nizza fangen Kopieren libzmq.dllund libsodium.dllzu PHP Root Dir
Manix
"Kopiere libzmq.dll in das Stammverzeichnis von php bin" erledigte den Job..ty
Sid
2

Ich hatte das gleiche Problem. Die Verwendung von DLL aus php-zmq_zeromq-{version}-ztsOrdner hat das Problem für mich behoben.

Monte
quelle
Woher können wir diese DLL bekommen? Kannst du mich teilen?
Thirumalai Murugan
0

Ich habe die Anweisungen von @Mysteryos und @Zcythe befolgt, aber es wurde immer noch der Fehler "Modul kann nicht geladen werden" angezeigt. Nachdem ich die WAMP-Foren auf Französisch überprüft hatte, funktionierte ich nach den nächsten Änderungen nach Schritt 4:

Bearbeiten Sie die Datei config.inc.php in C: \ wamp \ scripts

Suchen:

$phpDllToCopy = array_merge(
    $php_icu_dll,
    array (
    'libmysql.dll',
    'libeay32.dll',
    'libsasl.dll',
    'libpq.dll',
    'libssh2.dll', //For php 5.5.17
    'php5isapi.dll',
    'php5nsapi.dll',
    'ssleay32.dll',
    'php5ts.dll',
    'php7ts.dll', //For PHP 7
    )
);

Fügen Sie dann die 2 ZeroMQ-Bibliotheken hinzu, damit Folgendes aussieht:

$phpDllToCopy = array_merge(
    $php_icu_dll,
    array (
    'libmysql.dll',
    'libeay32.dll',
    'libsasl.dll',
    'libpq.dll',
    'libssh2.dll', //For php 5.5.17
    'php5isapi.dll',
    'php5nsapi.dll',
    'ssleay32.dll',
    'php5ts.dll',
    'php7ts.dll', //For PHP 7
    'Libsodium.dll', //The ZMQ Libraries
    'Libzmq.dll'
    )
);

Starten Sie WAMP neu und es muss ordnungsgemäß funktionieren.

Ich habe dies mit der folgenden ZMQ-Bibliothek getestet:

https://pecl.php.net/package/zmq/1.1.3/windows

  • (7.0 Thread Safe (TS) x64, PHP 7.0.10)

Schöne Grüße!

Ultranuke
quelle
0

Schritte zum Installieren von zeroMQ in PHP 5.3, PHP 7.1 und 7.2 unter Windows

Höchstwahrscheinlich möchten Sie Ihre PHP-Version, x64 und Thread Safe,
aber möglicherweise haben Sie eine x32-Version von PHP

$ php -i | grep Architecture  
Architecture => x64
  • für PHP 5.3

Laden Sie 5.3 Thread Safe (TS) x86-
Extrakt herunter und kopieren Sie die DLLs

Kopieren Sie libzmq.dllin
C: \ wamp \ bin \ php \ php5.3.4
gibt es keine libsodium.dllin PHP 5.3

Kopieren Sie php_zmq.dllin
C: \ wamp \ bin \ php \ php5.3.4 \ ext

füge die erweiterung deiner php.ini hinzu,
normalerweise mit den anderen dynamischen erweiterungen

extension=php_zmq.dll

  • für PHP 7.1

Laden Sie 7.1 Thread Safe (TS) x64-
Extrakt herunter und kopieren Sie die DLLs

kopieren libzmq.dllund libsodium.dllin
C: \ laragon \ bin \ php \ php-7.1.20-Win32-VC14-x64
gibt es eine zusätzliche DLL libsodium.dllfür PHP 7.1

Kopieren Sie php_zmq.dllin
C: \ laragon \ bin \ php \ php-7.1.20-Win32-VC14-x64 \ ext

füge die erweiterung deiner php.ini hinzu, normalerweise mit den anderen dynamischen erweiterungen

extension=php_zmq.dll

  • für PHP 7.2

Laden Sie 7.2 Thread Safe (TS) x64-
Extrakt herunter und kopieren Sie die DLLs

Kopieren libzmq.dllin
C: \ laragon \ bin \ php \ php-7.2.11-Win32-VC15-x64 Nach PHP 7.1
gibt es keinelibsodium.dll

Kopieren Sie php_zmq.dllin
C: \ laragon \ bin \ php \ php-7.2.11-Win32-VC15-x64 \ ext

füge die erweiterung deiner php.ini hinzu, normalerweise mit den anderen dynamischen erweiterungen

extension=zmq

  • Überprüfen Sie dies, indem Sie die PHP-Informationen anzeigen
$ php -i | grep zmq  
zmq  
libzmq version => 4.1.3
Browniebytes
quelle