Страница 1 из 3
Class 'Memcached' not found
Добавлено: 07 сен 2015, 09:38
Ashterix
Здравствуйте.
Искал на форуме и в интернетах, но не нашёл подобной темы. Если вопрос уже обсуждался, прошу направить в нужную тему.
Строка
<?php
$memcached = new Memcached();
вызывает ошибку
Fatal error: Class 'Memcached' not found in ...
Windows7 Professional SP1
Версия OpenSerder 5.2.2
Сборка
PHP-5.6
Apache-2.4
Memcached-1.2 (пробовал и Memcached-1.4)
Сервер запускается без проблем.
memcached.exe появляется в процессах.
phpinfo() показывает, что путь
c:\openserver\modules\memcached\Memcached-1.2; прописан в переменных окружения, но больше никаких упоминаний "
memcached" не встречается, но есть целый блок настроек "
memcache". На сколько я понимаю, это разные вещи.
Почему в настройках openserver указан модуль Memcached, а по факту получается Memcache
без d?
Существует ли какой-то костыль, чтобы в итоге получить memcached?
Добавлено: 07 сен 2015, 09:57
Максим
Ashterix, для PHP существует два расширения: Memcache и Memcached. В состав Open Server включено расширение Memcache. Вы же пытаетесь вызвать Memcache
d, которого нет. PHP код для работы с расширениями немного отличается, например:
$memcache = new Memcache;
$memcacheD = new Memcached;
$memcache->addServer($host);
$memcacheD->addServers($servers);
Ashterix писал(а):Почему в настройках openserver указан модуль Memcached, а по факту получается Memcache без d?
Модуль не имеет никакого отношения к PHP расширениям. Это разные вещи.
Ashterix писал(а):Существует ли какой-то костыль, чтобы в итоге получить memcached?
Насколько я знаю memcache
d расширения для Windows нет.
Добавлено: 07 сен 2015, 10:29
Ashterix
Максим, спасибо за быстрый ответ.
Максим писал(а):Модуль не имеет никакого отношения к PHP расширениям. Это разные вещи.
Понятно.
Максим писал(а):Насколько я знаю memcached расширения для Windows нет.
Знал об этом. Но надеялся, что может информация устарела и что-то появилось.
Максим писал(а): PHP код для работы с расширениями немного отличается, например:
$memcache = new Memcache;
$memcacheD = new Memcached;
$memcache->addServer($host);
$memcacheD->addServers($servers);
.
Спасибо, я в курсе. Просто в наследство достался проект в котором используется именно memcache
d. Видимо придётся vagrant использовать.
Re: Class 'Memcached' not found
Добавлено: 11 ноя 2016, 13:53
S1LVER
Доброго времени суток!
Прочитал тему, вроде бы ничего нового, про это знаю. Но... если указывать Memcache - то все равно получаю ошибку о не установленном расширении.
Windows 10x64
Open Server 5.2.5x64
PHP 7
Memcached - 1.4
Re: Class 'Memcached' not found
Добавлено: 11 ноя 2016, 17:18
Максим
В комплекте с PHP7 нет этого расширения, поэтому неудивительно.
Re: Class 'Memcached' not found
Добавлено: 12 янв 2017, 13:32
aoglib
И все же, мне для разработки нужен PHP расширение Memcached, как я могу его добавить и где скачать dll или что там надо ?
P.S. на сервере debian оно идет как libmemcached5 php5-memcached
Re: Class 'Memcached' not found
Добавлено: 10 фев 2017, 13:10
konserv
Memcached для PHP7 не нашел, зато нашел Memcache (которого нет в OpenServer):
https://github.com/nono303/PHP7-memcache-dll
Было бы нелохо добавить его в OpenServer.
Re: Class 'Memcached' not found
Добавлено: 20 май 2017, 21:42
dimalondon
Скачал эти файлы с ГитХаба, но никак не получается подключить Memcache. Беру, к примеру, файл
php-7.1.x_memcache.dll из папки
PHP7-memcache-dll-master/PHP7-memcache-dll-master/vc14/x86/ts/ переименовываю его с стандартное название
php_memcache.dll и ложу в папку
C:/OpenServer/modules/php/PHP-7.1/ext/
В настройках OpenServer выбираю конфигурацию:
HTTP:
Apache-PHP-7+Nginx-1.0
PHP:
7.1
Memcached:
1.4
Перезагружаю OpenServer, но Memcache не работает. Помогите, что я делаю не так?
Версия OpenServer у меня установлена
5.2.6.
Re: Class 'Memcached' not found
Добавлено: 20 май 2017, 22:50
Максим
dimalondon, мало положить файлы, нужно еще в шаблон конфига прописать это расширение.
Re: Class 'Memcached' not found
Добавлено: 21 май 2017, 15:22
dimalondon
Максим, большое человеческое спасибо, все получилось!