0

编辑:
也许我可以让这更简单:当我的网站在 php-5.2 上运行时,一切正常。当我尝试在 php-5.6 上运行它时,我收到此错误:
```嘘

安装的库都是一样的:

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

这可能是破坏代码(第 800 行的 auth_model.php):

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

但它似乎更像是它的内存缓存不起作用

这些是版本:
当前 PHP 版本:5.6.40-0+deb8u4
当前 CodeIgniter 版本:2.0.2
Memcache 版本:1.4.21

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

顺便说一句,是否启动了memcached服务没有任何区别!

4

2 回答 2

0

您已经安装了memcache扩展,但您的应用程序正在尝试使用由memcache d扩展Memcached定义的类。

memcache 和 memcached 扩展是相似的,但不完全相同,并且不可互换。在这两者中,memcache(您已安装的那个)未维护并且与当前版本的 PHP 不兼容,因此您应该安装 memcached 扩展(您的应用程序希望它可用)。

于 2019-07-12T00:22:30.367 回答
0

MemCached 构造函数可选参数必须是字符串,而不是数组

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

您应该找出定义 memcache 持久 id 的位置

于 2019-07-10T00:35:38.057 回答