Installation de zeromq sur le serveur WAMP de Windows 7

9

Je cherche à installer zeromq sur ma machine Windows 7 pour utiliser zeromq avec PHP (j'utilise le serveur WAMP (5.3.4), Apache Server 2.2.17).

J'ai suivi la documentation sur leur site , mais je ne sais pas quoi faire. J'ai installé le zeromq à partir du site suivant , puis j'ai essayé de copier la dll de ce site mais il est en panne.

Où puis-je obtenir la DLL? Dois-je installer uniquement le programme d'installation de Windows à partir de ce lien , ou y a-t-il autre chose nécessaire?

J'ai téléchargé la dll de ce site http://178.79.157.189/~mikko/win32/php-zmq-win32.zip


J'utilise la version PHP 5.3.4 x64 et Windows 7 x64. J'ai essayé les étapes suivantes:

  1. J'ai installé ZeroMQ-3.2.2rc2~miru1.5-x64
  2. copié libzmq.dlldansc:\wamp\bin\php\php5.3.4
  3. copié php-zmq\php53\php53-ts_zeromq-3.2.2 dansc:\wamp\bin\php\php5.3.4\ext
  4. activé l' php_zmqextension dansphp.ini
  5. J'ai redémarré le WAMP. Ça montre

    'c:/wamp/bin/php/php5.3.4/ext/php_zmq.dll' -% 1 n'est pas une application win32 valide

Quel pourrait être le problème?

Encore une fois, j'ai essayé avec la version Wamp x86 (php 5.4.3) et windows 7 x64

  1. J'ai installé ZeroMQ-3.2.2rc2~miru1.5-x86.exe
  2. copié libzmq.dlldansc:\wamp\bin\php\php5.4.3
  3. copié php-zmq\php54\php54-ts_zeromq-3.2.2 dansc:\wamp\bin\php\php5.4.3\ext
  4. activé l' php_zmqextension dansphp.ini
  5. J'ai redémarré le WAMP. Ça montre

    Démarrage PHP: impossible de charger la bibliothèque dynamique 'c: /wamp/bin/php/php5.4.3/ext/php_zmq.dll' - Le module spécifié est introuvable. \ R \ n dans Inconnu sur la ligne 0

Thirumalai murugan
la source

Réponses:

9

Étant donné qu'il s'agit du meilleur résultat de recherche sur Google pour les problèmes de DLL zeromq avec PHP sur Windows, j'y ajoute mes deux cents.

Étapes appropriées pour configurer zeroMQ avec PHP:

1) Téléchargez le package DLL correct pour PHP

La page de téléchargement de DLL pour PHP ZeroMQ est maintenant disponible sur http://pecl.php.net/package/zmq ( http://snapshot.zeromq.com est mort) Un minuscule lien "DLL" sera présent à côté de chaque "version disponible" '. Voilà votre lien. Cliquez dessus et sélectionnez votre DLL en fonction de votre version PHP et si elle est thread-safe (TS) ou non-thread safe (NTS).

Si vous venez du package XAMPP, votre DLL doit être la version TS & x86 .

2) Assurez-vous que le package redistribuable Microsoft Visual C ++ correct est installé.

Au moment d'écrire ces lignes, la version correcte est celle de 2012. Lien pour télécharger le package: http://www.microsoft.com/en-us/download/details.aspx?id=30679

3) Copiez les fichiers phpzmq.dll et libzmq.dll (à partir du paquetage dll à l'étape 1) dans votre répertoire PHP \ Extensions (le chemin par défaut de l' extension XAMPP php est: C: \ xampp \ php \ ext)

4) Ajoutez le phpzmq.dll à votre PHP.ini

5) Ajoutez le répertoire PHP \ extensions à vos variables d'environnement système PATH (très important) et redémarrez votre machine

Au redémarrage, démarrez votre apache et priez les dieux PHP.

FAQ pour les erreurs courantes:

1) J'ai une fenêtre contextuelle indiquant "'libzmq.dll' est absent de mon ordinateur" lors du démarrage d'apache.

Eh bien sacrément, assurez-vous d'avoir suivi l'étape 5 à la lettre et vérifiez que le chemin du répertoire est correct et que la DLL est présente dans ce répertoire.

2) Un autre popup indiquant "'php5.dll' est manquant sur mon ordinateur" lors du démarrage d'apache.

Il semble que vous n'ayez pas la bonne DLL pour votre version PHP. Téléchargez le bon à partir de l'étape 1.

3) Un popup aléatoire est apparu disant "'phpzmq.dll' n'est pas une application win 32 valide."

Cette DLL n'est toujours pas correcte. Assurez-vous que vous avez obtenu le bon (x86 ou x64) et qu'il est soit thread-safe ou non thread-safe. Comment saurais tu? Il est temps de jouer à la roulette DLL.

En espérant que ce message aide réellement les utilisateurs qui atterrissent ici :)

Mysteryos
la source
Grande réponse merci. Je cherchais un lien vers les bonnes DLL depuis des lustres.
ibanore
3

@ La réponse de Mysteryos est assez informative mais elle est inexacte. Il y a peu d'erreurs aux étapes 3 et 4 qui méritent d'être mentionnées.

Procédure correcte dans le serveur WAMP
Étape 3)

  • i) Copiez libzmq.dll dans le répertoire racine de php bin (par exemple, C: \ wamp \ bin \ php \ php5.5.12)
  • ii) Copiez php_zmq.dll dans le répertoire des extensions php (par exemple C: \ wamp \ bin \ php \ php5.5.12 \ ext)
  • J'utilise le php_zmq-1.1.2-5.5-ts-vc11-x64.zip (php 5.5, thread safe) qui peut être obtenu à partir de ce lien http://pecl.php.net/package/zmq .
  • Assurez-vous de télécharger celle qui correspond à votre version php (5.x), sinon vous obtiendrez "Une autre fenêtre contextuelle disant" 'php5.dll' est manquant sur mon ordinateur "lors du démarrage d'apache"


Étape 4)
Ajoutez la déclaration phpzmq.dll à votre PHP.ini

Il est important de noter qu'il y a peu de php.ini dans le répertoire du serveur WAMP.
Le php correct est dans C: \ wamp \ bin \ apache \ apache2.4.9 \ php.ini
Ajoutez la déclaration suivante dans le php.ini mentionné ci-dessus.

[ZMQ]
extension=php_zmq.dll
Zcythe
la source
1
Ouais! Belle copie de capture libzmq.dllet libsodium.dlldir racine PHP
manix
"Copier libzmq.dll dans le répertoire racine de la php bin" a fait le travail .. ty
Sid
2

J'ai eu le même problème. L'utilisation de DLL à partir du php-zmq_zeromq-{version}-ztsdossier a résolu le problème pour moi.

Monte
la source
d'où nous pouvons obtenir cette dll pouvez-vous me partager?
Thirumalai murugan
0

J'ai suivi les instructions de @Mysteryos et @Zcythe, mais je recevais toujours une erreur de module impossible à charger, donc après avoir examiné les forums WAMP en français, je l'ai fait fonctionner en suivant les changements suivants après l'étape 4:

Modifiez le fichier config.inc.php situé dans C: \ wamp \ scripts

Chercher:

$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
    )
);

Et puis ajoutez les 2 bibliothèques ZeroMQ pour qu'elles ressemblent à:

$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'
    )
);

Redémarrez WAMP et cela doit fonctionner correctement.

J'ai testé cela avec la bibliothèque ZMQ suivante:

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

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

Salutations!

Ultranuke
la source
0

Étapes pour installer zeroMQ en PHP 5.3, PHP 7.1 et 7.2 sous Windows

Vous voulez probablement votre version PHP, x64 et Thread Safe,
mais vous pouvez avoir une version x32 de PHP

$ php -i | grep Architecture  
Architecture => x64
  • pour PHP 5.3

télécharger 5.3 Thread Safe (TS) x86
extraire et copier les dll

copier libzmq.dlldans
C: \ wamp \ bin \ php \ php5.3.4
il n'y libsodium.dllen a pas dans PHP 5.3

copier php_zmq.dlldans
C: \ wamp \ bin \ php \ php5.3.4 \ ext

ajoutez l'extension à votre php.ini,
généralement avec les autres extensions dynamiques

extension=php_zmq.dll

  • pour PHP 7.1

télécharger 7.1 Thread Safe (TS) x64
extraire et copier les dll

copier libzmq.dllet libsodium.dlldans
C: \ laragon \ bin \ php \ php-7.1.20-Win32-VC14-x64
il y a une DLL supplémentaire libsodium.dllpour PHP 7.1

copier php_zmq.dlldans
C: \ laragon \ bin \ php \ php-7.1.20-Win32-VC14-x64 \ ext

ajoutez l'extension à votre php.ini, généralement avec les autres extensions dynamiques

extension=php_zmq.dll

  • pour PHP 7.2

télécharger 7.2 Thread Safe (TS) x64
extraire et copier les dll

copier libzmq.dlldans
C: \ laragon \ bin \ php \ php-7.2.11-Win32-VC15-x64
il n'y a pas libsodium.dllaprès PHP 7.1

copier php_zmq.dlldans
C: \ laragon \ bin \ php \ php-7.2.11-Win32-VC15-x64 \ ext

ajoutez l'extension à votre php.ini, généralement avec les autres extensions dynamiques

extension=zmq

  • vérifier en consultant les informations php
$ php -i | grep zmq  
zmq  
libzmq version => 4.1.3
browniebytes
la source