OSX 如何在终端中显示 apache 状态?

mgP*_*ePe 11 mac-osx apache-2.2

我注意到在我的 linux 服务器上,当我输入 apachectl restart 时,它给了我很少但很有帮助的反馈,例如restarting然后[ok][fail]在行尾。不多,但至少我知道发生了什么,我可以去查看日志。

在我的 OS X 上,我什么也得不到。立即下一行:

sh-3.2# /usr/sbin/apachectl stop   
sh-3.2# /usr/sbin/apachectl start
sh-3.2# 
Run Code Online (Sandbox Code Playgroud)

如何启用这些“调试”功能?

Ran*_*ley 34

我的 mac 也有同样的问题。当我尝试启动 apache 并且没有任何反应时,我会立即运行此命令。就我而言,问题似乎总是出在 apache 配置文件中。

apachectl configtest
Run Code Online (Sandbox Code Playgroud)


Sve*_*ven 9

apachectl在 Mac 上是一些launchctl命令的包装器(只需查看文件)。不幸的是,launchctl 在开始出现问题时不会以错误代码退出httpd,因此脚本没有简单的方法来显示任何内容,即使它尝试显示。

您可以自己执行的一项基本检查是在apachectl start命令之后检查 Apache 进程是否存在 。

ps aux | grep httpd
Run Code Online (Sandbox Code Playgroud)


Mic*_*nry 6

在 apachectl 包装器脚本中,你在最后贴上这样的东西怎么样。

tail -5 /var/log/httpd/error_log
Run Code Online (Sandbox Code Playgroud)

你应该在正常的启动中看到这样的东西

  • [Fri Apr 22 23:39:20 2011] [notice] Digest:生成用于
    摘要认证的秘密......
  • [2011 年 4 月 22 日星期五 23:39:20] [通知] 摘要:完成
  • [2011 年 4 月 22 日星期五 23:39:20] [警告] pid 文件
    /mlk/apache/pid/httpd.pid 被覆盖 -- 之前的 Apache 运行不正常关闭?
  • [Fri Apr 22 23:39:20 2011] [notice] Apache/2.0.63 (Unix) DAV/2 已配置——恢复正常操作

否则,任何错误都应至少部分显示在此处。上面突出显示了关键短语。

附加: /usr/sbin/apachectl 归 root 所有,您必须是特权用户才能执行此操作。须藤vi /usr/sbin/apachectl

移到文件末尾并将其插入“esac”和“exit $ERROR”行之间。IE。

esac
sleep 2; tail -5 /var/log/httpd/error_log
exit $ERROR
Run Code Online (Sandbox Code Playgroud)

请注意,无论您对脚本采取什么操作,停止启动,重新启动,这都会打印出最后几行。您可能只想将其放在 case 语句的开始部分。