我最初在 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 mcrypt
,sudo 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 进入失败状态。
- apache2.service - LSB:Apache2 Web 服务器
我尝试删除配置文件中的更改,但它仍然输出相同的内容
任何帮助都将不胜感激;我真的不想重新安装 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 时遇到问题,请发布您收到的完整错误消息。
希望这可以帮助!