Могу ли я запустить Apache только после того, как система получит свой адрес от DHCP?

. Я запускаю Ubuntu на виртуальной машине с целью локальной установки Wordpress, необходимой для локального тестирования.

С этой целью я настроил сетевой режим этой машины в VirtualBox на режим моста, настроил свой домашний маршрутизатор на постоянную аренду одного и того же IP-адреса (192.168.0.101) для MAC-адреса этой виртуальной машины и настроил Apache для послушайте этот адрес в etc/apache2/ports.conf:

Listen 192.168.0.101:80

<IfModule ssl_module>
        Listen 192.168.0.101:443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 192.168.0.101:443
</IfModule>

К сожалению, Apache часто отказывается запускаться при загрузке системы:

m@m-VirtualBox:~$ sudo systemctl status apache2
[sudo] password for m: 
× apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Fri 2021-10-22 16:12:19 CEST; 28s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 681 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)
        CPU: 19ms

paź 22 16:12:19 m-VirtualBox systemd[1]: Starting The Apache HTTP Server...
paź 22 16:12:19 m-VirtualBox apachectl[701]: (99)Cannot assign requested address: AH00072: make_sock: could not bind to address 192.168.0.101:80
paź 22 16:12:19 m-VirtualBox apachectl[701]: no listening sockets available, shutting down
paź 22 16:12:19 m-VirtualBox apachectl[701]: AH00015: Unable to open logs
paź 22 16:12:19 m-VirtualBox apachectl[681]: Action 'start' failed.
paź 22 16:12:19 m-VirtualBox apachectl[681]: The Apache error log may have more information.
paź 22 16:12:19 m-VirtualBox systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE
paź 22 16:12:19 m-VirtualBox systemd[1]: apache2.service: Failed with result 'exit-code'.
paź 22 16:12:19 m-VirtualBox systemd[1]: Failed to start The Apache HTTP Server.

Я всегда могу запустить Apache вручную с sudo systemctl запускает apache2, после чего Apache успешно запускается.

Если заставить Apache2 прослушивать 127.0.0.1 вместо 192.168.0.101, Apache также будет успешно запускаться при загрузке системы без ошибок, подобных показанной выше.

Поэтому я подозреваю, что проблема может заключаться в том, что Apache пытается запуститься до того, как DHCP успевает завершить свою работу. Apache пытается прослушивать 192.168.0.101, но машине еще не присвоен этот адрес, поэтому Apache получает отказ и выдает ошибку.

Чтобы попытаться решить эту проблему и проверить, верна ли моя догадка, я хотел бы каким-то образом настроить apache так, чтобы он запускался только после завершения работы DHCP-клиента.Возможно ли это и как?

0
задан 22 October 2021 в 14:43

0 ответов

Другие вопросы по тегам:

Похожие вопросы: