我目前正在尝试使用 PHP 为我的 V-Server(运行 Debian 6.0.6)构建一个屏幕管理器。
我的脚本确实已经显示了 runnung 屏幕,但是我在运行新屏幕时失败了:
webstat.php:
exec('sudo -u root screen -ls',$result);
print_r($result);
添加到 sudoers (我知道这是不安全的,但在测试阶段更容易):
www-data ALL=(ALL) NOPASSWD: ALL
这是我尝试在新屏幕中运行 PHP 文件的代码:
exec('sudo -u root screen -S screenId php /var/www/script.php parameter1=1',$result);
print_r($result);
这只是输出“必须连接到终端。”,但使用 SSH 这个命令运行良好。
接下来我阅读了 SSH 命令并尝试了这个命令:
sudo -u root ssh -t root@box screen -S screenId php /var/www/script.php parameter1=1
该命令使用 PuTTY 工作,但是当我在 PHP 中使用此命令时,它没有给出任何结果,也没有启动新的屏幕会话:
exec('sudo -u root ssh -t root@box screen -S screenId php /var/www/script.php parameter1=1',$result);
print_r($result);
我的 V-Server 上没有禁用任何功能。我不想编写我用 PHP 调用的 bash 脚本,我想直接用 PHP 执行命令。
如果有人知道如何解决这个问题,那就太好了!