Debian | Как удалить apache2 из автозагрузки?

Debian | Как удалить apache2 из автозагрузки?

Когда на физическом сервере установлено несколько веб-серверов, то они могут начать конфликтовать за право прослушивания портов 80 и 443. Именно на этих портах работают веб-приложения (сайты).

Эта ситуация может возникнуть совершенно случайно, если после многих (частых) установок и пере-настроек конфигурационных файлов системный администратор забудет проверить настройки и не перезагрузит систему вручную.

Проблема заключается в том, что веб-сервер apache2 может находится в очереди автозапусков выше нужного вам веб-сервера, например, выше nginx. Вы уже давно не взаимодействуете с веб-сервером apache2, а nginx просто не перезагружали.

В результате машина может однажды уйти в перезагрузку и автозапуском запустить не тот веб-сервер. В нашем случае «не тем веб-сервером» является apache2. В результате «отвалятся» все сайты, которые могли обслуживаться веб-сервером nginx.

 

Проверить состояние nginx можно командой:

service nginx status

Если какой-то процесс уже успел занять порт 80 и 443, то мы получим что-то вроде этого:

● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2022-03-19 21:24:55 MSK; 8s ago
Docs: man:nginx(8)
Process: 2582 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 2583 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)

мар 19 21:24:54 U nginx[2583]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
мар 19 21:24:54 U nginx[2583]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
мар 19 21:24:54 U nginx[2583]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
мар 19 21:24:54 U nginx[2583]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
мар 19 21:24:55 U nginx[2583]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
мар 19 21:24:55 U nginx[2583]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
мар 19 21:24:55 U nginx[2583]: nginx: [emerg] still could not bind()
мар 19 21:24:55 U systemd[1]: nginx.service: Control process exited, code=exited, status=1/FAILURE
мар 19 21:24:55 U systemd[1]: nginx.service: Failed with result 'exit-code'.
мар 19 21:24:55 U systemd[1]: Failed to start A high performance web server and a reverse proxy server.

Скриншот:

service nginx status - failure 0.0.0.0 80 failed (98 Address already in use)
service nginx status — failure 0.0.0.0 80 failed (98 Address already in use)

 

Как решить проблему?

Для вывода процесса 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
Removed /etc/systemd/system/multi-user.target.wants/apache2.service.

Скриншот:

systemctl disable apache2 - убрали веб-сервер apache2 из автозагрузки
systemctl disable apache2 — убрали веб-сервер apache2 из автозагрузки

 

Теперь можно спокойно стартовать другой веб-сервер, потому что 80 порт станет свободным.

 

Информационные ссылки

Официальный сайт OS Debianhttps://www.debian.org

Справочники по OS Debianhttps://manpages.debian.org

Команда SYSTEMCTLhttps://manpages.debian.org/bullseye/systemctl/systemctl.1.en.html

Команда SERVICEhttps://manpages.debian.org/bullseye/init-system-helpers/service.8.en.html