尝试重新启动 Apache,但无法判断它是否正在重新启动——是否有重新启动的日志,或者如果我输入命令行来重新启动,我是否应该期待响应(错误消息、确认、状态等)?
之前从来没有做过并且不确定发生了什么。
这正是我所输入的内容,前面没有 $/#......
命令输入:
sudo apache2ctl restart
- 或者 -
apache2ctl restart
语境:从根目录执行的命令,意思是......“cd /”
结果:看上去什么也没有发生。
答案1
根据您机器上 Apache 和 syslog 的配置方式,可能会有所不同,但是使用现有的 Debian 或 Ubuntu Apache 2 安装,您会在 中找到日志/var/log/apache2/error.log
。如果它重新启动,您应该在日志中清楚地看到它。
此外,检查的输出ps
,特别是开始时间,您应该能够判断它是否已重新启动。
最后一件事,如果你想知道你刚刚运行的命令是成功还是失败,请尝试echo $?
。它将打印最后一条命令的返回码。99% 的情况下,你要找的就是 0。
答案2
apache2ctl
失败时应返回非零状态代码。您可以通过发出如下启动命令来获悉失败情况:
apache2ctl start || echo 'apache2ctl failed'
apache2ctl
如果认为成功了,那么应该看不到任何输出。
如果你喜欢更具体的东西(遵循“信任,但要核实”的格言),你可以检查 apache 是否真的启动并监听连接netstat
,例如
netstat -anp | egrep -i 'http|apache'
如果你看到类似这样的线条,那么你就成功了:
tcp6 0 0 :::80 :::* LISTEN 1506/apache2
tcp6 0 0 :::443 :::* LISTEN 1506/apache2
或者,如果您没有运行 IPv6,您将看到类似这样的内容:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2341/apache2
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 2341/apache2
无论哪种情况,关键点是 apache2 正在侦听众所周知的 www 端口(80,以及可选的 443)上的传入连接。
答案3
当我 时,我的 error.log 中会创建几个 [notice] 条目,apache2ctl restart
以“[notice] 收到 SIGHUP。正在尝试重新启动”开头,以“Apache(各种模块列表)已配置 - 正在恢复正常操作”结尾
答案4
Apache 重启后,你可以查看几个地方。第一个是 /var/log 目录中的 syslog。第二个是 /var/log/apache2 目录中的 Apache 日志