在 Linux 中管理 Apache Web 服务器的有用命令
在本教程中,我们将介绍一些最常用的Apache (HTTPD)服务管理命令,作为开发人员或系统管理员,您应该了解这些命令,并随时掌握它们。我们将展示Systemd和SysVinit的命令。
另请参阅:每个 Linux 用户都必须知道的 10 个最常用的 Nginx 命令
确保以下命令必须以root或sudo 用户身份执行,并且可以在任何 Linux 发行版(例如CentOS、RHEL、Fedora Debian和Ubuntu )上运行。
安装 Apache 服务器
要安装 Apache 网络服务器,请使用默认分发包管理器,如图所示。
$ sudo apt install apache2 [On Debian/Ubuntu] $ sudo yum install httpd [On RHEL/CentOS] $ sudo dnf install httpd [On Fedora 22+] $ sudo zypper install apache2 [On openSUSE]
检查 Apache 版本
要检查 Linux 系统上安装的 Apache Web 服务器的版本,请运行以下命令。
$ sudo httpd -v OR $ sudo apache2 -v
示例输出
Server version: Apache/2.4.6 (CentOS) Server built: Nov 5 2018 01:47:09
如果想要显示 Apache 版本号和编译设置,请使用-V
如图所示的标志。
$ sudo httpd -V OR $ sudo apache2 -V
示例输出
Server version: Apache/2.4.6 (CentOS) Server built: Nov 5 2018 01:47:09 Server's Module Magic Number: 20120211:24 Server loaded: APR 1.4.8, APR-UTIL 1.5.2 Compiled using: APR 1.4.8, APR-UTIL 1.5.2 Architecture: 64-bit Server MPM: prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=256 -D HTTPD_ROOT="/etc/httpd" -D SUEXEC_BIN="/usr/sbin/suexec" -D DEFAULT_PIDLOG="/run/httpd/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf"
检查 Apache 配置语法错误
要检查 Apache 配置文件是否存在语法错误,请运行以下命令,它将在重新启动服务之前检查配置文件的有效性。
$ sudo httpd -t OR $ sudo apache2ctl -t
示例输出
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using example.com. Set the 'ServerName' directive globally to suppress this message Syntax OK
启动 Apache 服务
要启动Apache服务,请运行以下命令。
------------ On CentOS/RHEL ------------ $ sudo systemctl start httpd [On Systemd] $ sudo service httpd start [On SysVInit] ------------ On Ubunt/Debian ------------ $ sudo systemctl start apache2 [On Systemd] $ sudo service apache2 start [On SysVInit]
启用 Apache 服务
上述命令仅暂时启动 Apache 服务,为了使其在系统启动时自动启动,请运行以下命令。
------------ On CentOS/RHEL ------------ $ sudo systemctl enable httpd [On Systemd] $ sudo chkconfig httpd on [On SysVInit] ------------ On Ubunt/Debian ------------ $ sudo systemctl enable apache2 [On Systemd] $ sudo chkconfig apache2 on [On SysVInit]
重新启动 Apache 服务
要重新启动 Apache(停止然后启动服务),请运行以下命令。
------------ On CentOS/RHEL ------------ $ sudo systemctl restart httpd [On Systemd] $ sudo service httpd restart [On SysVInit] ------------ On Ubunt/Debian ------------ $ sudo systemctl restart apache2 [On Systemd] $ sudo service apache2 restart [On SysVInit]
查看 Apache 服务状态
要检查 Apache 服务运行时状态信息,请运行以下命令。
------------ On CentOS/RHEL ------------ $ sudo systemctl status httpd [On Systemd] $ sudo service httpd status [On SysVInit] ------------ On Ubunt/Debian ------------ $ sudo systemctl status apache2 [On Systemd] $ sudo service apache2 status [On SysVInit]
重新加载 Apache 服务
如果您对 Apache 服务器配置进行了任何更改,则可以通过运行以下命令指示服务重新加载其配置。
------------ On CentOS/RHEL ------------ $ sudo systemctl reload httpd [On Systemd] $ sudo service httpd reload [On SysVInit] ------------ On Ubunt/Debian ------------ $ sudo systemctl reload apache2 [On Systemd] $ sudo service apache2 reload [On SysVInit]
停止 Apache 服务
要停止Apache服务,请使用以下命令。
------------ On CentOS/RHEL ------------ $ sudo systemctl stop httpd [On Systemd] $ sudo service httpd stop [On SysVInit] ------------ On Ubunt/Debian ------------ $ sudo systemctl stop apache2 [On Systemd] $ sudo service apache2 stop [On SysVInit]
显示 Apache 命令帮助
最后但同样重要的一点是,您可以通过运行以下命令获取有关 systemd 下的Apache服务命令的帮助。
$ sudo httpd -h OR $ sudo apache2 -h OR $ systemctl -h apache2
示例输出
Usage: httpd [-D name] [-d directory] [-f file] [-C "directive"] [-c "directive"] [-k start|restart|graceful|graceful-stop|stop] [-v] [-V] [-h] [-l] [-L] [-t] [-T] [-S] [-X] Options: -D name : define a name for use in directives -d directory : specify an alternate initial ServerRoot -f file : specify an alternate ServerConfigFile -C "directive" : process directive before reading config files -c "directive" : process directive after reading config files -e level : show startup errors of level (see LogLevel) -E file : log startup errors to file -v : show version number -V : show compile settings -h : list available command line options (this page) -l : list compiled in modules -L : list available configuration directives -t -D DUMP_VHOSTS : show parsed vhost settings -t -D DUMP_RUN_CFG : show parsed run settings -S : a synonym for -t -D DUMP_VHOSTS -D DUMP_RUN_CFG -t -D DUMP_MODULES : show all loaded modules -M : a synonym for -t -D DUMP_MODULES -t : run syntax check for config files -T : start without DocumentRoot(s) check -X : debug mode (only one worker, do not detach)
您可以通过查阅以下内容找到有关systemctl的更多信息:如何在 Linux 中使用“Systemctl”管理“Systemd”服务和单元。
您可能还想阅读以下与 Apache 相关的文章。
- 提升 Apache Web 服务器性能的 5 个技巧
- 如何监控 Apache Web 服务器负载和页面统计信息
- 如何使用“Apache GUI”工具管理 Apache Web 服务器
- 如何在 Linux 中更改 Apache HTTP 端口
- 13 个 Apache Web 服务器安全和强化技巧
- 使用 Mod_Security 和 Mod_evasive 模块保护 Apache 免受暴力破解或 DDoS 攻击
现在就这些了!在本文中,我们解释了您应该知道的最常用的Apache/HTTPD服务管理命令,包括启动、启用、重新启动和停止 Apache。如果您有任何问题或意见,您可以随时通过下面的反馈表与我们联系。