my interfaces file is identical and apache starts OK so it is probably
something else.
in /lib/systemd/system/apache2.target
do you have the "after" bit
1 [Unit]
2 Description=The Apache HTTP Server
3 After=network.target remote-fs.target nss-lookup.target
Or looking if "NetworkManager-wait-online.service" is enabled.
For systemd-networkd that is : "systemd-networkd-wait-online.service".
https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/
If your '/etc/network/interfaces' file is empty with the exception of
the 'lo' interface, your interfaces are probably handled by an other
"program" and you need to determine which "program" is responsible for
your interfaces.