Выполнение команд wp-cli через SSH с помощью phpseclib

Я автоматизирую установку нескольких блогов 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, чтобы сделать это для нескольких доменов на сервере, так как приходят новые клиенты.

2

Решение

Вероятно, необходимо определить путь к PHP. Когда вы работаете с обычным SSH-клиентом, он, вероятно, работает Файлы инициализации Bash.

В свете этого у меня есть две мысли.

  1. Попробуйте использовать PTY. например.

    $ssh->enablePTY();
    $ssh->exec('passwd');
    echo $ssh->read();
    

    Больше информации: http://phpseclib.sourceforge.net/ssh/pty.html

  2. Ты делаешь $ssh->read('[prompt]'); после выполнения write("command\n")? Возможно, вам придется прочитать поток, чтобы получить команду, которая будет фактически запущена.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]