使用phpseclib通过SSH运行wp-cli命令

问题描述 投票:2回答:1

我正在服务器上自动安装多个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 phpseclib wp-cli
1个回答
2
投票

可能需要定义PHP的路径。当您使用常规SSH客户端进行SH时,它可能正在运行任意数量的Bash initialization files

鉴于此,我有两个想法。

  1. 尝试使用PTY。例如。 $ssh->enablePTY(); $ssh->exec('passwd'); echo $ssh->read(); 更多信息:http://phpseclib.sourceforge.net/ssh/pty.html
  2. 你在做$ssh->read('[prompt]');后做write("command\n")吗?您可能需要读取流以获取实际运行的命令。
© www.soinside.com 2019 - 2024. All rights reserved.