部署 Yesod 网络应用程序

Deploying Yesod web app

我有一个简单的 Yesod 网络应用程序。 我可以按照 http://www.yesodweb.com/page/quickstart 中的说明进行操作,并检查 stack exec -- Yesod devel 是否正常工作。

我使用的服务器(Amazon EC2)内存只有1G,所以无法编译Yesod web。我用我的本地机器来构建。他们都使用 Ubuntu 14.04.

http://www.yesodweb.com/book/deploying-your-webapp 开始,我需要三个组件来部署到其他机器。

  1. 你的可执行文件。
  2. 配置文件夹。
  3. 静态文件夹。

我很容易找到 config/static 文件夹,但我不确定在哪里可以找到可执行文件。除此之外,如何在不使用 stack exec -- Yesod devel 的情况下 运行 可执行文件?

据我所知,可执行文件应该位于项目目录的 build 子目录中。我认为这是一个隐藏目录(名称以点开头),因此您可能需要 运行 "ls -a" 才能看到它。

到运行 - 只需执行可执行文件:)(附加'&'使其在后台运行)。

一旦您有了希望投入生产的最终版本,您可能会将可执行文件配置为在 VM 启动时自动启动,以检测可执行文件是否崩溃等。

祝你好运, 迈克尔

stack build命令给我提示:

my-project-0.0.0: install
Installing library in
/home/a/my-project/.stack-work/install/x86_64-linux/lts-3.13/7.10.2/lib/x86_64-linux-ghc-7.10.2/my-project-0.0.0-Khn8lQEgR1HARzYGStlvPe
Installing executable(s) in
/home/a/my-project/.stack-work/install/x86_64-linux/lts-3.13/7.10.2/bin
Registering my-project-0.0.0...

可执行文件位于 /home/a/my-project/.stack-work/install/x86_64-linux/lts-3.13/7.10.2/bin。我可以复制 ~/deployment 目录中的文件(可执行文件、静态文件和配置文件)以检查 Yesod 是否正常工作。