web-dev-qa-db-ja.com

Ubuntu 16.04でのApacheの起動:サービスは機能せず、Apache2ctlは機能します

私はかなりカスタム構成でApacheを実行しています。

service Apache2 startsystemctl start Apache2.serviceは機能しませんが、Apache2ctl startは正常に機能します。

systemctl status Apache2.serviceからのエラーメッセージは、「Apache2インスタンスは20秒以内に起動しませんでした」です。しかし、Apache2ctlを使用すると、確実に実行されると確信しています。奇妙なことに、Apacheプロセスはエラー後に開始され、Webサイトは正常に動作します。停止またはリロードするためにコマンドを再び使用することはできません...

最初の2つが機能しない理由をデバッグするにはどうすればよいですか? Apacheが起動したかどうかをどのように判断しますか?

4
Gene Vincent

私の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が存在する場所を読み取ります)。

ファイル名を修正すると、すべて正常に動作するようになりました。

0
Gene Vincent