src版安装说明(2.9)

0. 说明

Sakai复旦共享版的安装方式与Sakai正式版基本一致,因此,可以完全参照Sakai官方安装文档 进行安装。以下,仅以复旦Sakai共享版的安装情况进行说明。

1. 安装操作系统

Sakai由Java语言开发,理论上任何安装有JVM虚拟机的操作系统都可以安装。从Sakai社区中提供的信息来看,Linux, Windows, Solaris都有相应的安装实例。复旦大学使用Debian Linux 作为操作系统。以下的说明都将以Debian Linux 7 (Wheezy)作为范例。

在Debian的官方网站上,有详尽的安装指导

2. 准备运行环境

2.0 安装sudo(可选)

基于安全考量,强烈建议在操作系统安装完毕后,安装sudo 。使用root帐号进行日常操作存在很大的安全隐患。
下文给出的命令中,若以#开始,则表示需要以管理员身份执行,若以$开始则表示可以以一般用户在有权限的目录中执行。一般用户可以通过sudo命令进行权限提升。#与$都是命令行提示符,不属于命令的一部分。

# apt-get install sudo

2.1 安装JVM

Open JDK 6和Open JDK 7都能够符合Sakai的要求,但Oracle已停止公开发布Oracle JDK的补丁,建议使用Open JDK 7
复旦版自2.9.3.1后,只支持JDK7

# apt-get install openjdk-7-jdk

2.2 安装Apache Maven

Sakai使用Apache Maven 进行项目管理。我们可以通过maven对Sakai进行相关的编译、单元测试、部署等工作。
注意:Sakai 2.8.x使用Maven 2.x;Sakai 2.9.x使用Maven 3.x

# apt-get install maven

2.3 安装MySQL(可选)

按照Sakai官方文档,目前稳定支持的数据库包括Oracle、MySQL、HSQLDB三种,其中不建议在生产环境中使用HSQLDB。复旦大学使用MySQL作为数据库服务器。
Debian 7中的MySQL版本为5.5

# apt-get install mysql-server

为了使MySQL的默认字符编码为UTF-8,需要在MySQL的配置文件(/etc/mysql/my.cnf)中加入如下配置:
在mysqld段中加入
character-set-server=utf8

如果不进行任何额外配置,Sakai将使用HSQLDB作为默认数据库。

2.4 安装Apache Tomcat

Sakai 2.9.x目前 只支持 7.0版本的Tomcat。注意: 不要 使用apt-get安装Tomcat,否则配置极其复杂。

请到官方网站下载最新的Apache Tomcat 7.0 。也可以使用wget 命令进行下载。此命令在安装Debian时会自动安装。下面是从apache的Tomcat官方站点中进行下载

$ wget http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.39/bin/apache-tomcat-7.0.39.tar.gz

注意:请下载Core版本的Tomcat。下载后将Tomcat解压到有权限的目录,如/opt/tomcat。以下将以%TOMCAT_HOME%来表示这个目录(注意,为避免歧义,这个目录下应该有bin, conf, lib, webapps等文件夹)。可以使用下面的命令将下载的压缩包解压到当前目录

$ tar xzvf apache-tomcat-7.0.39.tar.gz

删除Tomcat自带的一些示例,即%TOMCAT_HOME%/webapps目录下所有目录

$ rm -rf %TOMCAT_HOME%/webapps/* 

2.5 安装分布式版本控制软件Mercurial(可选)

为了在进行定制化的同时,又能够获取官方版本的更新。复旦Sakai共享版使用Mercurial 进行版本控制。我们会在积累了一些补丁后发布里程碑版本,但如果希望获得最新版本的源代码,就需要使用Mercurial进行更新。

下面使用apt-get安装mercurial

# apt-get install mercurial

3. 安装复旦共享版Sakai

3.1 下载源代码

下载页面中下载复旦Sakai共享版的src版,
也可以使用Mercurial下载最新版本

$ hg clone http://sakai.fudan.edu.cn/fudan-sakai

此命令将在当前目录下创建名为fudan-sakai的目录,并将最新版本的源代码更新到其中。下文将以%SAKAI_SRC%来表示此目录。

3.2 使用Apache Maven编译源代码并部署到Tomcat

3.2.1 修改Maven的默认配置

在进行完整编译Sakai时,由于项目整体较大,Maven在默认配置下可能会出现内存溢出的情况。可以通过下面命令增加Maven使用的内存量

$ export MAVEN_OPTS='-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m'

3.2.2 编译并部署代码

在%SAKAI_SRC%目录下运行下面的命令进行编译并将结果部署到Tomcat,命令中的%TOMCAT_HOME%请替换为相对应的Tomcat目录

$ mvn install sakai:deploy -Dmaven.tomcat.home=%TOMCAT_HOME% -DskipTests

在此命令的执行过程中,程序将自动下载一些运行所需要的文件,所以在此过程中,需要有稳定的国际网络连接。
第一次执行此命令时,耗时较长,可能需要1-2小时,具体时长视网络情况而定。
-DskipTests表示略过所有的测试。

3.3 配置Tomcat

以下配置适用于只用Tomcat进行部署的情况。在此基础之上,可以使用Apache HTTP Server提供更加灵活的 配置 ,包括首页自动跳转,负载均衡等。

3.3.1 增加首页自动跳转页面

由于Sakai的默认首页路径为/portal,所以需要增加首页跳转页面进行自动跳转。
在%TOMCAT_HOME%/webapps目录下创建ROOT目录(注意大小写),然后在ROOT目录下创建文件index.html,内容如下:

<html>
<head>
  <title>Redirecting to /portal</title>
  <meta http-equiv="Refresh" content="0:URL=/portal">
</head>
<body bgcolor="#ffffff" onLoad="javascript:window.location='/portal';">
  <div style="margin:18px;width:288px;background-color:#cccc99;padding:18px;border:thin solid #666600;text-align:justify">
  <p style="margin-top:0px">
    You are being redirected to the Sakai portal. If you are not automatically redirected, use the link below to continue: <br/>
    <a href="/portal">Take me to the Sakai portal</a>
  </p>
</body>
</html>

3.3.2 增加setenv.sh来设定Tomcat运行参数

在%TOMCAT_HOME%/bin目录下新建setenv.sh,内容如下

export JAVA_HOME="%JAVA_HOME" 
export JAVA_OPTS="-server -Xms512m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=512m -XX:NewSize=192m -XX:MaxNewSize=384m -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Dhttp.agent=Sakai -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false -Dsun.lang.ClassLoader.allowArraySyntax=true -Duser.language=zh -Duser.region=CN" 
export CATALINA_HOME=%TOMCAT_HOME%

请将其中%JAVA_HOME%设定为JDK的安装目录;%TOMCAT_HOME%设置为Tomcat的安装目录,请根据具体的机器环境进行设置。

3.3.3 修改server.xml

修改%TOMCAT_HOME%/conf/server.xml,增加对于GET方法的UTF-8字符支持
将下面这段

<Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" />

修改为
<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8" 
           connectionTimeout="20000" 
           redirectPort="8443" />

3.3.4 修改catalina.properties

修改%TOMCAT_HOME%/conf/catalina.properties

common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar

修改为
common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.home}/common/lib/*.jar

shared.loader=

修改为
shared.loader=${catalina.base}/shared/lib/*.jar

org.apache.catalina.startup.ContextConfig.jarsToSkip=

修改为
org.apache.catalina.startup.ContextConfig.jarsToSkip=*.jar

3.4 配置MySQL(可选)

3.4.1 创建Sakai数据库表空间

使用MySQL管理员帐号登录MySQL数据库,创建Sakai需要的表空间。

CREATE SCHEMA `sakai` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;

3.4.2 配置sakai.properties

在%TOMCAT_HOME%下创建sakai目录,然后在%TOMCAT_HOME%/sakai目录下创建sakai.properties文件
在sakai.properties文件中加入以下内容:

# MySQL settings - make sure to alter as appropriate
vendor@org.sakaiproject.db.api.SqlService=mysql
driverClassName@javax.sql.BaseDataSource=com.mysql.jdbc.Driver
hibernate.dialect=org.hibernate.dialect.MySQLDialect
url@javax.sql.BaseDataSource=jdbc:mysql://127.0.0.1:3306/sakai?useUnicode=true&characterEncoding=UTF-8
validationQuery@javax.sql.BaseDataSource=show variables like 'version'
defaultTransactionIsolationString@javax.sql.BaseDataSource=TRANSACTION_READ_COMMITTED
username@javax.sql.BaseDataSource=sakai
password@javax.sql.BaseDataSource=********

其中的值请使用相关的MySQL JDBC连接字符串代替。
的值请使用MySQL的用户名代替
的值请使用MySQL的密码代替

3.4.3 部署MySQL的JDBC库

从MySQL官方网站 上下载最新的MySQL JDBC库,下载的文件解压缩后可以得到mysql-connector-java-5.1.xx-bin.jar这个文件,将此文件复制到%TOMCAT_HOME%/common/lib目录下

3.5 安装中文字体

在Sakai中有部分工具支持PDF导出功能,由于PDF格式的一些限制,对中文的默认支持不理想,需要在操作系统中安装相应的中文字体,并指定在PDF导出时使用的字体。在复旦大学的部署中,我们使用的是“AR PL UMing CN”。此功能是Sakai复旦共享版特有的功能,目前Sakai正式版尚未修正此问题。

3.5.1 安装字体

# apt-get install fonts-arphic-uming

3.5.2 为Sakai指定导出PDF文件时的默认字体

在%TOMCAT_HOME%/sakai/目录(此目录可能需要手工创建)下创建sakai.properties文件。
加上如下内容

fop.pdf.default.font=AR PL UMing CN

4 启动/停止Sakai

通过启动/停止Tomcat来启动/停止Sakai

4.1 启动Tomcat

在%TOMCAT_HOME%/bin目录下,运行

$ sh startup.sh

4.2 停止Tomcat

在%TOMCAT_HOME%/bin目录下,运行

$ sh shutdown.sh

5 访问Sakai

打开任意网页浏览器,访问 http://localhost:8080