8

Я ищу установку zeromq на моем компьютере с Windows 7 для использования zeromq с PHP (я использую сервер WAMP (5.3.4), Apache Server 2.2.17).

Я следил за документацией на их сайте, но я не знаю, что делать. Я установил zeromq со следующего сайта, затем попытался скопировать dll с этого сайта, но он не работает.

Где взять DLL? Я хочу установить только установщик Windows по этой ссылке или есть что-то еще?

Я скачал dll с этого сайта http://178.79.157.189/~mikko/win32/php-zmq-win32.zip


Я использую версию PHP 5.3.4 x64 и Windows 7 x64. Я попробовал следующие шаги:

  1. Я установил ZeroMQ-3.2.2rc2~miru1.5-x64
  2. скопировал libzmq.dll в c:\wamp\bin\php\php5.3.4
  3. скопировал php-zmq\php53\php53-ts_zeromq-3.2.2 в c:\wamp\bin\php\php5.3.4\ext
  4. включил расширение php_zmq в php.ini
  5. Я перезапустил WAMP. Это показывает

    'c:/wamp/bin/php/php5.3.4/ext/php_zmq.dll' -% 1 не является допустимым приложением win32

В чем может быть проблема?

Я снова попробовал с версией Wamp x86(php 5.4.3) и windows 7 x64

  1. Я установил ZeroMQ-3.2.2rc2~miru1.5-x86.exe
  2. скопировал libzmq.dll в c:\wamp\bin\php\php5.4.3
  3. скопировал php-zmq\php54\php54-ts_zeromq-3.2.2 в c:\wamp\bin\php\php5.4.3\ext
  4. включил расширение php_zmq в php.ini
  5. Я перезапустил WAMP. Это показывает

    Запуск PHP: невозможно загрузить динамическую библиотеку 'c:/wamp/bin/php/php5.4.3/ext/php_zmq.dll' - указанный модуль не найден.\ R \ n в поле Неизвестно в строке 0

5 ответов5

8

Учитывая, что это лучший результат поиска в Google для проблем zeromq dll с PHP на windows, я добавляю к нему свои два цента.

Правильные шаги по настройке zeroMQ с PHP:

1) Загрузите правильный пакет DLL для PHP

Страница загрузки DLL для PHP ZeroMQ теперь находится по адресу http://pecl.php.net/package/zmq (http://snapshot.zeromq.com не работает) Крошечная ссылка «DLL» будет присутствовать рядом с каждым «доступным выпуском» ». Это твоя ссылка. Нажмите на нее и выберите свою dll в зависимости от версии PHP и от того, является ли он потокобезопасным (TS) или не потоковым (NTS).

Если вы пришли из пакета XAMPP, ваша DLL должна иметь версию TS & x86.

2) Убедитесь, что у вас установлен правильный распространяемый пакет Microsoft Visual C++.

На момент написания статьи верной версией является версия 2012 года. Ссылка для загрузки пакета: http://www.microsoft.com/en-us/download/details.aspx?id=30679

3) Скопируйте phpzmq.dll и libzmq.dll (из пакета dll на шаге 1) в каталог PHP\Extensions (по умолчанию путь XAMPP php ext: C:\xampp\php\ext)

4) Добавьте phpzmq.dll в ваш PHP.ini

5) Добавьте каталог PHP\extensions в системные переменные окружения PATH (очень важно) и перезагрузите компьютер

После перезапуска, запустите Apache и молитесь богам PHP.

FAQ по распространенным ошибкам:

1) У меня есть всплывающее окно с сообщением «libzmq.dll отсутствует на моем компьютере» при запуске apache.

Хорошо, черт возьми, убедитесь, что вы выполнили шаг 5 до буквы и убедитесь, что путь к каталогу указан правильно и dll присутствует в этом каталоге.

2) Еще одно всплывающее окно «php5.dll» отсутствует на моем компьютере »при запуске apache.

Похоже, вы получили неправильную DLL для вашей версии PHP. Загрузите правильный с шага 1.

3) Появилось случайное всплывающее окно, в котором говорится, что «phpzmq.dll» не является допустимым приложением win 32 ».

Эта DLL все еще не верна. Убедитесь, что вы выбрали правильный вариант (x86 или x64) и что он безопасен как для многопоточных, так и для многопоточных. Как бы вы узнали? Время играть в DLL рулетку.

Надеясь на этот пост, на самом деле помогает пользователям, которые попадают сюда :)

3

Ответ @ Mysteryos довольно информативный, но неточный. Есть несколько ошибок в шагах 3 и 4, о которых стоит упомянуть.

Правильная процедура на сервере WAMP
Шаг 3)

  • i) Скопируйте libzmq.dll в корневой каталог php bin (например, C:\ WAMP \ Bin \ PHP \ php5.5.12)
  • ii) Скопируйте php_zmq.dll в каталог расширений php (например, C:\ WAMP \ Bin \ PHP \ php5.5.12 \ внутр)
  • Я использую php_zmq-1.1.2-5.5-ts-vc11-x64.zip (php 5.5, thread safe), который можно получить по этой ссылке http://pecl.php.net/package/zmq.
  • Убедитесь, что вы скачали ту, которая соответствует вашей версии php (5.x), иначе вы получите сообщение "Другое всплывающее сообщение", что php5.dll отсутствует на моем компьютере при запуске apache.


Шаг 4)
Добавьте объявление phpzmq.dll в ваш PHP.ini

Важно отметить, что в каталоге сервера WAMP есть немного php.ini.
Правильный php находится в C:\wamp\bin\apache\apache2.4.9\php.ini
Добавьте следующую декларацию в php.ini, упомянутый выше.

[ZMQ]
extension=php_zmq.dll
2

У меня такая же проблема. Использование dll из php-zmq_zeromq-{version}-zts проблему для меня.

0

Действия по установке zeroMQ в PHP 5.3, PHP 7.1 и 7.2 в Windows

Скорее всего, вам нужна версия PHP, x64 и Thread Safe
но у вас может быть x32 версия PHP

$ php -i | grep Architecture  
Architecture => x64
  • для PHP 5.3

скачать 5.3 Thread Safe (TS) x86
извлечь и скопировать DLL

скопировать libzmq.dll в
C:\ WAMP \ Bin \ PHP \ php5.3.4
в PHP 5.3 нет libsodium.dll

скопировать php_zmq.dll в
C:\ WAMP \ Bin \ PHP \ php5.3.4 \ внутр

добавьте расширение к вашему php.ini,
обычно с другими динамическими расширениями

extension=php_zmq.dll

  • для PHP 7.1

скачать 7.1 Thread Safe (TS) x64
извлечь и скопировать DLL

скопировать libzmq.dll и libsodium.dll в
C:\laragon\ Bin \ PHP \ PHP-7.1.20-Win32-VC14-x64
есть дополнительная dll libsodium.dll для PHP 7.1

скопировать php_zmq.dll в
C:\laragon\ Bin \ PHP \ PHP-7.1.20-Win32-VC14-x64 \ внутр

добавьте расширение к вашему php.ini, обычно с другими динамическими расширениями

extension=php_zmq.dll

  • для PHP 7.2

скачать 7.2 Thread Safe (TS) x64
извлечь и скопировать DLL

скопировать libzmq.dll в
C:\laragon\ Bin \ PHP \ PHP-7.2.11-Win32-VC15-x64
после PHP 7.1 нет libsodium.dll

скопировать php_zmq.dll в
C:\laragon\ Bin \ PHP \ PHP-7.2.11-Win32-VC15-x64 \ внутр

добавьте расширение к вашему php.ini, обычно с другими динамическими расширениями

extension=zmq

  • проверить, просмотрев информацию php
$ php -i | grep zmq  
zmq  
libzmq version => 4.1.3
0

Я следовал инструкциям @Mysteryos и @Zcythe, но все еще получал сообщение «Не удалось загрузить модуль», поэтому после просмотра форумов WAMP на французском языке я заставил его работать после следующих изменений после шага 4:

Отредактируйте файл config.inc.php, расположенный в C:\wamp\scripts

Ищу:

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

А затем добавьте 2 библиотеки ZeroMQ, чтобы они выглядели так:

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

Перезапустите WAMP, и он должен работать правильно.

Я проверил это с помощью следующей библиотеки ZMQ:

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

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

Привет!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .