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
(ほとんどはapache
asですが、user
すべてではありません)。私は以下を使ってそれらのそれぞれを殺しました。
sudo kill -9 [PID]
それから逃げたらsudo apachectl restart
本当に効果がありました。