Apache 随系统自动启动

Apache 随系统自动启动

在笔记本电脑上使用 22.04。我安装了 XAMPP,但当我尝试通过终端启动 XAMPP 时,它显示

Starting XAMPP for Linux 8.2.0-0...
XAMPP: Starting Apache...fail.
XAMPP:  Another web server is already running.
XAMPP: Starting MySQL...ok.

我很困惑,因为 Apache 没有理由单独运行。所以我关闭系统然后重新启动,并尝试

sudo systemctl status apache2.service

我收到这条信息,还有更多内容提示 Apache 正在运行

● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>
     Active: active (running) since Tue 2023-12-26 21:18:54 IST; 50s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 1136 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SU>
   Main PID: 1292 (apache2)
      Tasks: 55 (limit: 27942)
     Memory: 7.8M
        CPU: 41ms
     CGroup: /system.slice/apache2.service
             ├─1292 /usr/sbin/apache2 -k start
             ├─1293 /usr/sbin/apache2 -k start
             └─1294 /usr/sbin/apache2 -k start

是否有可能找出哪个/什么正在启动并使用它?除了 Nvidia X Server Settings 和 SSH Key Agent 之外,我在启动应用程序下找不到任何东西。

这是安全问题吗?我应该担心吗?我应该怎么做?谢谢。

编辑1

我应该补充一下,这个 XAMPP 已经在这个笔记本电脑上使用大约 6 个月了。两天前我也使用过 sudo /opt/lampp/lampp start,没有任何问题。今天突然,XAMPP 无法启动并出现此问题。这就是我感到困惑的原因。

编辑2

我检查了日志,发现了这一点

在此处输入图片描述

编辑3

$ apt-cache policy apache2
apache2:
  Installed: 2.4.52-1ubuntu4.7
  Candidate: 2.4.52-1ubuntu4.7
  Version table:
 *** 2.4.52-1ubuntu4.7 500
        500 http://in.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages
        100 /var/lib/dpkg/status
     2.4.52-1ubuntu4 500
        500 http://in.archive.ubuntu.com/ubuntu jammy/main amd64 Packages

答案1

这就是 Debian 系统的工作原理,Ubuntu 就是从 Debian 衍生而来的。

一旦您安装了一项服务,该服务就会启动,除非该特定服务的设置有所不同(这种情况非常罕见)。

您可以在尝试启动 XAMPP 之前先停止它:

systemctl stop apache2

或者禁用自动重启,这样下次重启时它将不会运行,直到您启动它:

systemctl disable apache2

同时,MySQL 也应该自动启动,因此重启时,XAMPP 应该默认自动启动并运行。以后无需再启动 XAMPP。

答案2

编辑3显示您也从 Ubuntu 源安装了 Apache。因此,您拥有通过 XAMPP 手动安装的版本和从 Ubuntu 源安装的版本。由于从源安装的版本默认在系统启动时通过 systemd 服务单元自动启动,因此您无法在以后手动启动另一个版本的 Apache。

你可以从源中删除已安装的 Apache

sudo apt remove apache2

或者从源头停止 Apache,并防止它被另一个单元作为依赖项加载

sudo systemctl stop apache2.service
sudo systemctl disable apache2.service
sudo systemctl mask apache2.service

然而,在执行此操作之前,您可能需要找出从 Ubuntu 源安装 Apache 的原因,以及您正在使用的另一个包/程序是否可能依赖于正在运行的 Apache 服务器。

加法 1:要验证 apache 包的安装时间,您可以检查文件/var/log/apt/history.log. 此文件保存了何时安装哪个包的信息。

相关内容