web-dev-qa-db-ja.com

WindowsにPHP 7拡張機能 "memcache"をインストールする方法

Php用のmemcached拡張機能のインストールで大きな問題が発生しています。

現在使用中:

OS:Windows 10 x64
PHP:7.0.1経由[〜#〜] xampp [〜#〜]
Apache:2.4.18(Win32)

サービスが実行されているC:/memcachedにmemcachedを正常にインストールしました。

しかし、問題はmemcachephp拡張機能を追加しようとすると始まります。 php_memcache.dllの多数のバージョンを試しましたが、機能していないようです。
php.iniextension=php_memcache.dllに拡張子を含めました

php -mを実行すると、memcacheがリストに表示されず、上部にエラーが表示されます。

PHPの起動:ダイナミックライブラリを読み込めません 'C:\ xampp\php\ext\php_memcache.dll'
- 指定されたモジュールが見つかりませんでした。

そして、memcacheの初期化のためにtest.phpを実行しようとすると、Class not found exceptionを受け取ります。

Seleniumテストを実行するために必要なので、これは大きな問題です。

5
Mihailo

Memcachedサービスは、実際にはPHP memcached拡張機能をインストールしません。キャッシュの保存に使用されるmemcachedサーバーのみをインストールします。

Windows DLL PECLリポジトリから 最初に(青いWindowsをクリックDLL link)。次に、SAPIの正しいphp.iniファイルに_extension=php_memcache.dll_行を追加する必要があります。また、拡張子DLLファイルのニーズに注意してください。 XAMPPインストールの正しいパスに配置されます。

Apacheの場合は、ドキュメントルートに<?php phpinfo();行のスクリプトを作成し、それをWebブラウザにロードしてみてください。上部にLoaded configuration(php.ini)というラベルの付いた行が表示され、ロードされたphp.iniファイルへのフルパスが示されます。 Windowsでは、XAMPPなどを使用してPHPをインストールした場合、パスは実際には phpinfo() に記載されているものとは異なるように見える場合があります。 XAMPPを使用して、正しいphp.iniファイルを見つけます。

CLI SAPIの場合、_php.exe --ini_を使用して同じことを行うことができます。繰り返しになりますが、構成パスが変更されている場合は、XAMPPパッケージに依存する必要があります(これはコンパイル時のディレクティブであるため)。

Php.iniに変更を加えた後、変更を有効にするにはPHP)を再起動する必要があります。


WindowsでPHP 7を使用しているので、PECLからコンパイルされたDLLは、Apache forWindowsでは実際には機能しない可能性があることに注意することもおそらく重要です。 'おそらく、Aded SAPIを使用しています。したがって、正しいバージョンをダウンロードしていることを確認してください。私が知る限り、バージョンはPHP 5.6まで)で動作するようにコンパイルされているだけです。github代わりに、PHP 7、 https://github.com/nono303/PHP7-memcahe-dll で入手可能)の場合、コメントに記載されているように、非スレッドでテストされますしたがって、これをWindowsのCLIスクリプトでのみ機能させることができる場合があります。

7
Sherif