Redhat 7(Amazon ec2インスタンス)でApache(httpd)サーバーを起動できません。

Redhat 7(Amazon ec2インスタンス)でApache(httpd)サーバーを起動できません。

RHEL 7(Amazon ec2)でApacheサーバーを起動する際にいくつかの問題があります。私の大きな目標は、Anaconda環境を使用してec2インスタンスでFlaskアプリケーションをホストすることですが、今はhttpdサービスを正しく起動することにのみ興味があります。

似たような質問が多いことがわかりましたここここここなど、しかし誰も私が経験している正確な問題を解決できないようです。

私はフォローアップをしています。このチュートリアル最後の>文字まで、しかしコマンドは

sudo apachectl restart

そして

sudo service httpd restart

どちらもエラーが発生し、詳細を確認するように求められますsystemctl status httpd.service。このファイルの出力は次のとおりです。

httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Fri 2018-04-06 21:00:42 UTC; 4s ago
Docs: man:httpd(8)
      man:apachectl(8)
Process: 32166 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
Process: 32165 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=0/SUCCESS)
Main PID: 32165 (code=exited, status=0/SUCCESS)
[long ec2 ip address] systemd[1]: Starting The Apache HTTP Server...
[long ec2 ip address] httpd[32165]: httpd (pid 28220) already running
[long ec2 ip address] kill[32166]: kill: cannot find process ""
[long ec2 ip address] systemd[1]: httpd.service: control process exited, code=exited status=1
[long ec2 ip address] systemd[1]: Failed to start The Apache HTTP Server.
[long ec2 ip address] systemd[1]: Unit httpd.service entered failed state.
[long ec2 ip address] systemd[1]: httpd.service failed.

返される出力はjournalctl -xe同じです。

2回、さらに3回確認しました。これ私のec2セキュリティグループが正しく設定されていることを確認するために公開されました。

私のシステムに関するいくつかの情報(この情報が役に立つかどうかはわかりませんが、含めるのが最善だと思いました):

Apache Version: Apache/2.4.6 (Red Hat Enterprise Linux) configured

$ /usr/bin/python -V
    Python 2.7.5
$ sudo yum install mod_wsgi
    Package mod_wsgi-3.4-12.el7_0.x86_64 already installed and latest version
$ service httpd configtest
    Syntax OK
$ sudo chkconfig --levels 235 httpd on
    Note: Forwarding request to 'systemctl enable httpd.service' 

コマンドsudo netstat -lnp | grep :80を返すtcp 0 0 :::0 :::* LISTEN 28220/httpd

これでファイルが/etc/init.d/httpd存在しないことがわかりました。それはそんなに重要なのか?

通常、私はエラーログを見て問題の原因を直接特定しようとしますが、どこでも識別できる唯一のエラーは/var/log/httpd/error_log次のとおりです。

AH01276: Cannot serve directory /var/www/html/: No matching DirectoryIndex (index.html) found, and server-generated directory index forbidden by Options directive

以前に誰かがこの質問をした場合は、ご案内ください。私はどこでも見ましたが、これまで運がありませんでした。

乾杯。

答え1

解決策:@GracefulRestartのおかげで問題を確認できました。

私の間違いは、複数のec2インスタンス(現在の各インスタンスは無効)に同じセキュリティグループを使用しているようです。とにかく、実行してpgrep httpdみると7つの数値リストが返されるのを見ました。次に、実行してps -aux実行中のプロセスの完全なリストを確認します。リストの下部には返されたすべてのhttpdプロセスがありますpgrep httpd(ほとんどはapacheasですが、userすべてではありません)。私は以下を使ってそれらのそれぞれを殺しました。

sudo kill -9 [PID]

それから逃げたらsudo apachectl restart本当に効果がありました。

関連情報