Article ID: 1507, created on Jun 28, 2013, last review on Oct 2, 2014

  • Applies to:
  • Plesk for Linux/Unix

概要

すべてのドメインの機能が停止します。

Apache ウェブサーバの起動を試みると、コンソールと error_log に以下のエラーが表示されます。

"(98)Address already in use: make_sock: could not bind to address [::]:443 no listening sockets available, shutting down"

(エラーにポート 80 が記述されている場合もあります。)

原因

このエラーは、ポート 443(80)が他のプロセスですでに使用されており、Apache を紐付けられないことを意味します。

解決策

まず、Apache 構成ファイルで 1 つのポートに "Listen" ディレクティブが一度だけ指定されていることを確認します。これを探すには、httpd.confconf.d/* ファイルをチェックします(一部の OS では、SUSE Linux と /etc/apache2/* をチェックする必要があります)。

次に、以下のコマンドで、このポートをどのプロセスが使用しているのかを確認します。

/usr/sbin/lsof -i | grep http
httpd 24717 apache 4u IPv6 9672930 TCP *:https (LISTEN)

上のコマンドは、"TCP *:https" ポートが "httpd" プロセス(PID 24717)によって使用されていることを示しています。

このファイルの内容を確認して、プロセスを起動させたコマンドを特定します。

cat /proc/24717/cmdline
/usr/sbin/httpd-kgraceful

(24717 はプロセスの PID)。

  • これが本当に Apache(httpd)バイナリであれば、Apache が正しく停止されなかった場合にこのような問題が発生する可能性があります。このプロセスを強制終了し、Apache を再起動します。
  • 他のプログラムがポート 443/80 を使用していることが確認された場合、悪意あるスクリプトである可能性があるため、どこで起動されたどのようなプログラムであるかを確認します。以下は、このようなスクリプトが偽装している例です。

    # ls -l /proc/24717/exe
    lrwxrwxrwx 1 apache apache 0 May 13 10:16 /proc/24717/exe -> /tmp/.www/httpd

サーバで悪意あるスクリプトを見つけた場合、その出所を把握するのは非常に重要です。このトピックを説明すると長くなり、この KB 記事の範囲および Parallels のサポートスコープを逸脱するため、ここでは割愛します。

a914db3fdc7a53ddcfd1b2db8f5a1b9c 29d1e90fd304f01e6420fbe60f66f838 56797cefb1efc9130f7c48a7d1db0f0c

Email subscription for changes to this article