在 Ubuntu 14.04 生产服务器上部署 Play Framework 2.3.x(Java 样式)

Deploying Play Framework 2.3.x (Java style) on Ubuntu 14.04 production server

我的笔记本电脑上有一个 Play 应用程序,我正试图在我的生产服务器上安装它 运行。应用程序在本地编译和运行没有错误。

在我的生产服务器上,我执行以下操作:

root@example:~/mysite# ./activator
[info] Loading project definition from home/mysite/project
[info] Set current project to mysite (in build file:/home/mysite/)
[mysite] $ ~run

--- (Running the application, auto-reloading is enabled) ---

[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000

(Server started, use Ctrl+D to stop and go back to the console...)

[info] Compiling 4 Scala sources and 2 Java sources to /home/mysite/target/scala-2.11/classes...
[info] 'compiler-interface' not yet compiled for Scala 2.11.1. Compiling...
Killed
root@example:~/mysite#

如您所见,`compiler-interface' 尚未编译。我想知道这是为什么。是因为我没有安装Scala编译器吗?

可能 Killed 部分是因为您没有足够的内存来编译您的应用程序。

无论哪种方式,我认为部署已编译的应用程序比就地编译它更好。您可以使用 ./activator dist.

这将在 YOUR_PROJECT_DIR/target/universal 中生成一个名为 YOUR-PROJECT-NAME-VERSION.zip 的 zip 文件,其中包含已编译的所有内容以及已打包的所有需要​​的依赖项。然后,您可以将此文件上传到生产服务器中的某个位置,解压缩,然后使用

启动服务器
$ EXTRACTED_FOLDER/bin/YOUR-APP-NAME

如果您仍想在生产服务器中构建它,请尝试使用

减少激活器使用的内存
$ ./activator -mem 200 # MAX 200mb
// (...)
[PROJECT-NAME] ~start

请注意 ~run 将以开发模式启动您的服务器(即错误时可以显示堆栈跟踪等敏感信息)并在更改时重新编译它,因此您可能需要使用 start~start 相反。