运行 wp-cli 命令通过带有 phpseclib 的 SSH
Running wp-cli commands through SSH with phpseclib
我正在一台服务器上自动安装多个 WordPress 博客。基本上,我需要 运行 多个 wp-cli 命令。
使用 phpseclib 并执行 exec()
,不起作用...
当我做类似的事情时:
$ssh->exec('wp core download');
我会得到:
/usr/bin/env: php: No such file or directory
尽管我可以 运行 没问题,但在正常的 ssh 会话中...
如果我尝试 $ssh->write
命令并执行 '\n' 它似乎没有做任何事情。即使我只是尝试执行一个简单的命令,如:touch foo.txt
尽管该测试 "touch" 命令将与 exec 一起使用...
系统是Ubuntu14.04...
有什么想法吗?
随着新客户的加入,我必须从 PHP 通过 SSH 连接才能为服务器上的多个域执行此操作。
可能需要定义 PHP 的路径。当您使用常规 SSH 客户端 SH 时,它可能 运行ning 任意数量的 Bash initialization files.
鉴于此,我有两个想法。
尝试使用 PTY。例如
$ssh->enablePTY();
$ssh->exec('passwd');
echo $ssh->read();
你在做完 write("command\n")
之后还在做 $ssh->read('[prompt]');
吗?您可能需要读取流以使命令实际为 运行.
我正在一台服务器上自动安装多个 WordPress 博客。基本上,我需要 运行 多个 wp-cli 命令。
使用 phpseclib 并执行 exec()
,不起作用...
当我做类似的事情时:
$ssh->exec('wp core download');
我会得到:
/usr/bin/env: php: No such file or directory
尽管我可以 运行 没问题,但在正常的 ssh 会话中...
如果我尝试 $ssh->write
命令并执行 '\n' 它似乎没有做任何事情。即使我只是尝试执行一个简单的命令,如:touch foo.txt
尽管该测试 "touch" 命令将与 exec 一起使用...
系统是Ubuntu14.04...
有什么想法吗?
随着新客户的加入,我必须从 PHP 通过 SSH 连接才能为服务器上的多个域执行此操作。
可能需要定义 PHP 的路径。当您使用常规 SSH 客户端 SH 时,它可能 运行ning 任意数量的 Bash initialization files.
鉴于此,我有两个想法。
尝试使用 PTY。例如
$ssh->enablePTY(); $ssh->exec('passwd'); echo $ssh->read();
你在做完
write("command\n")
之后还在做$ssh->read('[prompt]');
吗?您可能需要读取流以使命令实际为 运行.