PHP浏览器内脚本无法重新启动/停止/启动过程

php in-browser script cant restart/stop/start proccess

提问人:user14436239 提问时间:11/1/2023 最后编辑:user14436239 更新时间:11/1/2023 访问量:32

问:

我有一个简单的脚本,它必须在服务器上重新启动进程:这个脚本无法从浏览器执行,我不知道他怎么了。 因为如果我跑:它有效!exec("systemctl stop listener.service");exec("systemctl status listener.service | grep Active");

我试过了:

$command = "systemctl stop listener.service";
system($command);
shell_exec($command);
exec($command);

$command = "sudo systemctl stop listener.service";
system($command);
shell_exec($command);
exec($command);

我添加了“%www-data ALL=(ALL:ALL) ALL”的想法。浏览器显示 0 个错误(启用了错误报告,我特别试图犯错误 - 它显示在浏览器中,但此脚本显示 0 个错误。我已经根据需要关闭了所有标签。

没有什么是有效的。

我什至尝试从 php 运行 python 脚本 - 它仍然不起作用。 如果我尝试从服务器控制台运行脚本 - 它可以工作,即使我没有授予对脚本的root访问权限。如果我尝试从服务器“php -a”控制台运行脚本 - 它可以工作,但它不能从浏览器中工作。Idk这个脚本有什么问题......

php linux 权限 systemctl

评论

1赞 Barmar 11/1/2023
用于 Web 服务器的用户 ID 是否有权在不输入密码的情况下使用?sudo
0赞 JoSSte 11/1/2023
1.您的HTTP错误日志怎么说。2.“从浏览器运行”我假设您已将其放入 .php 文件中并将其托管在 Web 服务器上。- 您是否将代码包含在 and 标签中?3. 您是否添加了一些语句来指示代码已运行或只是查看服务的状态?4. 托管您的 HTTP 服务器的用户是否有权在没有密码的情况下运行?或者您的网络服务器是否以 root 身份托管?请编辑您的问题并提供更多信息<?php ?>echosudo
0赞 user14436239 11/1/2023
我添加了“%www-data ALL=(ALL:ALL) ALL”的想法。浏览器显示 0 个错误(启用了错误报告,我试图犯错误 - 它显示在浏览器中。我已经根据需要关闭了所有标签。
0赞 Barmar 11/1/2023
您需要选择允许它在不输入密码的情况下运行。查看 documentation.arcserve.com/Arcserve-UDP/available/7.0/ENU/...NOPASSWDsudo

答:

0赞 user14436239 11/1/2023 #1

最后,我必须使用“sudo visudo”添加指令:

%www-data ALL=(ALL) NOPASSWD: ALL

现在它起作用了。 感谢@Barmar