如何 运行 Phoenix 永远投入生产

How to Run Phoenix in Production Forever

我正在尝试 运行 我的 Phoenix 应用程序永远投入生产,即独立于我的终端进程。我在 Phoenix 指南和 Whosebug 问题中看到我可以使用 elixir --detached,但我无法正确使用这些命令。事实上,我曾经能够像那样启动它,但我尝试了太多命令,以至于我什至不知道是哪一个命令成功的(也是因为没有消息可以清楚地说明)。 所以,使用最新版本的 Phoenix (1.1) 和 Elixir (1.1.1),命令是什么: 1)永久启动服务器(作为守护进程); 2) 停止服务器而不需要重新启动服务器?

我从来不知道如何使用 --detached 开关将 运行 一个 Elixir/Phoenix 应用程序作为守护进程。但是,我可以告诉您,使用 Exrm 构建 OTP 版本是可行的方法。乍一看可能有点吓人,但我保证这很容易,经过几次构建后,您将几乎不费吹灰之力。此外,如果您现在就花时间学习 Exrm,以后就不必优化您的生产部署了。

关于这个主题有一个Phoenix Guide for Exrm Releases. Additionally, I just released an ExCasts epsiode。虽然这一集没有专门介绍带有 Exrm 的 Phoenix 版本,但所有概念和演示都是适用的。使用 Exrm 构建 OTP 版本有很多好处,包括使用多个命令生成的脚本,包括但不限于:consoleremote_console 和热门 upgrade/downgrade。这意味着您可以在不重新启动应用程序的情况下部署您的应用程序。

希望这对您有所帮助,祝您好运!

另请参阅优秀的酒厂图书馆。 GitHub 在这里:https://github.com/bitwalker/distillery

还有一个指南让你的 phoenix 应用程序启动和 运行ning:

https://hexdocs.pm/distillery/phoenix-walkthrough.html#phoenix-walkthrough

之后,您可以根据自己的喜好运行在前台或后台处理。