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

Tim*_*ser 1 deployment compiler-errors playframework playframework-2.3

我的笔记本电脑上有一个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#
Run Code Online (Sandbox Code Playgroud)

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

Sal*_*lem 5

可能Killed是因为你没有足够的内存来编译你的应用程序.

无论哪种方式,我认为部署已编译的应用程序比在现场编译它更好.你可以使用./activator dist.

在这样将生成一个zip文件YOUR_PROJECT_DIR/target/universal名为YOUR-PROJECT-NAME-VERSION.zip一切已编译和打包已经每需要依赖.然后,您可以将此文件上载到生产服务器中的某个位置,将其解压缩,然后使用启动服务器

$ EXTRACTED_FOLDER/bin/YOUR-APP-NAME
Run Code Online (Sandbox Code Playgroud)

如果您仍想在生产服务器中构建它,请尝试减少激活器使用的内存

$ ./activator -mem 200 # MAX 200mb
// (...)
[PROJECT-NAME] ~start
Run Code Online (Sandbox Code Playgroud)

请注意,~run将以开发模式启动您的服务器(即错误时可以显示堆栈跟踪等合理信息)并在更改时重新编译它,因此您可能希望使用start~start替代.