Установка zeromq на сервер WAMP в Windows 7

9

Я ищу установку 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

Тирумалай Муруган
источник

Ответы:

9

Учитывая, что это лучший результат поиска в 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 рулетку.

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

Mysteryos
источник
Отличный ответ, спасибо. Я искал ссылку на правильные DLL целую вечность.
ibanore
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 \ ext)
  • Я использую 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
Zcythe
источник
1
Да! Хороший улов копирование libzmq.dllи libsodium.dllв php root dir
manix
"Скопировать libzmq.dll в корневой каталог php bin" сделал работу .. .ty
Сид
2

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

Monte
источник
откуда мы можем взять эту dll, можешь поделиться со мной?
Тирумалай Муруган
0

Я следовал инструкциям @Mysteryos и @Zcythe, но все еще получал сообщение об ошибке Unable to load module, поэтому после просмотра форумов 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)

Приветствую!

Ultranuke
источник
0

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

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

$ 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
нет libsodium.dllв PHP 5.3

скопировать php_zmq.dllв
C: \ wamp \ bin \ php \ php5.3.4 \ ext

добавьте расширение к вашему 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 \ ext

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

extension=php_zmq.dll

  • для PHP 7.2

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

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

скопировать php_zmq.dllв
C: \ laragon \ bin \ php \ php-7.2.11-Win32-VC15-x64 \ ext

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

extension=zmq

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