RHEL 8升级后httpd.service启动失败问题求助
RHEL 8升级后HTTPD启动失败问题排查与解决
问题背景
升级RHEL 8后执行systemctl start httpd失败,先后遇到两个核心错误:
- 初始错误:
/etc/httpd/conf/httpd.conf第59行语法错误 - 修复语法错误后,出现
More than one MPM loaded.配置错误
已尝试操作:安装mod_ssl、修改/etc/httpd/conf.d/ssl.conf的Listen配置为80、防火墙放行80/443端口,但问题未解决。
相关命令输出
启动httpd时的错误提示
# systemctl start httpd Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
journalctl -xe输出片段
# journalctl -xe -- The unit man-db-cache-update.service has successfully entered the 'dead' state. Nov 29 11:42:32 lab-sailpoint systemd[1]: Started man-db-cache-update.service. -- Subject: Unit man-db-cache-update.service has finished start-up -- Defined-By: systemd -- Support: https://access.redhat.com/support -- -- Unit man-db-cache-update.service has finished starting up. -- -- The start-up result is done. Nov 29 11:42:32 lab-sailpoint systemd[1]: run-rbd3d73a7e68848ab8cca4654b83e1581.service: Succeeded. -- Subject: Unit succeeded -- Defined-By: systemd -- Support: https://access.redhat.com/support -- -- The unit run-rbd3d73a7e68848ab8cca4654b83e1581.service has successfully entered the 'dead' state. Nov 29 11:48:07 lab-sailpoint systemd[1]: Starting The Apache HTTP Server... -- Subject: Unit httpd.service has begun start-up -- Defined-By: systemd -- Support: https://access.redhat.com/support -- -- Unit httpd.service has begun starting up. Nov 29 11:48:07 lab-sailpoint httpd[25392]: [Wed Nov 29 11:48:07.565438 2023] [so:warn] [pid 25392:tid 13> Nov 29 11:48:07 lab-sailpoint httpd[25392]: [Wed Nov 29 11:48:07.565519 2023] [so:warn] [pid 25392:tid 13> Nov 29 11:48:07 lab-sailpoint httpd[25392]: [Wed Nov 29 11:48:07.565527 2023] [so:warn] [pid 25392:tid 13> Nov 29 11:48:07 lab-sailpoint httpd[25392]: [Wed Nov 29 11:48:07.565534 2023] [so:warn] [pid 25392:tid 13> Nov 29 11:48:07 lab-sailpoint httpd[25392]: [Wed Nov 29 11:48:07.565541 2023] [so:warn] [pid 25392:tid 13> Nov 29 11:48:07 lab-sailpoint httpd[25392]: [Wed Nov 29 11:48:07.565547 2023] [so:warn] [pid 25392:tid 13> Nov 29 11:48:07 lab-sailpoint httpd[25392]: [Wed Nov 29 11:48:07.565554 2023] [so:warn] [pid 25392:tid 13> Nov 29 11:48:07 lab-sailpoint httpd[25392]: [Wed Nov 29 11:48:07.565561 2023] [so:warn] [pid 25392:tid 13> Nov 29 11:48:07 lab-sailpoint httpd[25392]: [Wed Nov 29 11:48:07.565568 2023] [so:warn] [pid 25392:tid 13> Nov 29 11:48:07 sailpoint httpd[25392]: [Wed Nov 29 11:48:07.565575 2023] [so:warn] [pid 25392:tid 13> Nov 29 11:48:07 sailpoint httpd[25392]: [Wed Nov 29 11:48:07.565582 2023] [so:warn] [pid 25392:tid 13> Nov 29 11:48:07 sailpoint httpd[25392]: httpd: Syntax error on line 59 of /etc/httpd/conf/httpd.conf:> Nov 29 11:48:07 sailpoint systemd[1]: httpd.service: Main process exited, code=exited, status=1/FAILU>
服务状态列表
# systemctl list-unit-files | egrep 'httpd|sshd|mattermost' httpd.service disabled httpd@.service disabled sshd-keygen@.service disabled sshd.service enabled sshd@.service static httpd.socket disabled sshd.socket disabled sshd-keygen.target static
启用httpd后status输出
# systemctl status httpd.service ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Wed 2023-11-29 13:25:25 EST; 7s ago Docs: man:httpd.service(8) Process: 2596 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE) Main PID: 2596 (code=exited, status=1/FAILURE) Nov 29 13:25:25 sailpoint httpd[2596]: [Wed Nov 29 13:25:25.454837 2023] [so:warn] [pid 2596:tid 1399> Nov 29 13:25:25 sailpoint httpd[2596]: [Wed Nov 29 13:25:25.454848 2023] [so:warn] [pid 2596:tid 1399> Nov 29 13:25:25 sailpoint httpd[2596]: [Wed Nov 29 13:25:25.454856 2023] [so:warn] [pid 2596:tid 1399> Nov 29 13:25:25 sailpoint httpd[2596]: [Wed Nov 29 13:25:25.454867 2023] [so:warn] [pid 2596:tid 1399> Nov 29 13:25:25 sailpoint httpd[2596]: [Wed Nov 29 13:25:25.454875 2023] [so:warn] [pid 2596:tid 1399> Nov 29 13:25:25 sailpoint httpd[2596]: [Wed Nov 29 13:25:25.454886 2023] [so:warn] [pid 2596:tid 1399> Nov 29 13:25:25 sailpoint httpd[2596]: AH00534: httpd: Configuration error: `More than one MPM loaded.` Nov 29 13:25:25 sailpoint systemd[1]: httpd.service: Main process exited, code=exited, status=1/FAILU> Nov 29 13:25:25 sailpoint systemd[1]: httpd.service: Failed with result 'exit-code'. Nov 29 13:25:25 sailpoint systemd[1]: Failed to start The Apache HTTP Server.
端口配置检查
# grep '80' /etc/httpd/conf.d/* # 无输出 # grep '443' /etc/httpd/conf.d/* # 有结果
解决步骤
1. 修复httpd.conf第59行语法错误
先查看该行具体内容:
cat /etc/httpd/conf/httpd.conf | sed -n '59p'
根据输出修正语法问题(比如指令拼写错误、括号不闭合、路径无效等)。
2. 解决多MPM加载问题
Apache在RHEL 8中仅允许加载一个MPM模块(prefork/worker/event),需确保配置中只启用一个:
- 查看当前加载的MPM模块:
httpd -M | grep mpm
- 编辑
/etc/httpd/conf.modules.d/00-mpm.conf,注释掉多余的MPM模块,只保留一个(例如保留event模块):
# LoadModule mpm_prefork_module modules/mod_mpm_prefork.so # LoadModule mpm_worker_module modules/mod_mpm_worker.so LoadModule mpm_event_module modules/mod_mpm_event.so
- 验证配置:
httpd -t
3. 恢复正确的端口监听配置
将/etc/httpd/conf.d/ssl.conf的Listen配置改回443(SSL默认端口),并在主配置中添加80端口监听:
echo "Listen 80" >> /etc/httpd/conf/httpd.conf sed -i 's/Listen 80/Listen 443/' /etc/httpd/conf.d/ssl.conf
4. 验证并重启服务
httpd -t # 检查配置语法 systemctl restart httpd systemctl status httpd
内容的提问来源于stack exchange,提问作者Bach-Nga
相关产品推荐
相关产品推荐

