Перенос сайта с php 5.2 на php 5.6, с ошибками memcache - PullRequest
0 голосов
/ 10 июля 2019

EDIT:
возможно, я мог бы сделать это проще: когда мой сайт работает на php-5.2, все работает. Когда я пытаюсь запустить его на php-5.6, я получаю эту ошибку:
```sh

Установленные библиотеки одинаковы:

RUN \
  apt-get install -y \
    php5-memcache \
    memcached \
    libapache2-mod-php5

есть идеи?


Примечание * Я попытался установить php5-memcached, и вот что происходит дальше.


После установки php5-memcache,

Я получаю это предупреждение:

Message: Memcached::__construct() expects parameter 1 to be string, array given

Затем разрыв страницы с фатальной ошибкой:

Fatal error: Call to a member function get() on null in  auth_model.php on line 800 E_ERROR Error in file  auth_model.php

Это может быть код взлома (auth_model.php в строке 800):

    $memcached_profile=$this->memcached->get($memcached_key);

Но похоже, что его memcache не работает

Это версии:
Текущая версия PHP: 5.6.40-0 + deb8u4
Текущая версия CodeIgniter: 2.0.2
Версия Memcache: 1.4.21

>php -i | grep memcache  
libmemcached version => 1.0.18

кстати, не имеет значения, запущена служба memcached или нет!

Ответы [ 2 ]

0 голосов
/ 12 июля 2019

Вы установили расширение memcache , но ваше приложение пытается использовать класс Memcached, который определяется расширением memcache d .

Расширения memcache и memcached похожи, но не идентичны и не взаимозаменяемы. Из этих двух, memcache (тот, который вы установили) не поддерживается и несовместим с текущими версиями PHP, поэтому вам следует установить расширение memcached (которое ваше приложение ожидает иметь в наличии).

0 голосов
/ 10 июля 2019

Дополнительный параметр конструктора MemCached должен быть строкой, а не массивом

/* For Creating a persistent instance */
$m2 = new Memcached('story_pool');

Вы должны узнать, где определен ваш постоянный идентификатор memcache

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...