私はかなりカスタム構成でApacheを実行しています。
service Apache2 start
とsystemctl start Apache2.service
は機能しませんが、Apache2ctl start
は正常に機能します。
systemctl status Apache2.service
からのエラーメッセージは、「Apache2インスタンスは20秒以内に起動しませんでした」です。しかし、Apache2ctlを使用すると、確実に実行されると確信しています。奇妙なことに、Apacheプロセスはエラー後に開始され、Webサイトは正常に動作します。停止またはリロードするためにコマンドを再び使用することはできません...
最初の2つが機能しない理由をデバッグするにはどうすればよいですか? Apacheが起動したかどうかをどのように判断しますか?
私のApache2.confには行がありました
PidFile /var/run/httpd2.pid
しかし、Ubuntu 16.04はpidファイルが/var/run/Apache2/Apache2.pid
として表示されることを期待しています。
したがって、私のApacheはうまく起動しましたが、/etc/init.d/Apache2
によって使用されるservice Apache2 start
のApache_wait_start()関数はpidファイルを見ず、プロセスが開始しないと考えました。
Apache2ctl
は明らかにpidファイルがあるかどうかをチェックしません(または、Apache2.confが存在する場所を読み取ります)。
ファイル名を修正すると、すべて正常に動作するようになりました。