web-dev-qa-db-ja.com

Ubuntu 16.04での起動時にApache2が起動しない

新しいUbuntu 16.04サーバーを作成しました(問題があればDigital Oceanに)。 Apache2をセットアップしましたが、正しく実行されますが、再起動するたびに起動に失敗します。

systemctl statusから次を取得します。

root@twl-ubuntu-2gb-sgp1-01:~# systemctl status Apache2.service 
● Apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/Apache2; static; vendor preset: enabled)
  Drop-In: /lib/systemd/system/Apache2.service.d
           └─Apache2-systemd.conf
   Active: inactive (dead)
     Docs: man:systemd-sysv-generator(8)

systemctl is-enabledを実行すると、「静的」になります:

root@twl-ubuntu-2gb-sgp1-01:~# systemctl is-enabled Apache2.service 
static

systemctl enableを実行した後でも変更されません:

root@twl-ubuntu-2gb-sgp1-01:~# systemctl enable Apache2.service 
Synchronizing state of Apache2.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install enable Apache2
root@twl-ubuntu-2gb-sgp1-01:~# systemctl is-enabled Apache2.service 
static

しかし、Apacheの起動に問題はありません。 systemctl startを手動で実行すると、うまく機能します。

root@twl-ubuntu-2gb-sgp1-01:~# systemctl start Apache2.service 
root@twl-ubuntu-2gb-sgp1-01:~# systemctl status Apache2.service 
● Apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/Apache2; static; vendor preset: enabled)
  Drop-In: /lib/systemd/system/Apache2.service.d
           └─Apache2-systemd.conf
   Active: active (running) since Sat 2016-07-09 07:33:30 EDT; 8s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 1847 ExecStart=/etc/init.d/Apache2 start (code=exited, status=0/SUCCESS)
    Tasks: 7
   Memory: 22.5M
      CPU: 455ms
   CGroup: /system.slice/Apache2.service
           ├─1871 /usr/sbin/Apache2 -k start
           ├─1875 /usr/sbin/Apache2 -k start
           ├─1876 /usr/sbin/Apache2 -k start
           ├─1877 /usr/sbin/Apache2 -k start
           ├─1878 /usr/sbin/Apache2 -k start
           └─1879 /usr/sbin/Apache2 -k start

Jul 09 07:33:28 twl-ubuntu-2gb-sgp1-01 systemd[1]: Starting LSB: Apache2 web server...
Jul 09 07:33:28 twl-ubuntu-2gb-sgp1-01 Apache2[1847]:  * Starting Apache httpd web server Apache2
Jul 09 07:33:29 twl-ubuntu-2gb-sgp1-01 Apache2[1847]: AH00558: Apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set t
Jul 09 07:33:30 twl-ubuntu-2gb-sgp1-01 Apache2[1847]:  *
Jul 09 07:33:30 twl-ubuntu-2gb-sgp1-01 systemd[1]: Started LSB: Apache2 web server.

私はsystemdが初めてで、14.04から16.04にアップグレードしたのはごく最近のことです。どこで間違っているのでしょうか、またはおそらく、Apache2が起動を拒否している理由をデバッグするにはどうすればよいですか?

更新1(2016-07-14)

Apacheがロードされていることがわかりますが、起動するとすぐにSIGTERMを受信して​​います。ログファイルの唯一の行は次のとおりです。

[Wed Jul 13 21:37:15.730331 2016] [mpm_prefork:notice] [pid 1871] AH00169: caught SIGTERM, shutting down

より良いエラーメッセージを取得する方法はありますか?前述したように、ブート直後にsystemctl start Apache2を実行すると、すべてが正常に開始されます。

アップデート2(2016-07-15)

Sigtermは、Sudo rebootを実行したときに殺されたことが原因であることがわかりました。 /var/log/Apache2/error.logにログメッセージはありませんでした。 journalctlを実行すると、起動プロセス中に次の行が表示されるため、正常に動作するように思われます。少なくともエラーは記録されません。

Jul 13 21:38:04 twl-ubuntu-2gb-sgp1-01 systemd[1]: Starting LSB: Apache2 web server...
Jul 13 21:38:04 twl-ubuntu-2gb-sgp1-01 Apache2[1800]:  * Starting Apache httpd web server Apache2
Jul 13 21:38:04 twl-ubuntu-2gb-sgp1-01 Apache2[1800]: AH00558: Apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set t
Jul 13 21:38:05 twl-ubuntu-2gb-sgp1-01 Apache2[1800]:  *
Jul 13 21:38:05 twl-ubuntu-2gb-sgp1-01 systemd[1]: Started LSB: Apache2 web server.

しかし、その後、サービスにアクセスすることはできず、systemctl status Apache2.serviceは依然として「非アクティブ(デッド)」としてレポートします

2
Jason O'Neil

I 検索is-enabledstatic状態が意味するものは、

このコンテキストでは、静的とは、ユニットファイルにユニットを有効にするために使用される「インストール」セクションが含まれていないことを意味します。そのため、これらのユニットは有効にできません。

また、Apache2パッケージには、完全なファイルではなく、systemdインクルードファイルのみが含まれていることがわかりました。

 # /lib/systemd/system/Apache2.service.d/Apache2-systemd.conf
 [Service]
 Type=forking
 RemainAfterExit=no

Apache2プロセスを管理するための残りのロジックは、systemdがSysVinitスクリプトを実行できるようにするシムを使用することから来ているようです。そのため、SysVinitディレクトリのシンボリックリンクを使用して、起動時にApache2を実行できるようにしてください。

ln -s /etc/init.d/Apache2 /etc/rc5.d/S02Apache2

Apache2がUbuntu 16.04の完全なsystemd「サービス」ファイルとともに出荷されていないというのは、バグまたは少なくとも欠落している機能のようです。

2
Mark Stosberg

してみてください :

ln -s /etc/systemd/system/Apache2.service /etc/systemd/system/multi-user.target.wants/Apache2.service
0
ivanllc