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