Azure上的PHP应用程序为“控制台应用程序”

时间:2012-08-16 10:33:55

标签: php azure websocket

有没有办法在Windows Azure上从命令行轻松运行PHP应用程序?

我有一个标准的Web应用程序(在Azure上),我想使用WebSockets进行通信。 所以我需要在Azure上一直运行WebSocket服务器。

我使用Wrench project我需要“一直”运行以侦听某些端口并处理来自JavaScript发送的WebSocket的消息。

再次 - 在Azure上运行“持久性” PHP应用程序是多么容易?

提前谢谢。

3 个答案:

答案 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,这是一种简单的入门方式,但这取决于您将在“服务器端”执行的操作。我提到的这项服务可以用作“消息”调度员,在变化等方面为“客户”提供服务。嗯,换句话说,它是一种提升“常规”网络应用程序的方式..