Windows 7 WAMPサーバーへのzeromqのインストール


9

PHPでzeromqを使用するために、Windows 7マシンにzeromqをインストールすることを探しています(WAMPサーバー(5.3.4)、Apacheサーバー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

これがWindowsでのPHPに関するzeromq dllの問題に対するGoogleでのトップの検索結果であることを考慮して、2セント追加します。

PHPでzeroMQを設定するための適切な手順:

1)PHP用の正しいDLLパッケージをダウンロードする

PHP ZeroMQのDLLダウンロードページはhttp://pecl.php.net/package/zmqにありますhttp://snapshot.zeromq.com is dead)小さな 'DLL'リンクが各 '利用可能なリリースの横に表示されます'。それはあなたのリンクです。それをクリックし、PHPのバージョンと、スレッドセーフ(TS)か非スレッドセーフ(NTS)かに基づいてDLLを選択します。

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を(ステップ1のdllパッケージから)PHP \ Extensionsディレクトリにコピーします(デフォルトのXAMPP php extパスはC:\ xampp \ php \ extです)

4)phpzmq.dllをPHP.iniに追加します

5)PHP \ extensionsディレクトリをPATHシステム環境変数に追加し(非常に重要)、マシンを再起動します

再起動したら、Apacheを起動し、PHPの神々に祈ります。

一般的なエラーに関するFAQ:

1)Apacheを起動すると、「コンピュータに「libzmq.dll」がありません」というポップアップが表示されます。

わかりました、ステップ5に従って文字を確認し、ディレクトリパスが正しく、dllがそのディレクトリに存在することを確認してください。

2)Apacheの起動時に、「php5.dllがコンピュータにありません」という別のポップアップが表示されます。

お使いのphpバージョンに対して間違ったdllを取得したようです。手順1から正しいものをダウンロードします。

3)「 'phpzmq.dll'は有効なwin 32アプリケーションではありません。」と言うランダムなポップアップが表示されました。

そのDLLはまだ正しくありません。正しいもの(x86またはx64)を入手し、それがスレッドセーフまたは非スレッドセーフであることを確認してください。どうやって知る?DLLルーレットをプレイする時間です。

この投稿が実際にここに上陸したユーザーに役立つことを願っています:)


素晴らしい回答ありがとうございます。私は長い間、正しいdllへのリンクを探していました。
ibanore 2014

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)
  • このリンクhttp://pecl.php.net/package/zmqから取得できるphp_zmq-1.1.2-5.5-ts-vc11-x64.zip(php 5.5、スレッドセーフ)を使用してい ます。
  • phpのバージョン(5.x)に一致するものをダウンロードしてください。そうしないと、「apacheの起動時に「php5.dll」がコンピュータから見つからないという別のポップアップ」エラーが表示されます。


ステップ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

1
うん!ナイスキャッチコピーlibzmq.dlllibsodium.dllphp root dir
manix

job..ty「コピーは、PHPのビンのルートディレクトリにlibzmq.dll」やった
シド

2

私も同じ問題を抱えていました。php-zmq_zeromq-{version}-ztsフォルダからdllを使用すると、問題が解決しました。


そのdllを取得できる場所から共有できますか?
Thirumalai murugan 2013

0

@Mysteryosと@Zcytheの指示に従いましたが、モジュールをロードできませんというエラーがまだ表示されていたため、WAMPフォーラムをフランス語で確認した後、手順4の次の変更に従って機能しました。

C:\ wamp \ scriptsにあるconfig.inc.phpファイルを編集します

探す:

$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スレッドセーフ(TS)x64、PHP 7.0.10)

こんにちは!


0

Windows上のPHP 5.3、PHP 7.1、および7.2にzeroMQをインストールする手順

ほとんどの場合、PHPバージョン、x64、およびスレッドセーフ
が必要ですが、x32バージョンのPHPを使用している可能性があります

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

5.3スレッドセーフ(TS)x86をダウンロードし
てDLLを抽出してコピーする

コピーlibzmq.dll
C:\ WAMP \ binに\ PHP \ php5.3.4
一切ありませんlibsodium.dllPHP 5.3に

C:\ wamp \ bin \ php \ php5.3.4 \ extにコピーphp_zmq.dllします

php.iniに拡張機能を追加します。
通常、他の動的拡張機能を使用します

extension=php_zmq.dll

  • PHP 7.1

7.1スレッドセーフ(TS)x64
抽出をダウンロードしてDLLをコピーする

C:\ laragon \ bin \ php \ php-7.1.20-Win32-VC14-x64 にコピーlibzmq.dlllibsodium.dllて、PHP 7.1用の追加のDLL があります

libsodium.dll

C:\ laragon \ bin \ php \ php-7.1.20-Win32-VC14-x64 \ extにコピーphp_zmq.dllします

php.iniに拡張機能を追加します。通常、他の動的拡張機能を使用します

extension=php_zmq.dll

  • PHP 7.2

7.2スレッドセーフ(TS)x64をダウンロードし
てDLLを抽出してコピーする

C:\ laragon \ bin \ php \ php-7.2.11-Win32-VC15-x64 にコピーlibzmq.dllします
。PHP7.1 以降
はありません。libsodium.dll

C:\ laragon \ bin \ php \ php-7.2.11-Win32-VC15-x64 \ extに コピーphp_zmq.dllします

php.iniに拡張機能を追加します。通常、他の動的拡張機能を使用します

extension=zmq

  • PHP情報を表示して確認する
$ php -i | grep zmq  
zmq  
libzmq version => 4.1.3
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.