Article ID: 1161, created on May 2, 2013, last review on Aug 12, 2014

  • Applies to:
  • Plesk 10.4 for Linux/Unix

解決策

http://cr.yp.to/(例)から Qmail ソースをダウンロードします。この記事に添付された Plesk パッチを適用し、カスタムパッチを適用し、Qmail をコンパイルします。次の手順を実行します。

  1. KB #260(How to recompile Apache, PHP, and IMAP with increased value of file descriptors larger than FD_SETSIZE (1024) on a RedHat-like system?)に従い、typesizes.h および posix_types.h で __FD_SETSIZE システム定数の値を調整します。
  2. カスタムパッチと Plesk パッチをレビューし、カスタムパッチの変更点といつ適用すべきかを確認します(Plesk パッチの適用前、適用後、または Plesk パッチ適用中に特定のパッチの前/後)。
    注:Plesk 8.3 以降のバージョンでは、Qmail パッチをアルファベット順に適用する必要があります。Plesk 8.2 の場合、すべての patch* ファイルを適用してから、fr49-quota-patch を適用します。例:
    # cd qmail-1.03
    # for patch in ../patches/patch* ; do patch -p0 < $patch ; done
    # patch -p0 < ../patches/fr49-quota-patch

  3. conf-users ファイルと conf-groups ファイルを、patch-pe パッチと patch-pf パッチに適用された変更に合わせて変更します。これらのファイルに含まれるレコードは、'groupname GID' または 'username UID' 形式です。以下のコマンドで、これらのファイルに正しいレコードが挿入されます。
    注:これらのコマンドは、Qmail がインストール済みのシステム(Plesk がインストール済みのシステム)で実行する必要があります。
    # grep -E '^(qmail|alias)' /etc/passwd | awk 'BEGIN {FS=":"; OFS=" ";} {if ($1 == "qmaill") {print $1,$3,"\nroot 0"} else {print $1,$3}}' > conf-users
    # grep -E '^(qmail|nofiles)' /etc/group | awk 'BEGIN {FS=":"; OFS=" ";} {print $1,$3}' > conf-groups

  4. リンカフラグを構成します(パッチ適用後の Qmail ソースディレクトリ内):
    # pkg-config --libs openssl > ssl.lib
    # echo "/var/qmail" > conf-qmail
  5. 注:FreeBSD サーバには、pkg-config の代わりに次のコマンドを使用します。
    # echo -lssl > ssl.lib
    # echo "/var/qmail" > conf-qmail

  6. `make` を実行できます。

  7. コンパイル後は、既存の Qmail ファイルを新しいファイルで上書きしないでください。つまり、`make install` は実行しないでください。インストールされた構成ファイルと init スクリプトは変更しないでください。代わりに、必要な Qmail バイナリだけを、新しいコンパイル済みのファイルと置換します。
    • Qmail サービスと DrWeb サービスを、shell ではなく Plesk パネルから停止します。
    • xinetd(inetd) サービスを shell から停止します。
    • Plesk バージョンに応じてファイルを置換します。
      Plesk 8.2 の場合:コンパイルされた qmail-queueqmail-remoteqmail-local を Qmail bin/ ディレクトリにコピーし、.origin サフィックスを付けてコピーを作成します。
      # cp qmail-queue /var/qmail/bin/qmail-queue
      # cp qmail-queue /var/qmail/bin/qmail-queue.origin
      # cp qmail-local /var/qmail/bin/qmail-local
      # cp qmail-local /var/qmail/bin/qmail-local.origin
      # cp qmail-remote /var/qmail/bin/qmail-remote
      # cp qmail-remote /var/qmail/bin/qmail-remote.origin

      Plesk 8.3 以降の場合:コンパイルされた qmail-queueqmail-remoteqmail-local を、.moved サフィックスを付けて Qmail bin/ ディレクトリにコピーします(既存のファイルを置換しないでください)。
      # cp qmail-queue /var/qmail/bin/qmail-queue.moved
      # cp qmail-local /var/qmail/bin/qmail-local.moved
      # cp qmail-remote /var/qmail/bin/qmail-remote.moved
      置換されたファイルのオリジナルの所有者/パーミッションを忘れずに復元してください。ファイルの所有者/パーミッションは OS によって異なる可能性があるため、実際のコマンドを提示することはできません。バイナリを置換する前に、オリジナルの所有者/パーミッションを覚えておき、後で復元します。
    • xinetd(inetd) サービスを起動します。
    • Qmail サービスと DrWeb サービスを起動します。
 

追加情報

注:再コンパイルを開始する前に、再コンパイル手順についてオリジナルの Qmail マニュアルを確認することをお勧めします。

注:Parallels Plesk Panel バージョン 9.5 の場合、パッチ plesk93_qmail_patches.tgz を使用し、同じコンパイル手順に従うことができます。

Attachments

a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838 56797cefb1efc9130f7c48a7d1db0f0c e8756e9388aeca36710ac39e739b2b37 dd0611b6086474193d9bf78e2b293040

Email subscription for changes to this article