3. 编译和发布
Sakai 如何使用 Maven
以下步骤仅仅是简单介绍如何开始使用 maven 来编译和发布 sakai ,更多的细节请参阅: sakai_maven.doc in reference/docs/architecture 和 https://source.sakaiproject.org/svn/reference/tags/sakai_2-2-1/docs/architecture/sakai_maven.doc
3.1. 下载源文件
通过 http://www.sakaiproject.org/ 下载所需要的 sakai 源文件。
通过版本管理获取源代码
有时候为了得到最新的修订版,可以通过版本管理来获取源代码具体命令如下:
svn export https://source.sakaiproject.org/svn/sakai/branches/sakai_2-2-x/
3.2. 解压源代码包
将 sakai 源代码包解压到合适位置(比如你的 sakai 根目录)。
3.3. 运行 Maven
在 sakai-src 目录下运行命令: maven bld dpl
其它 builds 参数
通过命令: maven cln bld dpl 或者 maven sakai ,来清除以前 build 的内容,详细指令参见: sakai_maven.doc 。
build 过程将持续一段时间,其间会有详细的输出。特别是第一次 build 时, maven 将下载所有相关的依赖到本地存储区,编译 sakai 代码,发布 sakai 到 tomcat 的 webapps 目录下。如果 maven 完成的信息是: BUILD SUCCESSFUL ,则可以进行下一步操作。如果完成信息是: BUILD FAILED ,可以通过相关的错误信息来定位错误出处。详见第七部分。
Maven 和内存
当进行 build 的时候,你可能会碰到 out of memory 的错误,这也许是当 maven 启动的时候没有读到 JAVA_OPTS 参数,你可以通过另外设置一个环境变量来解决这个问题: MAVEN_OPTS 。以下设置对于 unix 系统是基本足够了:
export MAVEN_OPTS="-Xmx 384m -XX:PermSize= 48m "
现在都还是缺省配置,你应该可以启动 tomcat 运行 sakai 了,但为了更好的运行 sakai ,最好还是做一些优化配置,详见下一部分。
4. 安装后配置
4.1. 创建保存属性文件的文件夹
在缺省配置属性下, sakai 可以运行它的不同的组件。为了重新配置这些组件,你必须在 sakai.properties 文件中配置某些参数,这个文件缺省放在 $CATALINA_HOME/sakai 目录下,这个目录 maven 不会自动创建,所以你将手工创建。
选择不同的位置保存 sakai.properties
将 sakai 的配置文件保存在 tomcat 的文件结构之外比较好。例如,在一个开发环境中,你可能会经常的重装 tomcat ,将 sakai 的配置文件保存在 tomcat 文件结构之外将避免每次重建 sakai 的配置文件。
为了在 tomcat 之外保存 sakai 的配置文件,只需修改 java 的启动命令(或者 JAVA_OPTS 环境变量)来设置系统属性: sakai.home :
-Dsakai.home=/path/to/desired/sakai/home/
属性文件所在位置必须是 tomcat 可读写的。
4.2. sakai.properties 文件
Sakai 的主要配置文件就是 sakai.properties , 有两种方式生成该配置文件,一是从头创建,二是拷贝一份已经在运行的配置文件进行修改。在 sakai-src/reference/docs/ 目录下有一份标准的配置文件例子,另外一个可能的目录是在 sakai-src/kernel/component/src/config/org/sakaiproject/config/ 下。
原理上 sakai 任何组件的属性都可以通过这个配置文件来重载。这个配置文件中涉及到的参数设置,仅仅只是所有可能设置的一小部分。
得到更多关于 sakai.properties 的信息
从你的机构名到数据库的配置, sakai.properties 文件的参数设置涉及到的范围极广。更多的信息请参见 sakai_properties.doc 或者 reference/docs/architecture/sakai_properties.doc 文件。
4.3. Email 配置
Sakai 需要两个 email 的功能:一个接收发送到 sakai 的 email 的功能,另一个是发送 email 的功能。为了能发送 mail , sakai 需要一个 smtp 服务器地址(域名或者 ip )来接收从 sakai 发出的 mail ,这个 smtp 服务器就是在 sakai.properties 文件中进行配置:
[email protected]=some.smtp.org
为了让 sakai 能收到 mail ,将作以下配置:
# dns addresses used for incoming email
smtp.dns.1 = 255.255.255.1
smtp.dns.2 = 255.255.255.2
# SMTP port on which our SMTP server runs. Default is 25.
#Recommend running on 8025, and using a standard mailer on 25 to forward mail to Sakai .
smtp.port = 25
# flag to enable or disable our SMTP server for incoming email (true | false)
smtp.enabled = true
为了使 smtp 服务器配置失效,通过下面的配置可以达到目的:
smtp.enabled=false
如果 smpt 服务器采用缺省的 25 端口,则必须以 root 身份来启动 tomcat ,从安全的角度出发,建议不要用 root 权限来启动 tomcat ,因此可以配置 smtp 的端口为 8025 ,例如:
smtp.port = 8025
4.4. JVM 调优
Java 虚拟机的缺省配置对于运行 sakai 应用而言,略显不足。因此需要配置一些 java 虚拟机的参数以优化 sakai 的运行。
注意
JVM 调优是一个非常复杂和不透明的过程,因此建议你花一些时间来试验不同的内存和垃圾回收器配置下,系统的运行状况,以下细节仅仅提供一个例子和建议,在实施的时候建议你咨询系统管理员或者 java 专家,也可以通过 sakai 的 wiki 来获取一些建议。
控制 JVM 选项的最标准的方法是通过配置 tomcat 启动文件中的 JAVA_OPTS 环境变量。根据应用范围的不同,这些参数值变化比较大,具体的大小设置可以根据自己的经验以及服务器的配置进行权衡,以下配置是针对一个开发环境进行的配置 :
JAVA_OPTS="-server -Xms 512m -Xmx 768m -XX:PermSize= 128m -XX:MaxPermSize= 196m -XX:NewSize= 192m -XX:MaxNewSize= 384m "
以上配置对于一个开发和试用环境是足够的,以 server 模式启动,分配了 512M 的永久内存以保存持久对象。但是这些配置对于大量并发用户访问的情况是不够的,对于一个 32 位的带有多处理器的服务器,以下是一个更加合适的生产环境配置:
JAVA_OPTS="-server -Xms 1500m -Xmx 1500m -XX:NewSize= 400m -XX:MaxNewSize= 400m -XX:PermSize= 128m -XX:MaxPermSize= 196m -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC"
以上是一个比较好的配置,通过实践发现,当最小内存和最大内存设置为同一个值时,能得到一个更加平滑的性能;垃圾回收消息被打开,可以看到垃圾回收情况;另外一个重要的考虑是 NewSize 在整个堆栈尺寸中的比率,最后两个参数是当服务器有多个处理器的情况下才配置的,如果你的服务器只有一个处理器,建议取消这两个参数。
4.5. 测试 Sakai
在到此为止的配置中,还未涉及到数据库的配置,目前还是用的缺省数据库,现在可以启动你的 tomcat ,来看看上面的这些配置是否生效。通过以下命令可以启动 tomcat :
Windows: |
bin/startup.bat |
Mac/*nix: |
bin/startup.sh |
Tomcat 启动成功后,通过访问: http://localhost:8080/portal ,可以知道 sakai 是否成功部署
缺省的管理用户名和密码是: admin/admin 。如果你能登陆,表示 sakai 部署成功,这时,你可以停掉 tomcat 来进行数据库的配置了:
Windows: |
bin/shutdown.bat |
Mac/*nix: |
bin/shutdown.sh |