[HUB] Horde ウェブメールのログインが失敗します:トラブルシューティング方法

Created:

2016-11-16 13:09:25 UTC

Modified:

2017-06-17 11:27:51 UTC

2

Was this article helpful?


Have more questions?

リクエストを送信

[HUB] Horde ウェブメールのログインが失敗します:トラブルシューティング方法

一般的なトラブルシューティング手順

まず、Horde セルフテストページ( http://webmail.yourdomain.com/test.php )を開きます。いずれかの Horde 要件を満たしていない場合、赤く強調表示されます。

以下のようなエラーメッセージが表示された場合:

Horde test scripts have been disabled in the local configuration. To enable, change the 'testdisable' setting in horde/config/conf.php to false.

" /usr/share/psa-horde/config/conf.php " 構成ファイルを開き、" $conf['testdisable'] " の値を " false " に変更します。

  1. IMAP 経由の認証が可能か確認します。任意のメールアカウントの有効なログイン名とパスワードを取得します。

    ~# /usr/local/psa/admin/sbin/mail_auth_view
    ...
    | mail@domain.tld | | password |
    ...
    ~#

    認証を試みます。

    ~# telnet localhost 143
    Trying 127.0.0.1...
    Connected to localhost.localdomain.
    Escape character is '^]'.
    * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2004 Double Precision, Inc. See COPYING for distribution information.
    01 login mail@domain.tld password
    01 OK LOGIN Ok.

    '* BYE Clock skew detected. Check the clock on the file server' で失敗した場合、以下のコマンドでサーバ時間を調整します。

    ~# ntpdate pool.ntp.org

    IMAP 認証が失敗した場合、IMAP サーバの構成が正しいことを確認します。正しい構成は以下のとおりです。

    /usr/share/psa-horde/imp/config/backends.php
    // IMAP server
    $servers['imap'] = array(
    // ENABLED by default; will connect to IMAP port on local server
    'disabled' => false,
    'name' => 'IMAP Server',
    'hostspec' => 'localhost',
    'hordeauth' => false,
    'protocol' => 'imap',
    'port' => 143,
    // Plaintext logins are disabled by default on IMAP servers (see RFC 3501
    // [6.2.3]), so TLS is the only guaranteed authentication available by
    // default.
    'secure' => 'tls',
    );

    "courier-imap" パッケージがインストールされ、最新状態であることを確認します。例えば、CentOS 6 上の Plesk 12.0.18 は以下のように見えます。

    # rpm -qa | grep psa-courier-imap
    psa-courier-imap-4.15-cos6.build1200150114.15.x86_64
  2. PHP 構成に session.save_path が定義されていることを確認します。ディレクトリが存在し、正しいパーミッションが設定されている必要があります。

    ~# grep session.save_path /etc/php.ini | grep -v ';'
    session.save_path = "/var/lib/php/session"
    ~#

    ~# ls -ld / /var/ /var/lib/ /var/lib/php/ /var/lib/php/session/
    drwxr-xr-x 22 root root 4096 Oct 13 09:03 /
    drwxr-xr-x 21 root root 4096 Dec 19 2008 /var/
    drwxr-xr-x 23 root root 4096 Mar 11 2009 /var/lib/
    drwxr-xr-x 3 root root 4096 Dec 5 2008 /var/lib/php/
    drwx-wx-wt 2 root root 4096 Mar 24 2009 /var/lib/php/session/
    ~#

パーミッションについての詳細は、 KB 記事 を参照してください。

__注:__ 'すべてのユーザ' が 'session.save_path' ディレクトリで 'write' パーミッションを持つことが重要です。さもなければ、horde_sysuser がセッションファイルを作成できなくなり、誰もウェブメールにログインできなくなります。
  1. サーバ上に 300 超のウェブサイトがホストされていると、ファイル記述子の上限とのずれが原因で、Apache が機能しない場合があります。デフォルトで Apache はファイル記述子を 1024 までしか処理できません。以下の指示に従い、Apache で使用されるファイル記述子の数を確認します。root Apache プロセスの ID を取得します。

    ~# ps axf | grep httpd
    10220 ? Ss 0:07 /usr/sbin/httpd <=== root Apache process
    4018 ? S 0:00 \\_ /usr/sbin/httpd
    5170 ? S 0:00 \\_ /usr/sbin/httpd

    この Apache プロセスが使用するファイル記述子の数を取得します。

    ~# ls /proc/10220/fd/ | wc -l

    値が 1024 より大きい場合、Apache に十分なファイル記述子がなく、機能しない可能性があります。 Apache Web Server に対してパイプ経由のログを有効化するか、ファイル記述子の数を増やして Apache、PHP、および IMAP パッケージをリコンパイル することをお勧めします。この問題の解決方法の詳細は、以下の記事を参照してください。

    Apache ウェブサーバのパイプログを有効化するには
    RedHat 系システムでファイル記述子の値を FD_SETSIZE (1024) より高くして Apache、PHP、および IMAP をリコンパイルするには

  2. Horde パッケージがインストールされ、最新状態であることを確認します。例えば、CentOS 6 上の Plesk 12.0.18 では、パッケージは以下のようになります。

    # rpm -qa | egrep 'psa-horde|psa-imp|psa-ingo|psa-kronolith|psa-mimp|psa-mnemo|psa-passwd|psa-turba'
    psa-imp-6.2.9-cos6.build1200150706.15.noarch
    psa-turba-4.2.7-cos6.build1200150706.15.noarch
    psa-mnemo-4.2.6-cos6.build1200150706.15.noarch
    psa-kronolith-4.2.8-cos6.build1200150706.15.noarch
    psa-horde-5.2.6-cos6.build1200150722.16.noarch
    psa-passwd-5.0.2-cos6.build1200150706.15.noarch
    psa-ingo-3.2.5-cos6.build1200150706.15.noarch
  3. /etc/php.ini ファイルを確認して、エラーや廃止警告をすべて表示するように構成されていないことを確認します。また、他の設定も、Horde のログイン機能に影響を与える可能性があります。以下の設定例は正しく機能すると考えられます。

    error_reporting = E_ALL & ~E_DEPRECATED
    display_errors = Off
    error_log = php_errors.log
    session.auto_start = 0

追加情報

パッケージを再インストールする必要がある場合、こちらのウェブサイト http://autoinstall.plesk.com/ からダウンロードできます。適切な Plesk バージョンとアーキテクチャを探してください。ファイルはサブディレクトリ opt/maildrivers/ および opt/horde/ にあります。例:

http://autoinstall.plesk.com/PSA_12.0.18/dist-rpm-CentOS-6-x86_64/opt/maildrivers/
http://autoinstall.plesk.com/PSA_12.0.18/dist-rpm-CentOS-6-x86_64/opt/horde/

Horde ウェブメールにログインできない問題

  • 213942985 Horde login failed: Could not open secure TLS connection to the IMAP server. Log /var/log/psa-horde/psa-horde.log contains the following error:

    2014-12-07T20:37:33+00:00 WARN: HORDE [imp] [login] Could not open secure TLS connection to the IMAP server. [pid 35439 on line 732 of "/usr/share/psa-horde/imp/lib/Imap.php"]

    2014-12-07T20:37:33+00:00 ERR: HORDE [horde] FAILED LOGIN for user@domain.tld (user@domain.tld) [1.2.3.4] to horde [pid 35439 on line 216 of "/usr/share/psa-horde/login.php"]
  • 213369849 Horde webmail fails with error - Call to a member function write() on a non-object in Socket.php on line 4428. Login to Horde with correct username and wrong password fails with the following confusing error message:

    A fatal error has occurred
    Call to a member function write() on a non-object
    Details have been logged for the administrator.
  • 213380669 Horde webmail fails with error: Call to a member function write() on a non-object in Socket.php on line 4059. Unable to log in to Horde webmail, the following error appears:

    stderr: PHP Fatal error: Call to a member function write() on a non-object in /usr/share/psa-pear/pear/php/Horde/Imap/Client/Socket.php on line 4059, referer: http://webmail.domain.tld/login.php
他にご質問がございましたら、リクエストを送信してください
ログインしてコメントを残してください。