Andrei_G_Pastushenko писал(а): ↑08 апр 2018, 04:19...
...
Всем добра, успехов, стабильности и высокой производительности!
Доброго времени суток, коллеги!
Крик о помощи заставила сделать ошибка ( читайте полностью ):
Fatal error: Uncaught Error: Class 'Memcache' not found in C:\OSPanel\domains\directory\index.php:10 Stack trace: #0 {main} thrown in C:\OSPanel\domains\directory\index.php on line 10
Пока не поменял машину на новую и не столкнулся с необходимостью всё установить с нуля, всё работало на старой машине с более ранней версии OS, в которой я данную проблему решил легко и просто давно уже. Но...
Установил на новую машину под OS Win10 свежий
open_server_5_3_5_ultimate
Модули установил следующие:
- Apache_2.4-PHP_7.2-7.3-x64
- Memcached Version 1.5.10 [ естественно мы все помним, что OS только Memcache ]
В файл конфига PHP уже по пару лет назад отработанной схеме включил запись:
...
;extension = pgsql
extension = php_memcache.dll ;Ну т.е. добавил эту строку
;extension = phpdbg_webhelper
...
В папку
OSPanel\modules\php\PHP_7.3-x64\ext конечно закинул файл, скачанный с
https://github.com/4EPHblN/PHP7-memcache-dll
Пробовал разные варианты и не только по выше указанному источнику, но и с ранее мной используемого:
https://github.com/nono303/PHP7-memcache-dll
По второй ссылке более свежие, чем по первой.
Сразу оговорюсь, что перепробовал вариантов тысячу, менял версии PHP на более низкие, под них менял в папке dll, да и чего я только несколько часов не делал - результат один и тот же. Я даже сам себя перепроверил в когда-то написанном посте:
viewtopic.php?p=23783#p23783
Далее запуск OS, стандартный код проверки:
https://www.php.net/manual/en/memcache.set.php
$memcache_obj = new Memcache;
$memcache_obj->connect('localhost', 11211);
$memcache_obj->set('var_key', 'some really big variable', MEMCACHE_COMPRESSED, 50);
echo $memcache_obj->get('var_key');
На что естественно ничего, кроме ошибки не дало, при этом PHPMemcachedAdmin работает ( ессно ) и в PHP info он прописан в PATH, но отдельно как redis или mysqli его нет ни с буквой "d", ни без.
Пробовал и Memcached
$m = new Memcached();
echo get_class($m);
Но это привело, ожидаемо конечно же, к ошибке
Fatal error: Uncaught Error: Class 'Memcached' not found
Конечно же попробовал Redis-3.2-x64, ну вдруг не какой-то баг сборки или чего-то там, а во мне:
$redis = new Redis();
$redis->pconnect('localhost');
$redis->set('test', 'test');
echo $redis->get('test');
$redis->set('test', '<br> testing test');
echo $redis->get('test');
//$redis->del('test');
//echo $redis->get('test');
Конечно же Redis полетел без всяких проблем.
В общем крик помощи к Вам всем, уважаемые коллеги! Хелп!