я искал ВОТ чтобы попытаться понять это, но я не полностью понимаю все параметры, поэтому я объясню, что я пытаюсь сделать:
Я хочу выполнить следующую команду на удаленном сервере Linux (Ubuntu) через PHP, используя существующую переменную $ 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), затем декодируйте его в wav с помощью lame, затем обрабатывайте его с помощью инструмента 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 вне строки.
Других решений пока нет …