1

How can I restart if a directory 'xyz' exist in the remote SSH server using PHP-SSH2?

 <?php
 function fsmoke_ping($command_name1, $menu_name1, $title_name1, $host_ip1)
 {
    $connection = ssh2_connect('http://xxxx.com', 22);
    ssh2_auth_password($connection, 'username', 'password');     

    $sftp = ssh2_sftp($connection);
    $handle = file_exists('ssh2.sftp://' . $sftp . '/etc/xyz/devices/$menu_name1', 'w+')  or die('Cannot open file:  '.$menu_name1);


    $data = "++$menu_name1\nprobe = $command_name1\n menu = $menu_name1\n title = $title_name1\n host = $host_ip1";
    fwrite($handle, $data);
    fclose($handle);

    exec(`sudo /etc/init.d/xyz reload`);

}
?>

in this,

 exec(`sudo /etc/init.d/xyz reload`); 

is not working.so how can i restart it in here??

4

3 に答える 3

1

明らかにssh2_execexecローカルマシンでステートメントを実行します。

于 2013-04-19T12:03:44.810 に答える
1
$connection = ssh2_connect('http://xxxx.com', 22);

なぜそこに http:// があるのですか?

また、sudo には、PECL ssh2 拡張機能では簡単に解決できない問題がいくつかあります。代わりに、純粋な PHP SSH2 ライブラリである phpseclibを使用することをお勧めします。彼らのウェブサイトには、sudo の使用方法の具体的な例があります。

http://phpseclib.sourceforge.net/ssh/examples.html#sudo

于 2013-04-19T15:18:48.037 に答える