有没有办法在Windows Azure上从命令行轻松运行PHP应用程序?
我有一个标准的Web应用程序(在Azure上),我想使用WebSockets进行通信。 所以我需要在Azure上一直运行WebSocket服务器。
我使用Wrench project我需要“一直”运行以侦听某些端口并处理来自JavaScript发送的WebSocket的消息。
再次 - 在Azure上运行“持久性” PHP应用程序是多么容易?
提前谢谢。
答案 0 :(得分:2)
桑德里诺的答案很好,但我更喜欢ProgramEntryPoint来做这类事情。后台任务的问题在于(除非你自己构建一些东西)没有任何东西在监视它。使用ProgramEntryPoint
,Windows Azure将监视该进程,如果它因任何原因退出,则将重新启动角色实例。
修改强>:
Sandrino指出PHP程序并不是唯一运行的程序。 (还有一个网站。)在这种情况下,我建议在Run()
的{{1}}中启动php.exe。 WebRole.cs
它,然后对其进行Process.Start
。这样,如果进程退出,角色本身将退出.WaitForExit()
,导致角色实例重新启动。有关示例,请参阅http://blog.smarx.com/posts/using-other-web-servers-on-windows-azure。
答案 1 :(得分:0)
为了将PHP脚本作为命令行应用程序运行,您应该使用PHP CLI (command line interface)。
php.exe -f "yourWebSocketServce.php" -- -arg1 -arg2 -arg3
现在,要在Windows Azure中运行此功能,您需要定义运行此命令的startup task。您将看到默认任务类型为简单,这意味着您的角色启动将阻止,直到任务完成。但是在你的情况下,在PHP中运行WebSocket将是一个阻塞过程,这就是你应该将类型改为后台的原因(这将确保实例在你的WebSocket服务器运行时继续启动)。 / p>
答案 2 :(得分:0)
这是Azure上的WebSockets服务。 - Live XSockets.NET
查看http://live.xsockets.net,这是一种简单的入门方式,但这取决于您将在“服务器端”执行的操作。我提到的这项服务可以用作“消息”调度员,在变化等方面为“客户”提供服务。嗯,换句话说,它是一种提升“常规”网络应用程序的方式..