Class 'Memcached' not found

Обсуждение проблем в работе программного комплекса
Ashterix
Сообщения: 3
Зарегистрирован:
06 фев 2015, 19:44
Откуда: Одесса

Class 'Memcached' not found

Ashterix » 07 сен 2015, 09:38

Здравствуйте.
Искал на форуме и в интернетах, но не нашёл подобной темы. Если вопрос уже обсуждался, прошу направить в нужную тему.

Строка
<?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?
Аватара пользователя
Максим
Сообщения: 5385
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 07 сен 2015, 09:57

Ashterix, для PHP существует два расширения: Memcache и Memcached. В состав Open Server включено расширение Memcache. Вы же пытаетесь вызвать Memcached, которого нет. PHP код для работы с расширениями немного отличается, например:
$memcache = new Memcache;
$memcacheD = new Memcached;
$memcache->addServer($host);
$memcacheD->addServers($servers);
Ashterix писал(а):Почему в настройках openserver указан модуль Memcached, а по факту получается Memcache без d?
Модуль не имеет никакого отношения к PHP расширениям. Это разные вещи.
Ashterix писал(а):Существует ли какой-то костыль, чтобы в итоге получить memcached?
Насколько я знаю memcached расширения для Windows нет.
Ashterix
Сообщения: 3
Зарегистрирован:
06 фев 2015, 19:44
Откуда: Одесса

Ashterix » 07 сен 2015, 10:29

Максим, спасибо за быстрый ответ.
Максим писал(а):Модуль не имеет никакого отношения к PHP расширениям. Это разные вещи.
Понятно.
Максим писал(а):Насколько я знаю memcached расширения для Windows нет.
Знал об этом. Но надеялся, что может информация устарела и что-то появилось.
Максим писал(а): PHP код для работы с расширениями немного отличается, например:
$memcache = new Memcache;
$memcacheD = new Memcached;
$memcache->addServer($host);
$memcacheD->addServers($servers);
.
Спасибо, я в курсе. Просто в наследство достался проект в котором используется именно memcached. Видимо придётся vagrant использовать.
S1LVER
Сообщения: 10
Зарегистрирован:
12 дек 2014, 07:40

Re: Class 'Memcached' not found

S1LVER » 11 ноя 2016, 13:53

Доброго времени суток!
Прочитал тему, вроде бы ничего нового, про это знаю. Но... если указывать Memcache - то все равно получаю ошибку о не установленном расширении.

Windows 10x64
Open Server 5.2.5x64
PHP 7
Memcached - 1.4
Аватара пользователя
Максим
Сообщения: 5385
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Re: Class 'Memcached' not found

Максим » 11 ноя 2016, 17:18

В комплекте с PHP7 нет этого расширения, поэтому неудивительно.
aoglib
Сообщения: 1
Зарегистрирован:
12 янв 2017, 13:29

Re: Class 'Memcached' not found

aoglib » 12 янв 2017, 13:32

И все же, мне для разработки нужен PHP расширение Memcached, как я могу его добавить и где скачать dll или что там надо ?

P.S. на сервере debian оно идет как libmemcached5 php5-memcached
Аватара пользователя
konserv
Сообщения: 1
Зарегистрирован:
10 фев 2017, 12:58
Откуда: Chernivtsi
Контактная информация:

Re: Class 'Memcached' not found

konserv » 10 фев 2017, 13:10

Memcached для PHP7 не нашел, зато нашел Memcache (которого нет в OpenServer):
https://github.com/nono303/PHP7-memcache-dll

Было бы нелохо добавить его в OpenServer.
dimalondon
Сообщения: 2
Зарегистрирован:
07 апр 2016, 13:13

Re: Class 'Memcached' not found

dimalondon » 20 май 2017, 21:42

konserv писал(а):Memcached для PHP7 не нашел, зато нашел Memcache (которого нет в OpenServer):
https://github.com/nono303/PHP7-memcache-dll

Было бы нелохо добавить его в OpenServer.
Скачал эти файлы с ГитХаба, но никак не получается подключить 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.
Аватара пользователя
Максим
Сообщения: 5385
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Re: Class 'Memcached' not found

Максим » 20 май 2017, 22:50

dimalondon, мало положить файлы, нужно еще в шаблон конфига прописать это расширение.
dimalondon
Сообщения: 2
Зарегистрирован:
07 апр 2016, 13:13

Re: Class 'Memcached' not found

dimalondon » 21 май 2017, 15:22

Максим, большое человеческое спасибо, все получилось!
Ответить