首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将网站从php 5.2迁移到php 5.6,遇到内存缓存错误

将网站从php 5.2迁移到php 5.6,遇到内存缓存错误
EN

Stack Overflow用户
提问于 2019-07-10 00:16:00
回答 2查看 309关注 0票数 0

编辑:

也许我可以简化一下:当我的网站运行在php-5.2上时,一切都正常。当我试图在php-5.6上运行它时,我得到了以下错误:

已安装的库都是相同的:

代码语言:javascript
复制
RUN \
  apt-get install -y \
    php5-memcache \
    memcached \
    libapache2-mod-php5

有什么想法吗?

注意:我尝试过安装php5-memcached,接下来会发生这样的情况。

安装php5-memcache之后,

我收到这样的警告信息:

代码语言:javascript
复制
Message: Memcached::__construct() expects parameter 1 to be string, array given

然后,页面会出现致命错误:

代码语言:javascript
复制
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行):

代码语言:javascript
复制
    $memcached_profile=$this->memcached->get($memcached_key);

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

这些版本如下:

当前PHP版本:5.6.40-0+PHP 8u4

当前CodeIgniter版本: 2.0.2

Memcache版本: 1.4.21

代码语言:javascript
复制
>php -i | grep memcache  
libmemcached version => 1.0.18

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

EN

回答 2

Stack Overflow用户

发布于 2019-07-10 00:35:38

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

代码语言:javascript
复制
/* For Creating a persistent instance */
$m2 = new Memcached('story_pool');

您应该知道memcache持久id是在哪里定义的。

票数 0
EN

Stack Overflow用户

发布于 2019-07-12 00:22:30

您已经安装了模缓存扩展,但是您的应用程序正在尝试使用由D扩展定义的Memcached类。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56961907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档