在我的项目中,我必须从用户通过HTML表单获取两个文件(fastq它的Bioinformatics文件)并通过一些UNIX程序(我在服务器端脚本中使用PHP)分析它,这只在UNIX OS中支持(我是只需使用shell_exec()来运行所有UNIX程序)。现在我已经在本地主机上实现了它,并且每件事情都运行良好。
现在我必须在Azure中做同样的事情。我在Azure Web应用程序中创建了一个网页,我在同一个帐户中有一个UNIX VM。我想知道我如何免费连接两者(我已经看过Integrate your app with an Azure Virtual Network但他们正在实施额外收费)。
答案 0 :(得分:0)
根据您的描述,根据我的理解,我认为您希望在Azure WebApps&基于Linux的VM,使其与本地主机一样工作,这是一个PHP应用程序,并通过PHP方法java.lang.NoSuchMethodError: .....
在shell中调用类似UNIX的程序。
根据我的经验,有两种方法可以进行部署。
您需要为Linux创建Azure WebApps实例,这是一个基于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方法shell_exec
/ ssh2_connect
/ ssh2_auth_password
创建一个ssh会话来连接远程Linux VM并通过ssh2_exec
方法执行SSH身份验证以运行类UNIX程序,如果您已在Windows上为Azure WebApps安装了PHP扩展包ssh2_exec
。我的示例代码如下。
ssh2
2.2。或者,您可以创建一个新的PHP应用程序来调用Azure Linux VM上的类UNIX程序,以发布WebService API或RESTful API,以便由Azure WebApps上的PHP应用程序调用。
希望它有所帮助。