使用 PHP 在远程服务器上执行命令 - 不需要回调/流

Execute a command on a remote server with PHP - no callback / stream required

我一直在寻找 HERE 来尝试解决这个问题,但我并不完全理解所有参数,所以我将解释我正在尝试做的事情:

我想 运行 通过 PHP 在远程 Linux (Ubuntu) 服务器上使用现有变量 $myfile (代表类似 'music.mp3') -

wget http://someaddress.com/$myfile /usr/incoming/$myfile lame --decode /usr/incoming/$myfile - | stereo_tool_cmd - - -s /usr/settings/process.sts | lame -b 128 - /usr/processed/$myfile

这是告诉远程服务器下载一个文件 (http://someaddress.com/$myfile),然后用 lame 将其解码为 wav,然后使用 Stereo Tool 对其进行处理,然后将其重新编码为 128k mp3 和移动到指定目录。

我不需要原始服务器接收任何关于进程的反馈,它只需要在远程服务器上启动它。我将如何在 PHP 中进行设置?

以下内容来自我上面链接的 PHP.net 页面,可能是我需要使用的内容,但我不确定如何设置它。

 <?php
 $connection = ssh2_connect('shell.example.com', 22);
 ssh2_auth_password($connection, 'username', 'password');

 $stream = ssh2_exec($connection, '/usr/local/bin/php -i');
 ?>

怎么样 :

 <?php
 $connection = ssh2_connect('shell.example.com', 22);
 ssh2_auth_password($connection, 'username', 'password');

 $stream = ssh2_exec($connection,'wget http://someaddress.com/'.$myfile.
    ' /usr/incoming/'.$myfile.' lame --decode /usr/incoming/'.$myfile.
    ' - | stereo_tool_cmd - - -s /usr/settings/process.sts | lame -b 128 - /usr/processed/'.$myfile);
?>

那应该没问题。

编辑 1 最好将 php 变量放在字符串之外。