Instalowanie zeromq na serwerze WAMP systemu Windows 7

9

Szukam instalacji zeromq na moim komputerze z systemem Windows 7 do używania zeromq z PHP (używam serwera WAMP (5.3.4), serwera Apache 2.2.17).

Postępowałem zgodnie z dokumentacją na ich stronie , ale nie wiem, co robić. Zainstalowałem zeromq z następującej witryny , a następnie próbowałem skopiować dll z tej witryny, ale nie działa.

Gdzie mogę uzyskać bibliotekę DLL? Czy chcę zainstalować tylko instalator Windows z tego łącza , czy jest coś jeszcze potrzebnego?

Pobrałem dll z tej strony http://178.79.157.189/~mikko/win32/php-zmq-win32.zip


Używam wersji PHP 5.3.4 x64 i Windows 7 x64. Próbowałem następujących kroków:

  1. Zainstalowałem ZeroMQ-3.2.2rc2~miru1.5-x64
  2. skopiowane libzmq.dlldoc:\wamp\bin\php\php5.3.4
  3. skopiowane php-zmq\php53\php53-ts_zeromq-3.2.2 doc:\wamp\bin\php\php5.3.4\ext
  4. włączono php_zmqrozszerzenie wphp.ini
  5. Zrestartowałem WAMP. To pokazuje

    'c:/wamp/bin/php/php5.3.4/ext/php_zmq.dll' -% 1 nie jest prawidłową aplikacją dla win32

Co może być problemem?

Znów próbowałem z wersją Wamp x86 (php 5.4.3) i Windows 7 x64

  1. Zainstalowałem ZeroMQ-3.2.2rc2~miru1.5-x86.exe
  2. skopiowane libzmq.dlldoc:\wamp\bin\php\php5.4.3
  3. skopiowane php-zmq\php54\php54-ts_zeromq-3.2.2 doc:\wamp\bin\php\php5.4.3\ext
  4. włączono php_zmqrozszerzenie wphp.ini
  5. Zrestartowałem WAMP. To pokazuje

    Uruchomienie PHP: Nie można załadować biblioteki dynamicznej „c: /wamp/bin/php/php5.4.3/ext/php_zmq.dll” - Nie można znaleźć określonego modułu. \ R \ n w Nieznany w wierszu 0

Thirumalai murugan
źródło

Odpowiedzi:

9

Biorąc pod uwagę, że jest to najlepszy wynik wyszukiwania w Google dla problemów z biblioteką DLL zeromq z Windows w Windowsie, dodaję do niego moje dwa centy.

Właściwe kroki do konfiguracji zeroMQ z PHP:

1) Pobierz odpowiedni pakiet DLL dla PHP

Strona pobierania DLL dla PHP ZeroMQ znajduje się teraz pod adresem http://pecl.php.net/package/zmq ( http://snapshot.zeromq.com nie żyje) Przy każdym dostępnym wydaniu pojawi się mały link „DLL” „. To twój link. Kliknij i wybierz bibliotekę DLL na podstawie wersji PHP i tego, czy jest to wątek Safe (TS) czy Non-Thread Safe (NTS).

Jeśli pochodzisz z pakietu XAMPP, twoja biblioteka DLL powinna mieć wersję TS i x86 .

2) Upewnij się, że masz zainstalowany poprawny pakiet redystrybucyjny Microsoft Visual C ++.

W chwili pisania tego tekstu poprawną wersją jest wersja z 2012 r. Link do pobrania pakietu: http://www.microsoft.com/en-us/download/details.aspx?id=30679

3) Skopiuj phpzmq.dll i libzmq.dll (z pakietu dll w kroku 1) do katalogu PHP \ Extensions (Domyślna ścieżka rozszerzenia php XAMPP to: C: \ xampp \ php \ ext)

4) Dodaj plik phpzmq.dll do pliku PHP.ini

5) Dodaj katalog PHP \ extensions do zmiennych środowiskowych systemu PATH (bardzo ważne) i uruchom ponownie komputer

Po ponownym uruchomieniu uruchom apache i módl się do bogów PHP.

Często zadawane pytania dotyczące typowych błędów:

1) Mam wyskakujące okienko z informacją: „Na moim komputerze brakuje„ libzmq.dll ”podczas uruchamiania apache.

O kurwa, upewnij się, że wykonałeś krok 5 do litery i sprawdź, czy ścieżka katalogu jest poprawna i dll znajduje się w tym katalogu.

2) Kolejne wyskakujące okienko z informacją „„ php5.dll ”brakuje na moim komputerze” podczas uruchamiania apache.

Wygląda na to, że masz niewłaściwy dll dla twojej wersji php. Pobierz prawidłowy z kroku 1.

3) Pojawiło się losowe okienko z komunikatem „phpzmq.dll” nie jest prawidłową aplikacją dla systemu Windows 32. ”

Ta biblioteka DLL jest nadal niepoprawna. Upewnij się, że masz właściwy (x86 lub x64) i że jest bezpieczny dla wątków lub nie dla wątków. Skąd mógłbyś wiedzieć? Czas zagrać w ruletkę DLL.

Mam nadzieję, że ten post rzeczywiście pomoże użytkownikom, którzy tu wylądują :)

Mysteryos
źródło
Świetna odpowiedź dzięki. Od wieków szukałem linku do prawidłowej biblioteki DLL.
ibanore
3

@ Odpowiedź Mysteryosa jest dość pouczająca, ale jest niedokładna. Warto wspomnieć o kilku błędach w krokach 3 i 4.

Prawidłowa procedura na serwerze WAMP
Krok 3)

  • i) Skopiuj libzmq.dll do katalogu głównego bin php bin (np. C: \ wamp \ bin \ php \ php5.5.12)
  • ii) Skopiuj php_zmq.dll do katalogu rozszerzeń php (np. C: \ wamp \ bin \ php \ php5.5.12 \ ext)
  • Korzystam z php_zmq-1.1.2-5.5-ts-vc11-x64.zip (php 5.5, bezpieczny wątek), który można uzyskać pod tym linkiem http://pecl.php.net/package/zmq .
  • Upewnij się, że pobierasz ten, który pasuje do twojej wersji php (5.x), w przeciwnym razie pojawi się komunikat „Kolejne wyskakujące okienko z informacją„ „php5.dll” brakuje na moim komputerze „podczas uruchamiania apache”


Krok 4)
Dodaj deklarację phpzmq.dll do pliku PHP.ini

Ważne jest, aby zauważyć, że w katalogu serwera WAMP jest niewiele plików php.ini.
Prawidłowy php znajduje się w C: \ wamp \ bin \ apache \ apache2.4.9 \ php.ini
Dołącz następującą deklarację do wspomnianego wyżej php.ini.

[ZMQ]
extension=php_zmq.dll
Zcythe
źródło
1
Tak! Ładne kopiowanie libzmq.dlllibsodium.dll
haseł
„Skopiuj libzmq.dll do katalogu głównego bin php” wykonał zadanie ..ty
Sid
2

Miałem ten sam problem. Użycie dll z php-zmq_zeromq-{version}-ztsfolderu naprawiło problem.

Monte
źródło
skąd możemy uzyskać dll, czy możesz mnie udostępnić?
Thirumalai murugan
0

Postępowałem zgodnie z instrukcjami @Mysteryos i @Zcythe, ale nadal otrzymywałem błąd modułu Nie można załadować, więc po przejrzeniu forów WAMP w języku francuskim zacząłem działać po kolejnych zmianach po kroku 4:

Zmodyfikuj plik config.inc.php znajdujący się w C: \ wamp \ scripts

Szukać:

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

A następnie dodaj 2 biblioteki ZeroMQ, aby wyglądało to tak:

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

Uruchom ponownie WAMP i musi działać poprawnie.

Testowałem to z następującą biblioteką ZMQ:

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

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

Pozdrowienia!

Ultranuke
źródło
0

Kroki, aby zainstalować zeroMQ w PHP 5.3, PHP 7.1 i 7.2 w systemie Windows

Najprawdopodobniej potrzebujesz wersji PHP, x64 i Thread Safe,
ale możesz mieć wersję x32 PHP

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

pobierz 5.3 Thread Safe (TS) x86
wypakuj i skopiuj biblioteki dll

skopiuj libzmq.dlldo
C: \ wamp \ bin \ php \ php5.3.4
nie ma go libsodium.dllw PHP 5.3

skopiuj php_zmq.dlldo
C: \ wamp \ bin \ php \ php5.3.4 \ ext

dodaj rozszerzenie do pliku php.ini,
zwykle razem z innymi rozszerzeniami dynamicznymi

extension=php_zmq.dll

  • dla PHP 7.1

pobierz 7.1 Bezpieczny wątek (TS) x64
wypakuj i skopiuj biblioteki dll

skopiuj libzmq.dlli libsodium.dlldo
C: \ laragon \ bin \ php \ php-7.1.20-Win32-VC14-x64
jest dodatkowa biblioteka DLL libsodium.dlldla PHP 7.1

skopiuj php_zmq.dlldo
C: \ laragon \ bin \ php \ php-7.1.20-Win32-VC14-x64 \ ext

dodaj rozszerzenie do pliku php.ini, zwykle razem z innymi rozszerzeniami dynamicznymi

extension=php_zmq.dll

  • dla PHP 7.2

pobierz 7.2 Bezpieczny wątek (TS) x64
wypakuj i skopiuj biblioteki dll

skopiuj libzmq.dlldo
C: \ laragon \ bin \ php \ php-7.2.11-Win32-VC15-x64
nie ma libsodium.dllpo PHP 7.1

skopiuj php_zmq.dlldo
C: \ laragon \ bin \ php \ php-7.2.11-Win32-VC15-x64 \ ext

dodaj rozszerzenie do pliku php.ini, zwykle razem z innymi rozszerzeniami dynamicznymi

extension=zmq

  • zweryfikuj, przeglądając informacje php
$ php -i | grep zmq  
zmq  
libzmq version => 4.1.3
browniebytes
źródło