命令“apache 2ctl-S”无法与exec()方法一起工作[重复]

brccelvz  于 2023-04-07  发布在  Apache
关注(0)|答案(1)|浏览(96)

此问题已在此处有答案

Display virtual hosts from a php script?(1个答案)
昨天关门了。
我尝试使用PHP脚本获取服务器的虚拟主机列表,但每当我尝试使用exec()函数运行apache2ctl -S命令时,它都不起作用。
问题是,每当我通过终端运行相同的命令时,它都工作得很好,但是当我用exec运行它时,它只是打印Action '-S' failed

5jvtdoz2

5jvtdoz21#

**我更正了答案,因为我不确定我是否理解了请求的上下文。

如果脚本在网页上运行,则应检查Web服务器是否具有正确的权限:尝试sudo -u www-data sh(apache/ngnix用户的sudo),然后启动apache2ctl -S。您将看到Web服务器是否可以使用该参数启动该命令。
如果脚本在CLI模式下运行,它将拥有启动它的用户的权限。但是,您可以尝试将 stderr 重定向到 stdout 以捕获一些丢失的输出:

exec ('apache2ctl -S 2>&1', $output, $returnCode);

相关问题