我正在尝试使用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执行命令。
如果有人知道如何解决这个问题会很好!