How to resolve “unable to determine enabled services from ldap”

Published On Saturday, July 7th, 2012


เมื่อได้ restart zimbra service หรือเปิดเครื่อง server ใหม่แล้วเจอ error ในการ start ldap ตามด้านล่าง

[shell]Starting ldap…Done.
Unable to determine enabled services from ldap.
Enabled services read from cache. Service list may be inaccurate.[/shell]

ปัญหานี้เกิดได้จากหลายสาเหตุด้วยกัน ซึ่งสามารถแจกแจงออกได้เป็นดังนี้

  • เกิดจาก permission ของ path /opt/zimbra รันคำสั่งด้านล่างเพื่อแก้ไข
    [shell]service zimbra stop
    chown -R zimbra:zimbra /opt/zimbra
    /opt/zimbra/libexec/zmfixperms -verbose
    service zimbra start[/shell]
  • เกิดจากการตั้งค่า DNS ไม่ครบ ถ้าหากไม่มีข้อมูลตรงจุดไหนก็ให้เพิ่มเข้าไป
    วิธีตรวจสอบ
    [shell]cat /etc/hosts
    host `hostname`
    dig yourdomain.com mx
    dig yourdomain.com any[/shell]
  • เกิดจาก certificates บน server ได้หมดอายุแล้ว (expired)
    วิธีตรวจสอบ ให้รันคำสั่ง

    [shell]/opt/zimbra/bin/zmcertmgr viewdeployedcrt all[/shell]

    จากนั้นตรวจสอบวันหมดอายุตรง “notAfter” ถ้าหากหมดอายุแล้วจำเป็นต้องสร้าง certificates โดยสามารถทำตามขั้นตอนได้ดังนี้
    [shell]
    Stop zimbra
    su – zimbra -c ‘zmcontrol stop’
    ลบ certificates
    rm -rf /opt/zimbra/ssl/*
    rm -rf /opt/zimbra/ssl/.rnd

    /opt/zimbra/java/bin/keytool -delete -alias my_ca -keystore /opt/zimbra/java/jre/lib/security/cacerts -storepass changeit
    /opt/zimbra/java/bin/keytool -delete -alias jetty -keystore /opt/zimbra/mailboxd/etc/keystore -storepass `su – zimbra -c ‘zmlocalconfig -s -m nokey mailboxd_keystore_password’`

    vi /opt/zimbra/bin/zmcertmgr

    # Find line
    # SUBJECT=”/C=US/ST=N\/A/L=N\/A/O=Zimbra Collaboration Suite/OU=Zimbra Collaboration Suite/CN=${zimbra_server_hostname}”
    # and change to your company name

    # then find and change you want value days expire cert validation_days=365 to validation_days=3650
    # save /opt/zimbra/bin/zmcertmgr

    /opt/zimbra/bin/zmcertmgr createca -new
    /opt/zimbra/bin/zmcertmgr deployca -localonly
    /opt/zimbra/bin/zmcertmgr createcrt self -new
    /opt/zimbra/bin/zmcertmgr deploycrt self

    su – zimbra -c ‘zmcontrol start’

    /opt/zimbra/bin/zmcertmgr deploycrt self
    /opt/zimbra/bin/zmcertmgr deployca

    su – zimbra -c ‘zmupdateauthkeys’
    /opt/zimbra/bin/zmcertmgr viewdeployedcrt

  • [/shell]