Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
codeigniter2使用wamp服务器部署在windows 10上,memcached错误修复_Codeigniter_Wamp_Memcached_Codeigniter 2_Wampserver - Fatal编程技术网

codeigniter2使用wamp服务器部署在windows 10上,memcached错误修复

codeigniter2使用wamp服务器部署在windows 10上,memcached错误修复,codeigniter,wamp,memcached,codeigniter-2,wampserver,Codeigniter,Wamp,Memcached,Codeigniter 2,Wampserver,我正在尝试使用wamp服务器在windows 10上运行旧的codigniter2网站 但我得到了以下错误: A PHP Error was encountered Severity: Error Message: Call to a member function get() on null Filename: C:/wamp64/www/website.test/system/libraries/Cache/drivers/Cache_memcached.php:52 完全错误 我该怎么办

我正在尝试使用wamp服务器在windows 10上运行旧的codigniter2网站

但我得到了以下错误:

A PHP Error was encountered
Severity: Error
Message: Call to a member function get() on null
Filename: C:/wamp64/www/website.test/system/libraries/Cache/drivers/Cache_memcached.php:52
完全错误

我该怎么办?

我解决了我的问题:

步骤1(在WAMPserver中启用Memcache):

  • 下载与PHP版本兼容的Memcache包 和Wamp版本(32或64位)。我下载了线程安全的
  • 解压缩下载的包,然后将php_memcache.dll复制到 PHP的扩展文件夹,例如 C:\wamp64\bin\php\php5.6.40\ext。php5.6.40是您的php文件夹
  • 打开php.ini文件并搜索extension=php_bz2.dll,其中 应该是扩展列表中的第一个扩展,然后复制 extension=php_memcache.dll并粘贴在扩展的末尾 名单
  • 重新启动Wamp服务器
  • 现在,您应该可以在访问时看到Memcache已加载 http://localhost
如果上面的步骤不起作用,您只需在根目录的logs文件夹中打开错误日志文件,并在那里检查错误

步骤2(更改/system/libraries/Cache/drivers/Cache\u memcached.php):

使用这个github,我在Cache_memcached.php中进行了更改:

替换此项:

$this->_memcached = new Memcached();
if ( ! extension_loaded('memcached'))
为此:

if (class_exists('Memcached')) {
      $this->_memcached = new Memcached();
   }
   else if (class_exists('Memcache')) {
       $this->_memcached = new Memcache();
   }
   else {
          log_message('error', 'Failed to create object for Memcached Cache; extension not loaded?');
          return FALSE;        
   }
if ( ! extension_loaded('memcached') && ! extension_loaded('memcache'))
并将其替换为:

$this->_memcached = new Memcached();
if ( ! extension_loaded('memcached'))
为此:

if (class_exists('Memcached')) {
      $this->_memcached = new Memcached();
   }
   else if (class_exists('Memcache')) {
       $this->_memcached = new Memcache();
   }
   else {
          log_message('error', 'Failed to create object for Memcached Cache; extension not loaded?');
          return FALSE;        
   }
if ( ! extension_loaded('memcached') && ! extension_loaded('memcache'))
然后删除(如果存在):

以及(如果存在):

步骤3(刷新数据库):

  • 删除并创建新数据库
  • 导入数据(如果是大数据,可以通过wamp服务器mysql导入) 控制台“使用dbname;源c:/wamp64/www/dataname.sql”)
  • 重新启动wamp服务器

什么版本的WAMPServer?还有什么版本的PHP?您是否安装了Memcached Serverget()是一个CI数据库函数,如果它引发错误,则很可能是数据库设置不兼容/错误。您的CI 2.x版本以前可用吗?如果是,使用哪个php版本?@riggsfully是的,它已安装并运行,wamp php版本5.6.40,mysql版本5.7。31@Vickelwamp服务器3.2.3,CodeIgniter版本是2.2.6,它在ubuntu上工作,但从未在windows上工作过