尝试为 NextCloud 安装 Apache,收到错误消息

尝试为 NextCloud 安装 Apache,收到错误消息
invoke-rc.d: initscript apache2, action "restart" failed.
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Wed 2022-02-16 07:12:03 UTC; 8ms ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 638499 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)

Feb 16 07:12:03 server systemd[1]: Starting The Apache HTTP Server...
Feb 16 07:12:03 server apachectl[638502]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
Feb 16 07:12:03 server apachectl[638502]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
Feb 16 07:12:03 server apachectl[638502]: no listening sockets available, shutting down
Feb 16 07:12:03 server apachectl[638502]: AH00015: Unable to open logs
Feb 16 07:12:03 server apachectl[638499]: Action 'start' failed.
Feb 16 07:12:03 server apachectl[638499]: The Apache error log may have more information.
Feb 16 07:12:03 server systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE
Feb 16 07:12:03 server systemd[1]: apache2.service: Failed with result 'exit-code'.
Feb 16 07:12:03 server systemd[1]: Failed to start The Apache HTTP Server.
Setting up php8.1 (8.1.2-1+ubuntu20.04.1+deb.sury.org+1) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9.2) ...
Processing triggers for php8.1-cli (8.1.2-1+ubuntu20.04.1+deb.sury.org+1) ...
Processing triggers for libapache2-mod-php8.1 (8.1.2-1+ubuntu20.04.1+deb.sury.org+1) ...
root@server:~#

我尝试过清除并重新安装 apache 和 php8.1,但无法使其正常工作。我遗漏了什么吗?运行后sudo apache2ctl -t出现 OK 语法,运行后sudo systemctl restart apache2显示以下内容:

Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xe" for details.

我在 Ubuntu Server 20.04 上,并且正在使用 OpenSSH。提前致谢。

编辑:NetBat 要求输出一些函数,如下所示:

zein127@server:~$ sudo sudo service --status-all | grep -i apache
ep -i apache
sudo ps -aux | grep -i apache
ls -l /etc/apache2/sites-enabled
grep -R "80" /etc/apache2 [ - ]  apache-htcacheclean
 [ + ]  apache2
zein127@server:~$ sudo systemctl --type service --all | grep -i apache
  apache2.service                                       loaded    active   running The Apache HTTP Server                                    
● snap.nextcloud.apache.service                         loaded    failed   failed  Service for snap application nextcloud.apache             
zein127@server:~$ sudo ps -ef | grep -i apache
root        1943       1  0 18:24 ?        00:00:00 /usr/sbin/apache2 -k start
www-data    2238    1943  0 18:24 ?        00:00:00 /usr/sbin/apache2 -k start
www-data    2239    1943  0 18:24 ?        00:00:00 /usr/sbin/apache2 -k start
www-data    2240    1943  0 18:24 ?        00:00:00 /usr/sbin/apache2 -k start
www-data    2241    1943  0 18:24 ?        00:00:00 /usr/sbin/apache2 -k start
www-data    2242    1943  0 18:24 ?        00:00:00 /usr/sbin/apache2 -k start
zein127     9072    5247  0 18:25 pts/0    00:00:00 grep --color=auto -i apache
zein127@server:~$ sudo ps -aux | grep -i apache
root        1943  0.0  0.2 199540 18664 ?        Ss   18:24   0:00 /usr/sbin/apache2 -k start
www-data    2238  0.0  0.1 199964  8276 ?        S    18:24   0:00 /usr/sbin/apache2 -k start
www-data    2239  0.0  0.1 199964  8276 ?        S    18:24   0:00 /usr/sbin/apache2 -k start
www-data    2240  0.0  0.1 199964  8276 ?        S    18:24   0:00 /usr/sbin/apache2 -k start
www-data    2241  0.0  0.1 199964  8276 ?        S    18:24   0:00 /usr/sbin/apache2 -k start
www-data    2242  0.0  0.1 199964  8276 ?        S    18:24   0:00 /usr/sbin/apache2 -k start
zein127     9075  0.0  0.0   6432   740 pts/0    S+   18:25   0:00 grep --color=auto -i apache
zein127@server:~$ ls -l /etc/apache2/sites-enabled
total 0
lrwxrwxrwx 1 root root 35 Feb 16 07:05 000-default.conf -> ../sites-available/000-default.conf
zein127@server:~$ grep -R "80" /etc/apache2
/etc/apache2/sites-available/nextcloud.conf:<VirtualHost *:80>
/etc/apache2/sites-available/000-default.conf:<VirtualHost *:80>
/etc/apache2/sites-enabled/000-default.conf:<VirtualHost *:80>
/etc/apache2/magic:1080 string  M.K.            audio/x-mod
/etc/apache2/magic:1080 string  M!K!            audio/x-mod
/etc/apache2/magic:1080 string  FLT4            audio/x-mod
/etc/apache2/magic:1080 string  FLT8            audio/x-mod
/etc/apache2/magic:1080 string  4CHN            audio/x-mod
/etc/apache2/magic:1080 string  6CHN            audio/x-mod
/etc/apache2/magic:1080 string  8CHN            audio/x-mod
/etc/apache2/magic:1080 string  CD81            audio/x-mod
/etc/apache2/magic:1080 string  OKTA            audio/x-mod
/etc/apache2/magic:#>1080       string  >/0             %.2s-channel Fasttracker "oktalyzer" module sound data
/etc/apache2/magic:1080 string  16CN            audio/x-mod
/etc/apache2/magic:1080 string  32CN            audio/x-mod
/etc/apache2/magic:0    lelong&0x8080ffff       0x0000081a      application/x-arc       lzw
/etc/apache2/magic:0    lelong&0x8080ffff       0x0000091a      application/x-arc       squashed
/etc/apache2/magic:0    lelong&0x8080ffff       0x0000021a      application/x-arc       uncompressed
/etc/apache2/magic:0    lelong&0x8080ffff       0x0000031a      application/x-arc       packed
/etc/apache2/magic:0    lelong&0x8080ffff       0x0000041a      application/x-arc       squeezed
/etc/apache2/magic:0    lelong&0x8080ffff       0x0000061a      application/x-arc       crunched
/etc/apache2/magic:2080 string  Microsoft\ Excel\ 5.0\ Worksheet        application/excel
/etc/apache2/magic:2080 string  Microsoft\ Word\ 6.0\ Document  application/msword
/etc/apache2/magic:2080 string  Documento\ Microsoft\ Word\ 6   application/msword
/etc/apache2/magic:0            lelong&0x8080ffff       0x0000081a      application/x-arc
/etc/apache2/magic:0            lelong&0x8080ffff       0x0000091a      application/x-arc
/etc/apache2/magic:0            lelong&0x8080ffff       0x0000021a      application/x-arc
/etc/apache2/magic:0            lelong&0x8080ffff       0x0000031a      application/x-arc
/etc/apache2/magic:0            lelong&0x8080ffff       0x0000041a      application/x-arc
/etc/apache2/magic:0            lelong&0x8080ffff       0x0000061a      application/x-arc
/etc/apache2/magic:# 0x9445366139FA (V 3.80)
/etc/apache2/ports.conf:Listen 80

答案1

情况分析

从您的日志中:

Address already in use: AH00072: make_sock: could not bind to address [::]:80 Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80

no listening sockets available, shutting down

发生与您的 TCP 端口 80 相关的冲突。您的服务器出现问题的原因可能有两个:

  1. 后台的某些应用程序或服务使用与 Apache 希望使用的相同的 TCP 80 端口。
  2. 您的 Apache 配置中的端口+地址/套接字设置错误。与 #1 相比,该原因的可能性较小。

解决方案

安装 net-tools 并使用 netstat 获取系统中哪些进程/应用程序占用 TCP 80 的信息。

sudo apt-get install net-tools
sudo netstat -lntp | grep -e ":80" -e "PID"

现在您看到使用端口 80 的进程号和应用程序名称。禁用此应用程序或更改应用程序设置以使用 TCP 80 以外的其他端口。

详细进程列表可用于搜索有关正在监听您的 TCP 端口的应用程序的详细信息:

ps -ef
ps -aux

搜索从netstat输出中获得的进程号。

评论中有新信息后的扩展答案

根据您的回复,看来有两个 Apache 实例发生了冲突。

重启服务器。在“全新”系统中使用这些命令,并将其输出粘贴到您的问题中。

sudo sudo service --status-all | grep -i apache
sudo systemctl --type service --all | grep -i apache
sudo ps -ef | grep -i apache
sudo ps -aux | grep -i apache
ls -l /etc/apache2/sites-enabled
grep -R "80" /etc/apache2

编辑

(根据我的请求,InsertRandomString 粘贴了新数据之后)

您的系统上已有一个正在运行并监听的 Apache 实例。正在运行的 Apache 服务显示在您附加的新输出中。无需安装任何新的 Web 服务器(Apache、Nginx……)。不要安装它,而是使用已有的。

通过 Web 浏览器验证 Apache 功能。将您的服务器 IP 地址输入 Web 浏览器的地址栏,然后按 Enter。您将看到默认的 Apache 页面,确认服务器正常。例如http://192.168.1.25

您的 Web 服务器能够同时在不同的域中发布更多虚拟站点。每个站点都必须在/etc/apache2/sites-available目录中有自己的文件,并且 中/etc/apache2/sites-enabled也有。 中/etc/sapache2/sites-enabled只有已启用站点的符号链接。

您是否计划在您的服务器上使用更多域名和更多虚拟站点?

  • 如果是,请在 中为 Nextcloud 站点创建新文件/etc/apache2/sites-available并将其链接到/etc/apache2/sites-enabled。您需要为 Nextcloud 站点设置特殊域,并且还必须设置 DNS 记录。
  • 如果没有,请编辑文件中的默认站点参数/etc/apache2/sites-available/000-default.conf并设置正确的值,例如包含所有 Nextcloud PHP 文件的目录名称等。没有必要(但可以)有特殊域名。IP 地址足以显示您的 Nextcloud 站点。

我想您知道如何设置 Apache 配置文件来发布 Nextcloud 站点(例如/var/www/nextcloud而不是默认页面)/var/www/html

如果您打算使用具有公共 IP 地址的 Nextcloud,则绝对有必要配置 SSL、证书并启用安全 HTTPS 访问。否则您的 Nextcloud 用户名和密码可能会被捕获和泄露。

我的个人笔记

Nextcloud 并不像看上去那么简单。必须安装许多 PHP 模块、准备 MySQL 数据库等。但我非常喜欢这项服务,它是我在多个设备上共享和同步数据的首选工具。

相关内容