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

时间:2015-01-15 12:19:04

标签: deployment playframework compiler-errors 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#

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

1 个答案:

答案 0 :(得分:5)

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

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

执行此操作

这将在名为YOUR_PROJECT_DIR/target/universal的{​​{1}}中生成一个zip文件,其中包含已编译的所有内容,并且已经打包了所有必需的依赖项。然后,您可以将此文件上载到生产服务器中的某个位置,将其解压缩,然后使用

启动服务器
YOUR-PROJECT-NAME-VERSION.zip

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

减少激活器使用的内存
$ EXTRACTED_FOLDER/bin/YOUR-APP-NAME

请注意$ ./activator -mem 200 # MAX 200mb // (...) [PROJECT-NAME] ~start 将以开发模式启动您的服务器(即错误时可显示堆栈跟踪等合理信息)并在更改时重新编译它,因此您可能希望使用~run或{{ 1}}而不是。