补充说明
httpd 是 Apache HTTP Server 在 RHEL/CentOS/Fedora 上的可执行文件名,也是 systemd 服务名;Debian/Ubuntu 上对应的是 apache2,配置文件布局也不同(/etc/httpd/ 对 /etc/apache2/)。它是使用最广泛的 Web 服务器之一,支持虚拟主机、反向代理、TLS、URL 重写等。
日常运维中,httpd 主要用于启动/停止服务、检查配置语法、查看已加载模块与虚拟主机映射。直接运行二进制做 -k restart 等操作在 systemd 系统上并不推荐,应优先使用 systemctl reload httpd,以便服务管理器掌握进程状态。
改配置后务必先 httpd -t 检查语法,再平滑重载。配置文件主入口为 /etc/httpd/conf/httpd.conf,站点配置通常放在 /etc/httpd/conf.d/。
语法
httpd [选项]
选项
-t:检查配置语法,返回Syntax OK表示通过-f 文件:指定主配置文件-d 目录:指定 ServerRoot-D 参数:定义配置中使用的-D条件参数-k start|stop|restart|graceful|graceful-stop:控制服务动作-M:列出已加载模块-S:显示虚拟主机映射摘要-l:列出编译进核心的模块-v:显示版本-V:显示版本与编译参数-X:单进程调试模式(仅排障)
实例
# 检查配置语法
sudo httpd -t
# 查看已加载模块
httpd -M
# 查看虚拟主机配置摘要
httpd -S
# 启动、重载、停止服务(systemd)
sudo systemctl start httpd
sudo systemctl reload httpd
sudo systemctl stop httpd
# 设置开机自启并查看状态
sudo systemctl enable --now httpd
systemctl status httpd
# 查看监听端口
sudo ss -lntp | grep httpd
# 修改配置后先检查再重载
sudo httpd -t && sudo systemctl reload httpd
Debian/Ubuntu 上的等价命令为 apache2ctl -t、apache2ctl -S,服务名为 apache2,启用站点用 a2ensite/a2dissite。RHEL 系的 SELinux 可能阻止 httpd 访问非标准目录,需要配合 semanage fcontext 与 restorecon 调整标签。