【发布时间】:2023-12-20 21:27:02
【问题描述】:
目的:使用php直接将命令输入到我的世界服务器控制台
我正在尝试使用 php 脚本(从浏览器运行)来 exec() 一个 shell 脚本。当我从终端运行 php 时,它可以工作!但是在浏览器中,什么都没有发生。
exec('sudo -u root sh /home/minecraft/whitelist-reload.sh', $out, $ret_val);
从终端运行时,我得到一个“数组 0”,但浏览器给了我一个“数组 1”
有什么问题? 一旦我运行了 shell,之后的一切难道不应该像你在终端上一样工作吗?(shell 脚本里面有什么重要吗?)
shell 拥有所有 rx 权限,并且在 sudoers 文件中为
www-data ALL = NOPASSWD: /home/minecraft/whitelist-reload.sh
【问题讨论】:
-
使
/home/minecraft/whitelist-reload.sh可执行并尝试'sudo -u root /home/minecraft/whitelist-reload.sh' -
使用 shell_exec() 代替测试目的。它不会给你命令的返回值,而是它的输出,所以你可以看到出了什么问题。