Class 'Memcached' not found

Обсуждение проблем в работе программного комплекса
4EPHblN
Сообщения: 3
Зарегистрирован:
12 янв 2018, 13:01

Re: Class 'Memcached' not found

4EPHblN » 12 янв 2018, 13:05

Спасибо большое, dimalondon, тоже получилось подключить.

А почему в OS еще не подключено расширение?? — это, вроде, не сложно.
Аватара пользователя
Максим
Сообщения: 5392
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Re: Class 'Memcached' not found

Максим » 12 янв 2018, 13:37

Так а его не существует для php7, расширения этого. Один чувак взял, говорит вот я попробовал сделал порт, вроде работает, но особо не тестировал. Вы это устанавливаете на свой страх и риск. А на деле расширение уже заброшено как 5 лет, последнее обновление было в 2013 году: https://pecl.php.net/package/memcache
Andrei_G_Pastushenko
Сообщения: 1
Зарегистрирован:
08 апр 2018, 02:24

Re: Class 'Memcached' not found

Andrei_G_Pastushenko » 08 апр 2018, 04:19

dimalondon писал(а):
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.
На случай, если кто-то тоже встанет на данном этапе (как правило это пока ещё не совсем опытные разработчики под PHP и именно для вас это пишу), дополню необходимые действия для получения Memcache в актуальной на сегодня сборке OS:

Уточню сразу, что на момент написания в OS имеется PHP 7.2х64, её я использую, а значит в описании будет под неё же. Итак, полный список лично моих, да и необходимых ваших действий:

► Брал dll по указанной Дмитрием ссылке, но самую новую (на момент написания всего как 10 дней) и мне подходящую в директории указанного репозитария .../PHP7-memcache-dll/vc15/x64/ts/php-7.2.x_memcache.dll ;
► Указанную dll переименовал в php_memcache.dll и закинул в директорию \ospanel\modules\php\PHP-7.2-x64\ext (Да, у меня MSWin);
► Далее в директории \OSPanel\userdata\config открывал в редакторе файл PHP-7.2-x64_php.ini, где в блоке с extension прописывал строку (у меня это 160, сразу после ;extension=php_ldap.dll, а как у вас буде не знаю)
extension=php_memcache.dll 
. Дополнительно в блоке [SESSION] поменял способ хранения сессий с файлового на хранение в оперативной памяти (ну мы ж типа ускоряемся). У меня это так:
;session.save_handler = files
session.save_handler = memcache 
;session.save_path = "%sprogdir%/userdata/temp/" 
session.save_path = "tcp://127.0.0.1:11211"
► Перезапускал OS и спокойно пользовался new Memcache под Memcached-1.4-x64

В принципе можно Memcache(d) от энтузиастов (У меня на VPS они идут в комплекте с прочими расширениями :roll: ) использовать на свой страх и риск в PHP7+ для ускорения приложения, храня статику(её можно и в файлах хранить первое время) и результаты ресурсоёмких запросов(тоже есть варианты), но тогда и сессии необходимо для этих же целей хранить там же (как у меня в примере выше), да и неплохо бы тогда взять на вооружение OPcache (как пример) для кэширования байткода. В новых версиях PHP /http://php.net/manual/ru/book.opcache.php/ этот кэш позволяет очень сильно увеличить производительность. Но всё это вопрос стоимости используемой памяти...

Всем добра, успехов, стабильности и высокой производительности!
roman_vladislavovich
Сообщения: 1
Зарегистрирован:
21 сен 2018, 21:22

Re: Class 'Memcached' not found

roman_vladislavovich » 21 сен 2018, 21:40

► Брал dll по указанной Дмитрием ссылке, но самую новую (на момент написания всего как 10 дней) и мне подходящую в директории указанного репозитария .../PHP7-memcache-dll/vc15/x64/ts/php-7.1.x_memcache.dll ;
► Указанную dll переименовал в php_memcache.dll и закинул в директорию \ospanel\modules\php\PHP-7.1-x64\ext
► Далее в директории \OSPanel\userdata\config открывал в редакторе файл PHP-7.1-x64_php.ini и добавил
extension=php_memcache.dll
изменил
session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"

перегрузил сервер


проверяю кодом
$memcache = new Memcache;
$memcache->connect("localhost",11211); # You might need to set "localhost" to "127.0.0.1"
echo "Server's version: " . $memcache->getVersion() . "<br />\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = "test";
$tmp_object->int_attr = 123;
$memcache->set("key",$tmp_object,false,10);
echo "Store data in the cache (data will expire in 10 seconds)<br />\n";
echo "Data from the cache:<br />\n";
var_dump($memcache->get("key"));

в phpinfo memcached есть
но ошибка все равно Class 'Memcache' not found


Что не так?
GeekHacker
Сообщения: 125
Зарегистрирован:
24 авг 2015, 15:22

Re: Class 'Memcached' not found

GeekHacker » 24 сен 2018, 09:34

А у кого-нибудь работает эта поделка для php-7.2 x86?
У меня лично не выходит подключить.
А вот аналогичная dll, но для x64 вроде как работает?
Ответить