Command 'apache2ctl -S' 不使用 exec() 方法

问题描述 投票:0回答:1

我正在尝试使用 PHP 脚本获取服务器的虚拟主机列表,但每当我尝试使用 exec() 函数运行

apache2ctl -S
命令时,它都不起作用。

问题是,每当我通过终端运行相同的命令时,它工作得很好,但是当我用 exec 运行它时,它只打印 Action '-S' failed.

php apache exec
1个回答
0
投票

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

如果脚本在网页上运行,您应该检查网络服务器是否具有正确的权限:尝试

sudo -u www-data sh
(对您的apache/ngnix用户执行sudo)然后启动
apache2ctl -S
。您将看到网络服务器是否可以使用该参数启动该命令。

如果脚本以CLI模式运行,它将拥有启动它的用户的权限。但是,您可以尝试将 stderr 重定向到 stdout 以捕获一些丢失的输出:

exec ('apache2ctl -S 2>&1', $output, $returnCode);
© www.soinside.com 2019 - 2024. All rights reserved.