AWS EC2インスタンスでapache2が実行されていませんが、サーバーはまだ実行中であり、httpdはポート80でリッスンしているとマークされていますか?

AWS EC2インスタンスでapache2が実行されていませんが、サーバーはまだ実行中であり、httpdはポート80でリッスンしているとマークされていますか?

そのため、certbotを使用してEC2のWordPressサイトのLetsEncrypt証明書を取得しようとしましたが(BitnamiのAWS Marketplaceイメージ、Ubuntu 14.04を使用)、certbot --apacheを実行すると次のようになります。

Error while running apache2ctl graceful.
httpd not running, trying to start
Action 'graceful' failed.
The Apache error log may have more information.

AH00112: Warning: DocumentRoot [/var/lib/letsencrypt/tls_sni_01_page/] does not exist
AH00112: Warning: DocumentRoot [/var/lib/letsencrypt/tls_sni_01_page/] does not exist
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs

だからログファイルには何もないようです。サービス apache2 ステータスを実行すると、「apache2 が実行されていません」と表示されます。

それから私はそうでした。

sudo lsof -i :80 | grep LISTEN

これは私に -

httpd.bin 1584   root    4u  IPv6   9463      0t0  TCP *:http (LISTEN)
httpd.bin 1589 daemon    4u  IPv6   9463      0t0  TCP *:http (LISTEN)
httpd.bin 1590 daemon    4u  IPv6   9463      0t0  TCP *:http (LISTEN)
httpd.bin 1773 daemon    4u  IPv6   9463      0t0  TCP *:http (LISTEN)

同様の結果が出ました

sudo netstat -tulpn | grep :80

これは私に与える

tcp6       0      0 :::80                   :::*                    LISTEN      1584/httpd.bin  

Apacheは実際に実行されていますが、同じバージョンではないと思いますか?同様の問題を経験した人はいますか?

ありがとうございます!

答え1

Listenディレクティブ設定は何ですか? Linux で IPv4 アドレスと IPv6 アドレスの両方を受信する場合、唯一の方法はマッピングされたアドレスを使用することです。そのため、netstat関連するApacheドキュメントはここにあります。https://httpd.apache.org/docs/2.2/bind.html

certbot次に、実行でエラーが発生する理由について説明します。 Apacheはコマンドを介してservice起動/停止/再起動/再ロードされますか?または、このようなスクリプトを呼び出すか、またはを使用して実行されますか?これは絶えず行われていますか?/etc/init.d/apache2apache2ctl

次のいずれかの方法を選択し、Apacheを停止し、停止していることが報告されていることを確認し、Apacheを再起動して、実行中であると報告されていることを確認してください。その後、他のユーティリティのステータスを確認し、同意することを確認します。

すべての方法でApacheが実際に実行されていることに同意したら、certbotを実行してみてください。しかし、正直なところ、certonlyそのオプションを実装するのはかなり簡単です(これを行うにはApacheを停止する必要があります - certbot/letsencryptプロセスの一部として443/80で独自のリスナーを作成する必要があります)。関連する変更を私のApache設定中国語に手動で追加します。ファイル

関連情報