Как установить расширение PHP 7 «memcached» в Windows

У меня большие проблемы с установкой расширения memcached для php.

В настоящее время используется:

ОС: Windows 10 x64
PHP: 7.0.1 через XAMPP
Apache: 2.4.18 (Win32)

Я успешно установил memcached в C:/memcached служба запущена.

Но проблема возникает при попытке добавить расширение memcache php. Я пробовал множество версий php_memcache.dll и не работал.
Я включил расширение в extension=php_memcache.dll php.ini extension=php_memcache.dll

Когда я запускаю php -m memcache, не указан и в верхней части я получаю ошибку:

Запуск PHP: невозможно загрузить динамическую библиотеку «C: \ xampp \ php \ ext \ php_memcache.dll»
– Указанный модуль не может быть найден.

И когда я пытаюсь запустить test.php для инициализации memcache, я получаю Class not found exception

Это огромная проблема, потому что мне это нужно для проведения тестов на селен.

Служба memcached фактически не устанавливает расширение PHP memcached для вас. Он устанавливает только сервер memcached, используемый для хранения вашего кеша.

Сначала вам нужно загрузить DLL Windows из репозитория PECL ( щелкните по голубой ссылке Windows DLL ). Затем вы должны добавить строку extension=php_memcache.dll в правильный файл php.ini для вашего SAPI. Также обратите внимание, что DLL-файл расширения должен быть помещен в правильный путь для вашей установки XAMPP.

Для Apache просто создайте скрипт в корне вашего документа с помощью строки <?php phpinfo(); и попробуйте загрузить его в своем веб-браузере. Вы должны увидеть строку вверху с надписью Loaded configuration (php.ini), которая дает вам полный путь к вашему загруженному файлу php.ini. В Windows путь может выглядеть иначе, чем указано в phpinfo() если вы установили PHP через что-то вроде XAMPP. Поэтому вам может понадобиться полагаться на XAMPP, чтобы найти правильный файл php.ini.

Для CLI SAPI вы можете использовать php.exe --ini чтобы сделать то же самое. Опять же, вам может потребоваться полагаться на пакет XAMPP, если он изменил ваш путь к конфигурации ( поскольку это директива времени компиляции ).

После внесения изменений в php.ini вам нужно будет перезапустить PHP, чтобы изменения вступили в силу.


Поскольку вы используете PHP 7 в Windows, вероятно, также важно отметить, что скомпилированная DLL из PECL не может работать под apache для Windows, потому что вы, скорее всего, используете тегированный SAPI. Поэтому убедитесь, что вы загружаете правильную версию. Насколько я могу судить, эта версия компилируется только для работы с PHP 5.6. Альтернатива github для PHP 7, доступная по адресу https://github.com/nono303/PHP7-memcahe-dll, как упоминается в комментариях, тестируется под безопасным потоком. Таким образом, вы можете только получить эту работу для ваших сценариев CLI в Windows.