我尝试编写一个简单的 php 网页,这样我只需在浏览器中单击一下即可重新加载 apach2 配置。我知道,这是一个安全风险,但我仍然需要它 : )
我能够做到这一点,使用 sudo 和 exec() 的组合,效果很好。我唯一的问题是,当我写出命令“/etc/init.d/apache2 reload”的输出时,只显示“正在重新加载 webserver config: apache2”,但警告消息(我在那里放了一些缺失的 DocumentRoot 目录进行测试)不会显示。
它使用 bash 来显示。
起初我认为我以错误的方式使用了 exec() 命令,但是后来我尝试将 apache2 reload 命令的输出放入文件中(在 bash 中),但警告消息也不存在。
实际上,整个过程的主要目的之一是查看重新加载后是否缺少某些内容,因此我非常需要该警告。有什么想法吗?我如何才能捕获该警告消息?或者我可以在某个日志文件中找到它吗?
(我还没有尝试过使用错误消息,它可能适用于这些,但我也需要收到警告。)
答案1
您可以尝试在 exec 语句中执行的命令行中添加 2>&1。这会将错误输出也传送到标准输出。