由于缺少 mpm 模块,Apache 启动失败

由于缺少 mpm 模块,Apache 启动失败

我最初在 StackOverflow 上发布了这个问题。在它被删除为偏离主题之前,答案和评论导致 MPM 无法加载

  • 我尝试过sudo apt-get install apache-mpm-prefork但出现错误:

    E: 无法找到软件包 apache-mpm-prefork

以下是我今天采取的所有导致我遇到错误的步骤:
- 按照本教程安装 phpmyadmin:https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-on-ubuntu-16-04
- 我被卡住了sudo phpenmod mcryptsudo phpenmod mbstring因为它给了我一些错误
- 然后我尝试通过在 var/www/html 中创建一个包含以下内容的 php 文件来诊断这个问题<?php phpinfo(); ?>
- 正是在这里我看到 apache 没有提供 php 文件,因为网页只是输出<?php phpinfo(); ?>
- 所以我尝试按照这个操作:https://www.techrepublic.com/article/how-to-fix-apache-2-not-executing-php-files/
- 但是这次重新启动没有起作用,所以我sudo service apache2 stop希望可以重新启动
-sudo service apache2 start但出现错误:

apache2.service 的作业失败。请参阅“systemctl status apache2.service”和“journalctl -xn”了解详情。

  • 好吧sudo systemctl status apache2.service我猜:

    • apache2.service - LSB:Apache2 Web 服务器
      已加载:已加载(/etc/init.d/apache2)
      插入:/lib/systemd/system/apache2.service.d
      `-forking.conf
      活动:失败(结果:退出代码)自 2018-11-25 星期日 09:21:39 PST;2 分 14 秒前
      进程:16632 ExecStart=/etc/init.d/apache2 start(代码=exited,状态=1/FAILURE)
      11 月 25 日 09:21:39 XXXXXXXXXX apache2[16632]:正在启动 Web 服务器:apache2 失败!
      11 月 25 日 09:21:39 XXXXXXXXXX apache2[16632]:apache2 配置测试失败。...(警告)。
      11 月 25 日 09:21:39 XXXXXXXXXX apache2[16632]: 配置测试输出为:
      11 月 25 日 09:21:39 XXXXXXXXXX apache2[16632]: AH00534: apache2: 配置错误:未加载 MPM。11
      月 25 日 09:21:39 XXXXXXXXXX apache2[16632]: 操作“configtest”失败。11
      月 25 日 09:21:39 XXXXXXXXXX apache2[16632]: Apache 错误日志可能有更多信息。11
      月 25 日 09:21:39 XXXXXXXXXX systemd[1]: apache2.service: 控制进程已退出,代码=已退出状态=11
      月 25 日 09:21:39 XXXXXXXXXX systemd[1]: 无法启动 LSB:Apache2 Web 服务器。
      11 月 25 日 09:21:39 XXXXXXXXXX systemd[1]: 单元 apache2.service 进入失败状态。
  • 我尝试删除配置文件中的更改,但它仍然输出相同的内容

任何帮助都将不胜感激;我真的不想重新安装 Apache。谢谢。

当前配置文件(无注释)

互斥文件:${APACHE_LOCK_DIR} 默认

Pid文件 ${APACHE_PID_FILE}

超时 300

保持活动状态

最大KeepAliveRequests 100

KeepAliveTimeout 5

用户 ${APACHE_RUN_USER} 组 ${APACHE_RUN_GROUP}

HostnameLookups 关闭

错误日志 ${APACHE_LOG_DIR}/error.log

日志级别警告

包括可选的 mods-enabled/.load Include可选的 mods-enabled/配置文件

包括 ports.conf

选项 FollowSymLinks AllowOverride None 要求全部拒绝

AllowOverride None 要求所有已授予

选项索引 FollowSymLinks AllowOverride 无 要求全部授予

访问文件名 .htaccess

要求全部拒绝

日志格式“%v:%p%h%l%u%t \“%r\”%>s%O \“%{Referer}i\” \“%{User-Agent}i\”” vhost_combined

LogFormat“%h%l%u%t \“%r\”%>s%O \“%{Referer}i\” \“%{User-Agent}i\””组合

LogFormat "%h %l %u %t \"%r\" %>s %O" 常见

LogFormat "%{Referer}i -> %U" 引用者

LogFormat "%{User-agent}i" 代理

包括可选的 conf-enabled/*.conf

包括可选的站点启用/*.conf

答案1

欢迎来到 serverfault!

从 Ubuntu 16.04 服务器开始,mpm-prefork 模块包含在 apache2-bin 包中。要安装它,您必须输入

sudo apt-get install apache2-bin

之后,您必须像这样启用 mpm_prefork 模块:

sudo a2enmod mpm_prefork

然后再次尝试启动 apache2:

sudo systemctl start apache2.service

详细的错误日志位于此处:

tail -n 50 /var/log/apache2/error.log

journalctl 和 systemctl 仅提供非常基本的信息。

如果您在安装 php 模块 mcrypt 和 mbstring 时遇到问题,请发布您收到的完整错误消息。

希望这可以帮助!

相关内容