Multiple Instanzen des Apache Webserver nach dist-upgrade von Ubuntu 16.04 nach 18.04

Nach einem dist-upgrade eines Ubuntu 16.04 nach 18.04 sollten die bereits unter Ubuntu 16.04 eingerichteten Apache Multi Instanzen auf die in diesem Artikel hier erwähnte systemd Start/Stop Variante mit einem @ als Trenner umgestellt werden. Nach dem gewohnten do-release-upgrade und dem ersten Reboot sind einige Nacharbeiten zu erledigen.

Erneute Kontrolle ob der default Apache welcher weiterhin nur als Templatevorlage dient enabled ist und diese entsprechend disablen.

:~# systemctl is-enabled apache2
enabled

:~# ll /etc/rc3.d/
lrwxrwxrwx 1 root root 17 Feb 1 2017 K01apache2 -> ../init.d/apache2*
[…]

:~# systemctl disable apache2
Synchronizing state of apache2.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable apache2
insserv: warning: current start runlevel(s) (empty) of script `apache2' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `apache2' overrides LSB defaults (0 1 6).
insserv: warning: current start runlevel(s) (empty) of script `apache2' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `apache2' overrides LSB defaults (0 1 6).

:~# update-rc.d -f apache2 remove

Nun die Apache Multi Instanz auf die neuere per @ getrennte systemd Variante umstellen. Zuerst die alte start Varianten deaktivieren.

:~# /etc/init.d/apache2-xxx stop
[ ok ] Stopping apache2-xxx (via systemctl): apache2-xxx.service.

:~# systemctl disable apache2-xxx
apache2-xxx.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable apache2-xxx
insserv: warning: current start runlevel(s) (empty) of script `apache2-xxx' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `apache2-xxx' overrides LSB defaults (0 1 6).

:~# update-rc.d -f apache2-xxx remove

:~# mkdir /opt/backup
:~# mv /etc/init.d/apache2-xxx /opt/backup

Nun den Apache Multi entsprechend der neueren start Variante enablen.

:~# systemctl enable apache2@xxx.servic
Created symlink /etc/systemd/system/multi-user.target.wants/apache2@xxx.service ? /lib/systemd/system/apache2@.service.

:~# systemctl start apache2@xxx.service

:~# systemctl status apache2@xxx.service
? apache2@xxx.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2@.service; indirect; vendor preset: enabled)
Active: active (running) since Thu 2019-03-28 15:17:35 CET; 6s ago
Process: 400 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 405 (apache2)
Tasks: 55 (limit: 2320)
CGroup: /system.slice/system-apache2.slice/apache2@xxx.service
+-405 /usr/sbin/apache2 -d /etc/apache2-xxx -k start
+-406 /usr/sbin/apache2 -d /etc/apache2-xxx -k start
+-407 /usr/sbin/apache2 -d /etc/apache2-xxx -k start

Mar 28 15:17:35 ubudev systemd[1]: Starting The Apache HTTP Server…
Mar 28 15:17:35 ubudev systemd[1]: Started The Apache HTTP Server.

Der im oben verlinkte Beitrag erwähnte logrotations Bug muss ebenfalls noch berücksichtigt werden.

:~# vim /etc/logrotate.d/apache2-xxx
[...]
postrotate
if invoke-rc.d apache2@xxx status > /dev/null 2>&1; then \
invoke-rc.d apache2@xxx reload > /dev/null 2>&1; \
fi
endscript
[...]

Des Weiteren sollte noch an die gepatche Version des Apache Multi Erstellungs Script gedacht werden, auch in dem bereits obern verlinkten Artikel beschrieben. Im Anschluss ist der bestehede Apache Multi nun entsprechend steuerbar.

:~# systemctl start apache2@xxx.service
:~# systemctl stop apache2@xxx.service
:~# systemctl status apache2@xxx.service
:~# systemctl reload apache2@xxx.service
:~# systemctl restart apache2@xxx.service