ubuntu 20.04 server 重启之后,发现 nginx 没有自启动。
而手动启动 nginx,报错,显示 80 端口被占用。
$ sudo nginx
[sudo] password for xxx:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
排查
无疑,很大概率系统预装了 apache。可能系统重启时,apache 先于 nginx 启动, 所以抢先占住了 80 端口。
$ sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-11-19 15:35:46 CST; 24min ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 461 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 657 (apache2)
Tasks: 8 (limit: 4485)
Memory: 36.0M
CGroup: /system.slice/apache2.service
├─ 657 /usr/sbin/apache2 -k start
├─ 717 /usr/sbin/apache2 -k start
├─ 718 /usr/sbin/apache2 -k start
├─ 719 /usr/sbin/apache2 -k start
├─ 720 /usr/sbin/apache2 -k start
├─ 721 /usr/sbin/apache2 -k start
├─1795 /usr/sbin/apache2 -k start
└─1876 /usr/sbin/apache2 -k start
果然如此。
禁用 apache 开机自启动
首先停掉 apache,然后禁用自启动
$ sudo systemctl stop apache2
$ sudo systemctl disable apache2
对我而言,apache 并没有任何用处,所以直接卸载了。
$ sudo apt remove apache2
验证
reboot 重启系统,这次 nginx 可以正常自启动了。
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式