根據你的描述,根據我的理解,我認爲你想在基於Linux的Azure WebApps &虛擬機上部署你的應用程序,並讓它在你的本地主機上運行,這是一個PHP應用程序, shell中通過PHP方法shell_exec
的類UNIX程序。
根據我的經驗,有兩種方法可以進行部署。
您需要創建Azure WebApps for Linux的實例,該實例是基於Ubuntu的Docker容器。然後,您可以安裝任何想要部署PHP應用程序的服務,並通過PHP方法shell_exec
直接調用類UNIX程序,而無需任何Azure Linux VM實例來運行類UNIX程序。
您可以使用基於Windows的Azure WebApps實例,但不可能通過shell_exec
方法運行Azure Linux VM上託管的類UNIX程序。要在Azure Linux VM上調用遠程類UNIX程序,有兩種方法可以更改您的PHP應用程序,如下所示。
2.1。通過PHP方法ssh2_connect
/ssh2_auth_password
/ssh2_exec
創建一個ssh會話來連接遠程Linux VM,並通過ssh2_exec
方法執行SSH認證以運行類UNIX程序,如果您已經在Windows上爲Azure WebApp安裝了PHP擴展包ssh2
。我的示例代碼如下。
<?php
$host = '<your Azure linux vm host>';
$port = 22; // First enable the 22 port for Azure Linux VM
$user='<ssh user>';
$passwd='<ssh password>';
$session=ssh2_connect($host, $port);
if($session)
echo "connect successfully.\n";
if(ssh2_auth_password($session, $user, $passwd)) {
echo $user." login OK.\n";
$stream=ssh2_exec($session, "pwd");
stream_set_blocking($stream, true);
if ($stream === FALSE) die("pwd failed");
echo 'pwd: '.stream_get_contents($stream).'<br/>';
}
?>
2.2。或者,您可以創建一個新的PHP應用程序來調用Azure Linux VM上的類UNIX程序,以發佈WebService API或RESTful API,以便在Azure WebApp上由您的PHP應用程序調用。
希望它有幫助。