2016-08-23 6 views
2

PHPのmemcached拡張機能をインストールするには大きな問題があります。PHP 7エクステンション "memcached"をWindowsにインストールするには

OS::Apacheの
XAMPP 経由7.0.1:Windowsの10のx64
PHP 2.4.18(Win32の)

私は成功しC:/memcachedでのmemcachedをインストールしているが、現在使用して

サービスが実行中です。

しかし、問題はMemcache PHP拡張モジュールを追加しようとすると始まります。私はphp_memcache.dllの多数のバージョンを試しましたが、動作していないようです。私がテストを実行しようとすると、

PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_memcache.dll'
- The specified module could not be found.

をそして:
は、私は私がmemcacheのがリストされていないphp -mを実行して、上部にある私は、エラーを受け取る場合はphp.iniのextension=php_memcache.dll

に拡張子を含めました。 memcacheの初期化のためのphp Class not found exception

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

+1

そのパスを確認してファイルが存在することを確認しましたか? PHPはそれがないと言っているので – Machavity

+1

https://github.com/nono303/PHP7-memcahe-dll –

+0

@Spartan返信ありがとうございます、そのリンクは非常に役に立つようです。しかし、私に指針を与えることができますか(これは初めての拡張機能です)。 'php/ext'に.dllファイルを追加し、' php.in'にその行を追加するだけですか?私はそれをやったが、依然として問題は変わっていない。 – Mihailo

答えて

4

memcachedサービスは実際にPHP memcached拡張をインストールしません。キャッシュを格納するために使用されるmemcachedサーバーのみがインストールされます。

最初にWindows DLL from the PECL repositoryをダウンロードする必要があります(青いWindows DLLのリンクをクリックしてください)。次に、extension=php_memcache.dll行をSAPIの正しいphp.iniファイルに追加する必要があります。また、拡張DLLファイルは、XAMPPインストールの正しいパスに配置する必要があります。

Apacheの場合は、ドキュメントルートに<?php phpinfo();という行でスクリプトを作成し、Webブラウザに読み込んでみてください。一番上の行にという設定が入っています(php.ini)は、読み込んだphp.iniファイルへの完全なパスを提供します。 Windowsでは、XAMPPのようなものを通してPHPをインストールした場合、パスは実際にはphpinfo()に記載されているものとは異なるように見えるかもしれません。したがって、正しいphp.iniファイルを見つけるためにXAMPPに頼る必要があるかもしれません。

CLI SAPIの場合は、php.exe --iniを使用して同じことを行うことができます。ここでも、XAMPPパッケージが設定パスを変更している場合(はコンパイル時の指示文なので)、XAMPPパッケージに依存する必要があります。

php.iniに変更を加えたら、PHPを再起動して変更を有効にする必要があります。


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

+0

このような詳細な回答を書く時間をとってくれてありがとうございました。はい、私はそれがないと私は彼らがPECLで提供したすべての単一の.dllファイルをダウンロードしようとしたが、無駄に知っている。ガイドが指摘しているように、 'extension = php_memcache.dll'がmy * php.ini *に追加されました。そして、dllファイルは他の 'C:\ xampp \ php \ ext'と一緒に置かれました。しかし、まだmemcacheは 'phpinfo()'や 'php -m'リストにありません。 'php -m'リストにも上記のエラーがあります。 +変更を加えた後、Apache *を再起動しました。 – Mihailo

+1

ああ、私はそのリポジトリからdll-sのすべてを試していない... ** x86 ts **はこのトリックを行った。ありがとう@Sherif:] – Mihailo

+0

素晴らしい、それが働いたことを知ってうれしい。間違ったバージョンを試すことは、通常、Windowsでこの問題を抱えている人々の間で最もよくある間違いの1つです。 – Sherif

関連する問題