我正在服务器上自动安装多个WordPress博客。基本上,我需要运行多个wp-cli命令。
使用phpseclib和做exec()
,不起作用......
当我做的事情:
$ssh->exec('wp core download');
我会得到:
/ usr / bin / env:php:没有这样的文件或目录
即使我可以在正常的ssh会话中运行它...
如果我尝试和$ssh->write
命令,并做'\ n'它似乎没有做任何事情。即使我只是尝试做一个简单的命令,如:touch foo.txt
虽然测试“触摸”命令将与exec一起使用...
该系统是Ubuntu 14.04 ......
有任何想法吗?
随着新客户的加入,我必须通过SSH从PHP连接为服务器上的多个域执行此操作。
可能需要定义PHP的路径。当您使用常规SSH客户端进行SH时,它可能正在运行任意数量的Bash initialization files。
鉴于此,我有两个想法。
$ssh->enablePTY();
$ssh->exec('passwd');
echo $ssh->read();
更多信息:http://phpseclib.sourceforge.net/ssh/pty.html$ssh->read('[prompt]');
后做write("command\n")
吗?您可能需要读取流以获取实际运行的命令。