未加载memcache集成 -- configuration 领域 和 caching 领域 drupal 相关 的问题

Memcache integration is not loaded


4
vote

问题

中文

我正在尝试在我的drupal 7站点上设置memcache。我有一个memcache服务器设置和工作,我已经使用setsebool -p httpd_can_network_memcache 1允许apache与它进行通信。我还确认端口11211 TCP在IP表中打开。

我已安装MemeCache Drupal扩展,PHP中的PECL扩展名,当我运行phpinfo()时;我看到memcache是​​加载的。

在我的drupal web服务器上的settings.php中我有以下内容:

  /**************************************************  * MEMCACHE  **************************************************/ $conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc'; $conf['cache_default_class'] = 'MemCacheDrupal'; $conf['cache_class_cache_form'] = 'DrupalDatabaseCache'; $conf['memcache_servers'] = array(         'memcacheserver.ourdomain.local:11211' => 'cluster' );  $conf['memcache_bins'] = array(         'bin1' => 'cluster' );  $conf['memcache_key_prefix'] = 'sdrupal';   
但是,当我进入状态报告页面时,我看到以下内容:

Memcache Integration当前未加载memcache集成。 检查Readme.txt并确保在Settings.php

中正确配置memcache.inc

我已经反复通过Readme.txt文件读取,当然您可以看到上面指定的memcache.inc。

我认为也许我与rarnish模块或apc模块发生冲突,因为那些也设置了cache_backends - 但它是一个数组,所以我认为这也可以。我也评论了他们,我仍然看到上面的错误。

我还确认了站点/全部/模块/ memcache / memcache.inc存在。

为什么不加载/查找memcache.inc?

谢谢 布拉德

英文原文

I'm trying to setup memcache on my drupal 7 site. I have a memcache server setup and working and I've used setsebool -P httpd_can_network_memcache 1 to allow apache to communicate with it. I've also confirmed that port 11211 tcp is open in ip tables.

I've installed the memecache drupal extension, the PECL extension in PHP and when I run phpinfo(); I see that memcache is loaded.

In settings.php on my drupal web server I have the following:

/**************************************************  * MEMCACHE  **************************************************/ $conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc'; $conf['cache_default_class'] = 'MemCacheDrupal'; $conf['cache_class_cache_form'] = 'DrupalDatabaseCache'; $conf['memcache_servers'] = array(         'memcacheserver.ourdomain.local:11211' => 'cluster' );  $conf['memcache_bins'] = array(         'bin1' => 'cluster' );  $conf['memcache_key_prefix'] = 'sdrupal'; 

However when I go to the status reports page I see the following:

Memcache integration Memcache integration is not currently loaded. Check README.txt and ensure that memcache.inc is configured correctly in settings.php

I've read through the readme.txt file repeatedly and of course you can see I have memcache.inc specified above.

I thought perhaps I had a conflict with the varnish module, or the apc module as those also set cache_backends - but its an array so I think thats ok. I also commented them out and I'm still seeing the error above.

I also confirmed that sites/all/modules/memcache/memcache.inc exists.

Why isn't drupal loading/finding memcache.inc?

Thanks Brad

     
   
   

回答列表

1
 
vote

您必须将这些行添加到settings.php文件中以运行memcache正确:

  $conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc'; $conf['cache_default_class'] = 'MemCacheDrupal'; $conf['cache_class_cache_form'] = 'DrupalDatabaseCache';   

如果您在多路安装的顶部也忘记添加此一个:

  $conf['memcache_key_prefix'] = 'unique_key';   

有关配置和设置drupal的memcache的更多信息,您可以找到 。

 

You've got to add these lines to your settings.php file to run memcache proper:

$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc'; $conf['cache_default_class'] = 'MemCacheDrupal'; $conf['cache_class_cache_form'] = 'DrupalDatabaseCache'; 

If you're on top of a multisite installation also don't forget to add this one:

$conf['memcache_key_prefix'] = 'unique_key'; 

More information about configuration and setting memcache for drupal you can find here.

 
 
0
 
vote
为了让这个工作,我不得不评论下行:
  //$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc';   

并添加:

  // the path to the core cache file include_once('./includes/cache.inc'); // the path to the memcache cache file include_once('./sites/all/modules/memcache/memcache.inc');   

我很想知道为什么这是必要的,而且差异是什么,但目前它似乎正在工作。

 

To get this to work I had to comment out the following line:

//$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc'; 

And add:

// the path to the core cache file include_once('./includes/cache.inc'); // the path to the memcache cache file include_once('./sites/all/modules/memcache/memcache.inc'); 

I'd love to know why this is necessary and what the difference is but at the moment it seems to be working.

 
 
0
 
vote

您需要以某种方式刷新APC缓存以使命令工作。重新启动Apache会很好。无需手动使用include_once()来加载字段。

在我的情况下,它通过APC设置APC.TTL套接,该APC.TTL设置为0以防止缓存到期,直到Apache重新启动。

 

You need to flush APC cache somehow to make the command work. Restarting Apache will do just fine. No need to manually use include_once() to load the fields.

In my case, this was cased by the APC setting apc.ttl that was set to 0 to prevent the cache from expiring until Apache was restarted.

 
 
0
 
vote

请检查以下示例:

  /**  * Memcached Configuration  */ if (class_exists('Memcache') || class_exists('Memcached')) {    // Make memcache the default cache class.   $conf['cache_backends'][] = 'sites/all/modules/contrib/memcache/memcache.inc'; // NOTE: Just verify path where you've memcache module placed.   $conf['cache_default_class'] = 'MemCacheDrupal';   $conf['memcache_key_prefix'] = 'drupal_';    // Ensure that the special cache_form bin is assigned to non-volatile storage.   $conf['cache_class_cache_form'] = 'DrupalDatabaseCache';    // Support for Memcached PECL extension   // This new extension backends to libmemcached   // and allows you to use some of the newer advanced features in memcached 1.4.   if (class_exists('Memcached')) {     // Enable the binary protocol, which is more advanced and faster.     $conf['memcache_options'] = array(         Memcached::OPT_BINARY_PROTOCOL => TRUE,     );      // Memcached takes options directly from Drupal.     $conf['memcache_options'] = array(         Memcached::OPT_COMPRESSION => TRUE, // Turn off compression, as this takes more CPU cycles than its worth for most users.         Memcached::OPT_DISTRIBUTION => Memcached::DISTRIBUTION_CONSISTENT, // Allows you to add/remove servers easily.     );   } }   

它将自动检测您使用的是哪个Memcache扩展名,它只加载类。此外,它有一些常见的有用东西。


故障排除:

  • 检查Memcache模块是否已启用,
  • 转到/ admin /报告/ status / php并验证您是否已致电Memcache或Memcached(如果没有,您已正确安装它,请检查您的日志),
  • 使用命令行时,通过: php -m | grep memcache 检查Memcache
  • 检查/管理/报告/状态是否仍然存在一些问题,
  • 确保您的memcached已启动并运行,
 

Please check the following example:

/**  * Memcached Configuration  */ if (class_exists('Memcache') || class_exists('Memcached')) {    // Make memcache the default cache class.   $conf['cache_backends'][] = 'sites/all/modules/contrib/memcache/memcache.inc'; // NOTE: Just verify path where you've memcache module placed.   $conf['cache_default_class'] = 'MemCacheDrupal';   $conf['memcache_key_prefix'] = 'drupal_';    // Ensure that the special cache_form bin is assigned to non-volatile storage.   $conf['cache_class_cache_form'] = 'DrupalDatabaseCache';    // Support for Memcached PECL extension   // This new extension backends to libmemcached   // and allows you to use some of the newer advanced features in memcached 1.4.   if (class_exists('Memcached')) {     // Enable the binary protocol, which is more advanced and faster.     $conf['memcache_options'] = array(         Memcached::OPT_BINARY_PROTOCOL => TRUE,     );      // Memcached takes options directly from Drupal.     $conf['memcache_options'] = array(         Memcached::OPT_COMPRESSION => TRUE, // Turn off compression, as this takes more CPU cycles than its worth for most users.         Memcached::OPT_DISTRIBUTION => Memcached::DISTRIBUTION_CONSISTENT, // Allows you to add/remove servers easily.     );   } } 

It will automatically detect which memcache extension are you using and it'll load classes only it's present. In addition it has some common useful stuff.


Troubleshooting:

  • check that your memcache module is enabled,
  • go to /admin/reports/status/php and verify that you've section called memcache or memcached (if not, you've to properly install it, check your logs),
  • when using command line, check your memcache via: php -m | grep memcache
  • check at /admin/reports/status if you still having some issues,
  • make sure that your memcached is up and running,
 
 
 
 

相关问题

10  Drupal Master / Slave复制  ( Drupal master slave replication ) 
我已经为Drupal数据库的主/从复制设置了两个MySQL服务器,我确认数据库同步并复制。 我现在尝试将Drupal指向两个数据库,基本上用于故障转移/冗余目的。这是我需要重新启动我们的主数据库服务器,我不希望我们的网站下降。 (在失败方案期间,只读只读是可接受的) 基于按照文章。我修改了 settings.php...

2  如何从配置模块导出配置  ( How do you export configuration from configuration module ) 
我需要将我在配置模块中跟踪到我的安装配置文件中的配置,或者我将允许它允许它在安装时初始化。我该怎么做? ...

2  是否有一个变量,可以跟踪在页面管理器中启用或禁用哪些页面?  ( Is there a variable that keeps track of which pages are enabled or disabled in p ) 
我正在使用功能模块,我厌倦了手动启用/禁用页面(user_edit,user_view等)有没有变量,我可以在代码中添加到strongarm来控制它? ...

2  在维护下退出网站后登录  ( Logging in after exiting website under maintenance ) 
我正在安装Drupal网站的更新,而在维护模式下。等待更新完成,然后退出。我一直在尝试在线阅读很多东西,它不起作用。在另一个说明中,可能与我试图在某些块上做一些编辑时,我收到我没有足够的编辑权限的消息。此外,在Onlining在线的同时,我发现了我的网站,虽然有一个具有登录能力的不同的网址,但我的信用度不起作用。我相...

9  如何为变量设置变量()?  ( How do i set variables for variable get ) 
我试图了解 variable_get() 。我读到了到目前为止,您可以使用 99887668 数组在Settings.php中设置变量,并使用 variable_get() 稍后在代码中检索它们。我已阅读过,也可以使用 1 2 3 5 8 12 0 来从数据库中检索值。 这是怎么做的? 是否有一个自动构建的表? 如...

0  变量和domain_variable已填满了我的菜单  ( Variable and domain variable have stuffed up my menus ) 
变量和domain_variable模块固定了前页问题,所以我现在可以有两个唯一的前页。但是,它已经破坏了主要的菜单。我有一个在默认域上显示的原始主菜单,并为辅助域创建了一个新菜单。新菜单显示精细,直到我安装了domain_variable模块并设置前页面。 我的问题是:即使我有一个不同的菜单,也可以在域中显示主菜单...

0  如何使用疏浚vset编写选项列表?  ( How to write options lists with drush vset ) 
当我们想要针对环境中的变量引脚时,我们将在admin中设置值,然后在数据库中查找它,并将名称和值复制到BASH或Phing脚本中,以确保变量始终设置为环境的适当值。 但是,对于复杂的变量,例如选项列表,必须设置字符串的样子?例如,node_export_file_types在数据库中看起来像它: a:29:{s...

5  为特定文件夹结构设置$ cookie_domain变量  ( Setting cookie domain variable for specific folder structure ) 
在CKEditor配置期间,我必须设置cookie域变量。我在Subfolder中添加了我的网站,如www.example.com/mynewsitefolder,www.example.com是我当前和运行的网站。 首先,我尝试了像 $cookie_domain = '.example.com/mynewsitef...

0  查看网站已连接的数据库  ( See what database a site is connected to ) 
在drupal 7(或一个模块)中有一个页面,它会向我展示数据库的名称是该网站指向的是什么? 我知道这可以通过settings.php完成,但我正在设置一个构建过程,我可以拥有较低级别的开发人员(甚至是非开发人员)句柄,并且UI会更好。我最近有一个问题,两个网站指向同一数据库,它会弄了一些东西。我想将检查此设置添加到...

1  Drupal多路迁移不起作用  ( Drupal multisite migration not working ) 
我试图更改现有站点的域名,现在当我尝试访问域时,它会出现drupal安装屏幕。 最初域名是 stage.othercompany.com ,现在我将域名更改为 stage.mycompany.com 。我更改了站点中的文件夹映射.PHP并清除了Drupal数据库中的所有缓存。我还重新启动了Apache服务器,...

2  使用hook_variably_info()在自定义模块中定义多个变量  ( Define multiple variables in a custom module using hook variable info ) 
im使用 Variable module ,需要在我的自定义模块中定义一个类型 "multiple" 的变量。我一天都在谷歌搜索任何文档或只是一个例子,并没有找到任何东西。 有很多例子如何在这样的类型中设置变量,如: string , number , radios ,但没有关于"<代码> themes/upjv...

0  shell的项目/配置同步(不是来自./admin)  ( Project configuration sync from shell not from admin ) 
使用Project / Configuration(Core 7.22和Configuration 7.x-2.0-alpha2),我们可以通过管理员GUI将新数据库同步到导出的.inc文件,但需要能够从博卢下进行。 具体而言,我们尝试到达我们可以运行Drush站点安装的位置 - 然后疏浚Sync Config,从...

2  共享变量的多站点变量表(扩展Variable_set)  ( Multi site variables table for shared variables extending variable set ) 
我有一个使用db_prefix的某些共享表的多站点设置。变量表未共享。共享所有变量会导致很多麻烦,但仅共享一些选定的变量不会。 下面的图片可视化我的问题: 绿色框中的条目是在所有多站点上共享和可用的。虽然所选的条目信息是配置的一部分并存储在变量中。在一个多站点上更改时,未共享红色框的更改并导致不一致。 目前我使用...

2  存储Drupal配置的最佳方法  ( The best way to store drupal configuration ) 
我知道要存储配置的三个选项: 使用UI并将值存储到变量表中。 也可以在settings.php中存储它们,并使用$ conf ['']数组来存储信息。 最后一个选项是使用变量模块存储值。 你是什么东西是最好的,不是最终用户,而是为开发人员提供。 oskar 我不添加"strongarm +功能" ,因为有时特征是...

3  Un-ercaped _server变量在settings.php中 - 坏主意右?  ( Un escaped server variable in settings php bad idea right ) 
我最近开始为一个新的公司托管使用settings.php中的switchal语句的drupal站点,以便多个环境。我习惯了使用多网站,并探索这样的配置的可行性。 我的疑虑是缺乏任何卫生或逃避变量,并以其原始形式使用它。是一个可怕的想法,如果我们开始消毒'http_host'变量,这是一个可怕的想法吗? 代码: ...

1  如何在安装配置文件中设置变量以使用户能够注册该网站  ( How do i set a variable in the install profile to enable users to sign up for th ) 
我正在尝试了解设置变量如何在安装配置文件中工作。作为一个示例,我如何设置选项,使人们在安装配置文件中为帐户创建一个网站?以下是变量_set https://api.drupal.org /api/drupal/includes !bootstrap.inc/function/variable_set 但是如何检索值...

2  是否在配置模块中跟踪所有操作  ( Is it bad practice to track all in the configuration module ) 
我正在接管在没有配置管理的情况下建立的网站,我第一次安装了配置模块(我习惯使用功能)。我想知道只需在所有类别中选择所有类别并跟踪所有可用配置,而不是尝试樱桃选择适用的配置。性能的影响是什么。 ...

1  全局变量,具有MultiSite中的变量_get()设置的动态值  ( Global variable with a dynamic value set by variable get in multisite ) 
我的问题是,如果我有一个多路环境,那么全局变量的预期行为是如下所示: define('GLOBAL_VARIABLE' , variable_get('myvar')); 'myvar'设置在模块配置页面中,所有站点都共享相同的模块。 每个网站是否会对'global_variable'的独立价值使用?这是...

0  我应该在哪里定义“drupal_stale_file_threshold”drupal变量?  ( Where should i define the drupal stale file threshold drupal variable ) 
我每天都想删除我的CSS和JavaScript文件。我在哪里定义"drupal_stale_file_threshold" 变量? 在template.php文件中,其中 variable_set('drupal_stale_file_threshold', 86400); 在settings.php文件中用 ...

0  html.tpl.php被删除,网站已关闭!  ( Html tpl php is deleted and the site is down ) 
我是在wordpress 中,但新手在drupal,从头开始开发主题。我开始使用 page.tpl.php ,然后用自定义前页扩展设计( 99887664 )。然后,对于一个自定义结构,我制作了 html.tpl.php ,在从Drupal Geek听到它之后。但我发现没有与它到网站和 shift + 删除它的连接...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.