2016-08-23 119 views
2

我在安裝php的memcached擴展時遇到了很大的問題。如何在Windows上安裝PHP 7擴展「memcached」

目前正在使用:

操作系統:Windows 10的x64
PHP:7.0.1通過XAMPP
的Apache:2.4.18的(Win32)

我已經成功地安裝在C:/memcached分佈式緩存服務正在運行。

但是,當試圖添加memcache php擴展時,問題就開始了。我已經嘗試了php_memcache.dll的許多版本,而且似乎沒有工作。
我沒有包括在php.iniextension=php_memcache.dll

擴展當我運行php -m內存緩存未列出,並在頂部我收到的錯誤:

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

,當我嘗試運行測試。 PHP的memcache初始化我recive 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()中的內容不同。所以你可能需要依靠XAMPP來找到正確的php.ini文件。

對於CLI SAPI,可以使用php.exe --ini來做同樣的事情。同樣,如果修改了配置路徑(,因爲這是編譯時指令),您可能需要依賴XAMPP程序包。

對php.ini進行更改後,您需要重新啓動PHP才能使更改生效。


既然你在Windows上使用PHP 7,它可能還需要注意的是,從PECL編譯的DLL可能無法在Apache實際工作的Windows,因爲你很可能使用theaded SAPI多。所以確保你正在下載正確的版本。據我所知,該版本只能編譯到PHP 5.6以上。在評論中提到的github替代方案,對於PHP 7,在https://github.com/nono303/PHP7-memcahe-dll處可用,在非線程安全下進行測試。所以你可能只能在Windows上爲你的CLI腳本工作。

+0

非常感謝您花時間撰寫這樣詳細的回覆。是的,我知道它沒有,我試圖下載他們在PECL提供的每一個.dll文件,但無濟於事。正如指南指出的那樣,'extension = php_memcache.dll'已經添加到我的* php.ini *中。和該DLL文件一起放置其他'C:\ xampp \ php \ ext'。但是STILL memcache不在'phpinfo()'或'php -m'列表中。 'php -m'列表仍然給出了提到的錯誤。 +在進行更改後,我確實重新啓動了* Apache *。 – Mihailo

+1

Ahhh我還沒有嘗試過所有的dll-s從這個倉庫... ** x86 ts **做了詭計。非常感謝@Sherif:] – Mihailo

+0

太棒了,很高興知道它的工作。嘗試錯誤的版本通常是人們在Windows上遇到的最常見錯誤之一。 – Sherif