注意到问题

注意到问题

我最近错过了 VPS 的付款,当我重新激活它时,Apache 服务器无法正常工作。

我已建立了多个网站,并通过子域名(cloud.mydomain.com、wiki.mydomain.com 等)进行分隔,当然还有一个 mydomain.com 首页。

重新激活后,我的所有子域名都指向运行 nextcloud 的 cloud.mydomain.com。我觉得很奇怪,它至少没有指向我常用的首页。

启动 apache 产生以下结果:

$sudo service apache2 stop
$sudo service apache2 start
$sudo service apache2 status

Jan 03 16:34:22 vmi120100.contaboserver.net apache2[4414]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
Jan 03 16:34:22 vmi120100.contaboserver.net apache2[4414]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
Jan 03 16:34:22 vmi120100.contaboserver.net apache2[4414]: no listening sockets available, shutting down
Jan 03 16:34:22 vmi120100.contaboserver.net apache2[4414]: AH00015: Unable to open logs
Jan 03 16:34:22 vmi120100.contaboserver.net apache2[4414]: Action 'start' failed.
Jan 03 16:34:22 vmi120100.contaboserver.net apache2[4414]: The Apache error log may have more information.
Jan 03 16:34:22 vmi120100.contaboserver.net apache2[4414]:  *
Jan 03 16:34:22 vmi120100.contaboserver.net apache2[4430]:  * Stopping Apache httpd web server apache2
Jan 03 16:34:22 vmi120100.contaboserver.net apache2[4430]:  *
Jan 03 16:34:22 vmi120100.contaboserver.net systemd[1]: Started LSB: Apache2 web server.

netstat 的输出是:

$sudo service apache2 stop
$sudo netstat -tulpn | grep :80
tcp6       0      0 :::80                   :::*                    LISTEN      3979/httpd  

终止该进程会产生以下结果:

$sudo netstat -tulpn | grep :80
tcp6       0      0 :::80                   :::*                    LISTEN      3979/httpd      
$sudo kill 3979
$sudo netstat -tulpn | grep :80
$ sudo netstat -tulpn | grep :80
tcp6       0      0 :::80                   :::*                    LISTEN      5152/httpd 

在付款失败导致公司关闭服务器之前,一切都运行正常。

编辑:回应 panther 的评论:我已经尝试重新启动,但结果还是一样。

自重新激活以来,日志中没有任何新内容......最后一条条目是在服务器关闭之前。

编辑2:
ps aux 的输出:

$ps aux | grep httpd
root      4995  0.0  0.0   4512  1708 ?        Ss   16:38   0:00 /bin/sh /snap/nextcloud/4371/bin/run-httpd -k start -DFOREGROUND
root      5129  0.0  0.0   4512  1668 ?        S    16:38   0:00 /bin/sh /snap/nextcloud/4371/bin/httpd-wrapper -k start -DFOREGROUND
root      5152  0.0  0.0  50712  4544 ?        S    16:38   0:00 httpd -d /snap/nextcloud/4371 -k start -DFOREGROUND
root      5153  0.0  0.0 413920  6324 ?        Sl   16:38   0:00 httpd -d /snap/nextcloud/4371 -k start -DFOREGROUND
root      5154  0.0  0.0 348352  6028 ?        Sl   16:38   0:00 httpd -d /snap/nextcloud/4371 -k start -DFOREGROUND
root      5155  0.0  0.0 348304  6028 ?        Sl   16:38   0:00 httpd -d /snap/nextcloud/4371 -k start -DFOREGROUND

这可能是因为 nextcloud 配置错误?

答案1

注意到问题

我注意到我的 Apache 服务器没有按预期工作。

$sudo service apache2 status

Jan 03 16:34:22 vmi120100.contaboserver.net apache2[4414]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
Jan 03 16:34:22 vmi120100.contaboserver.net apache2[4414]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
Jan 03 16:34:22 vmi120100.contaboserver.net apache2[4414]: no listening sockets available, shutting down
Jan 03 16:34:22 vmi120100.contaboserver.net apache2[4414]: AH00015: Unable to open logs
Jan 03 16:34:22 vmi120100.contaboserver.net apache2[4414]: Action 'start' failed.
Jan 03 16:34:22 vmi120100.contaboserver.net apache2[4414]: The Apache error log may have more information.
Jan 03 16:34:22 vmi120100.contaboserver.net apache2[4414]:  *
Jan 03 16:34:22 vmi120100.contaboserver.net apache2[4430]:  * Stopping Apache httpd web server apache2
Jan 03 16:34:22 vmi120100.contaboserver.net apache2[4430]:  *
Jan 03 16:34:22 vmi120100.contaboserver.net systemd[1]: Started LSB: Apache2 web server.

“无法绑定到地址 [::]:80”这一行表明另一个程序正在使用端口 80。

调查问题

为了弄清楚哪个程序使用了端口 80,我运行了 netstat。

$sudo netstat -tulpn | grep :80
tcp6       0      0 :::80               :::*                LISTEN      3979/httpd 

输出告诉我,名称为 httpd 的进程 ID 为 3979,正在使用端口 80。

为了找出运行 httpd 的程序,我使用了 ps aux

$ps aux | grep httpd
root      4995  0.0  0.0   4512  1708 ?        Ss   16:38   0:00 /bin/sh /snap/nextcloud/4371/bin/run-httpd -k start -DFOREGROUND
root      5129  0.0  0.0   4512  1668 ?        S    16:38   0:00 /bin/sh /snap/nextcloud/4371/bin/httpd-wrapper -k start -DFOREGROUND
root      5152  0.0  0.0  50712  4544 ?        S    16:38   0:00 httpd -d /snap/nextcloud/4371 -k start -DFOREGROUND
root      5153  0.0  0.0 413920  6324 ?        Sl   16:38   0:00 httpd -d /snap/nextcloud/4371 -k start -DFOREGROUND
root      5154  0.0  0.0 348352  6028 ?        Sl   16:38   0:00 httpd -d /snap/nextcloud/4371 -k start -DFOREGROUND
root      5155  0.0  0.0 348304  6028 ?        Sl   16:38   0:00 httpd -d /snap/nextcloud/4371 -k start -DFOREGROUND

我看到它是从 /snap/nextcloud 运行的,这意味着我的 nextcloud 就是那个乱搞的人。

使固定

进一步调查显示,我有一个 snap 和一个常规的 nextcloud 安装。我所要做的就是删除 snap,一切就都正常了。

如果有人遇到类似问题,请记住评估如何解决问题。卸载可能不适合您。

相关内容