2016-04-01 11 views
1

複数のWordPressブログをサーバーにインストールする作業を自動化しています。基本的には、複数のwp-cliコマンドを実行する必要があります。phpseclibでSSHでwp-cliコマンドを実行する

$ssh->exec('wp core download'); 

私はちょうど取得します:

は/ usr/binに/私のような何かをするとき...

をphpseclibを使用したとexecをやって、動作しません

env:php:そのようなファイルやディレクトリはありません

正常に実行できますが、通常sshセッション...

私が試してみて、$ ssh->コマンドを書き出して '\ n'とすると、何もしないようです。私はちょうどのような単純なコマンド実行しようとしても:システムはUbuntuの14.04である

...そのテスト「タッチ」コマンドは、EXECで動作しますが

foo.txtのタッチを...

何か案は?

新しい顧客が来るように、サーバ上の複数のドメインに対してこれを行うには、私はPHPからSSH経由で接続する必要があります。

+0

私は、/ usr/local/binにwpとしてセットアップされているwp-cliのフルパスを使ってexecを試してみました – DonVF

答えて

1

おそらくPHPへのパスを定義する必要があります。通常のSSHクライアントを使用しているときは、Bash initialization filesの任意の数が実行されている可能性があります。

これに照らして私には2つの考えがあります。

  1. PTYを使用してください。例えば。

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

    さらに詳しい情報:http://phpseclib.sourceforge.net/ssh/pty.html

  2. あなたはwrite("command\n")をやった後​​をやっていますか?実際に実行されるコマンドを取得するには、ストリームを読み取る必要があります。

関連する問題