Centos zimbra无法启动:大小错误:无法从ldap确定已启用的服务

Centos zimbra无法启动:大小错误:无法从ldap确定已启用的服务,centos,ldap,zimbra,Centos,Ldap,Zimbra,我在一台服务器上使用CentOS上的Zimbra。 然后,我使用rsync命令将所有数据移动到新服务器。 当我想使用“zmcontrol start”在新服务器上启动Zimbra时,它会抛出以下错误: 大小错误:无法从ldap确定已启用的服务。无法确定已启用的服务。 缓存已过期或不存在 我查看了zmcontrol文件的内部,在其中发现了以下函数: sub getEnabledServices { my $ldap_master_url=getLocalConfig("ldap_maste

我在一台服务器上使用CentOS上的Zimbra。 然后,我使用rsync命令将所有数据移动到新服务器。 当我想使用“zmcontrol start”在新服务器上启动Zimbra时,它会抛出以下错误:

大小错误:无法从ldap确定已启用的服务。无法确定已启用的服务。 缓存已过期或不存在

我查看了zmcontrol文件的内部,在其中发现了以下函数:

  sub getEnabledServices {
  my $ldap_master_url=getLocalConfig("ldap_master_url");
  my $ldap_dn=getLocalConfig("zimbra_ldap_userdn");
  my $ldap_pass=getLocalConfig("zimbra_ldap_password");

  my %s = ();
  $s{"zmconfigd"} = "zmconfigd";

  my @ldap_masters=split(/ /, $ldap_master_url);
  my $master_ref=\@ldap_masters;
  my ($ldap, $result);
  unless ($ldap = Net::LDAP->new( $master_ref, timeout =>30 )) {
    warn "Connect: Unable to determine enabled services from ldap.\n";
    return getCachedServices();
  }
  unless ($result = $ldap->bind($ldap_dn, password => $ldap_pass)) {
    warn "Bind: Unable to determine enabled services from ldap.\n";
    return getCachedServices();
  }
  $result = $ldap->search(base => "cn=servers,cn=zimbra", filter => "cn=$localHostName", attrs => ['zimbraServiceEnabled']);
  if ($result->code) {
    warn "Search error: Unable to determine enabled services from ldap.\n";
    return getCachedServices();
  }
  my $size = $result->count;
  if($size != 1) {
    warn "Size error: Unable to determine enabled services from ldap.\n";
    return getCachedServices();
  }
  my $entry = $result->entry(0); 
  foreach my $value ($entry->get_value('zimbraServiceEnabled')) {
    $s{$value} = $value;
  }
  $result = $ldap->unbind;

  if (scalar keys %s > 0) {
    open (CACHE, ">$cache_file");
    foreach my $service (keys %s) {
      print CACHE "$service\n";
    }
    close(CACHE);
  }
  return \%s;
}

我真的不理解这段代码,除非它在大小不等于1时抛出错误。我的问题是它从哪里获得价值?这样我就可以查看正在工作的服务器并比较它们。

问题是:zimbra更改了服务器的名称,但没有更改ldap服务上的cn。您需要在ldap中更改服务名称或返回旧名称服务器,然后尝试启动
/opt/zimbra/libexec/zmsetservername-n oldname&&zmcontrol restart