OS:一份钱系统Centos64
tomcat 7
jdk1.8.5
注意:sakai不支持tomcat6(原因:jdbc pool报告错误,而tomcat7开始才支持jdbc pool)
源码:使用北邮源码
Sakai复旦共享版的安装方式与Sakai正式版基本一致,因此,可以完全参照Sakai官方安装文档 进行安装。以下,仅以复旦Sakai共享版的安装情况进行说明。
Sakai由Java语言开发,理论上任何安装有JVM虚拟机的操作系统都可以安装。从Sakai社区中提供的信息来看,Linux, Windows, Solaris都有相应的安装实例。复旦大学使用Debian Linux 作为操作系统。以下的说明都将以Debian Linux 7 (Wheezy)作为范例。
在Debian的官方网站上,有详尽的安装指导。
基于安全考量,强烈建议在操作系统安装完毕后,安装sudo 。使用root帐号进行日常操作存在很大的安全隐患。
下文给出的命令中,若以#开始,则表示需要以管理员身份执行,若以$开始则表示可以以一般用户在有权限的目录中执行。一般用户可以通过sudo命令进行权限提升。#与$都是命令行提示符,不属于命令的一部分。
# apt-get install sudo
Open JDK 6和Open JDK 7都能够符合Sakai的要求,但Oracle已停止公开发布Oracle JDK的补丁,建议使用Open JDK 7
复旦版自2.9.3.1后,只支持JDK7
# apt-get install openjdk-7-jdk
Sakai使用Apache Maven 进行项目管理。我们可以通过maven对Sakai进行相关的编译、单元测试、部署等工作。
注意:Sakai 2.8.x使用Maven 2.x;Sakai 2.9.x使用Maven 3.x
# apt-get install maven
按照Sakai官方文档,目前稳定支持的数据库包括Oracle、MySQL、HSQLDB三种,其中不建议在生产环境中使用HSQLDB。复旦大学使用MySQL作为数据库服务器。
Debian 7中的MySQL版本为5.5
# apt-get install mysql-server
character-set-server=utf8
service mysqld start
Sakai 10.x目前 只支持 7.0版本的Tomcat。注意: 不要 使用apt-get安装Tomcat,否则配置极其复杂。
centos6使用epel安装,如我前文所表示
vi /etc/profile
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export JAVA_HOME=/usr/java/jdk1.8.0_05
export TOMCAT_HOME=/usr/share/tomcat
export CATALINA_HOME=/usr/share/tomcat6
export HADOOP_HOME=/usr/local/hadoop/hadoop-1.0.1
export JRE_HOME=$JAVA_HOME/jre
export ANT_HOME=/usr/local/ant
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HADOOP_HOME/bin:$ANT_HOME/bin:/usr/lib64/qt4/bin/:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME HADOOP_HOME PATH CLASSPATH ANT_HOME
删除Tomcat自带的一些示例,即%TOMCAT_HOME%/webapps目录下所有目录
$ rm -rf %TOMCAT_HOME%/webapps/*
为了在进行定制化的同时,又能够获取官方版本的更新。复旦Sakai共享版使用Mercurial 进行版本控制。我们会在积累了一些补丁后发布里程碑版本,但如果希望获得最新版本的源代码,就需要使用Mercurial进行更新。
下面使用apt-get安装mercurial
# apt-get install mercurial
从下载页面中下载复旦Sakai共享版的src版,
也可以使用Mercurial下载最新版本
$ hg clone http://sakai.fudan.edu.cn/fudan-sakai
此处使用了北邮的源码
[root@gdc1000 tomcat]# ls /home/gftp/kb/devkb/sakai/
sakai-bupt-src-10.3-fudan.r1.zip
[root@gdc1000 tomcat]# ls /home/gftp/kb/devkb/sakai/
此命令将在当前目录下创建名为fudan-sakai的目录,并将最新版本的源代码更新到其中。下文将以%SAKAI_SRC%来表示此目录。
在进行完整编译Sakai时,由于项目整体较大,Maven在默认配置下可能会出现内存溢出的情况。可以通过下面命令增加Maven使用的内存量
$ export MAVEN_OPTS='-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m'
在%SAKAI_SRC%目录下运行下面的命令进行编译并将结果部署到Tomcat,命令中的%TOMCAT_HOME%请替换为相对应的Tomcat目录
$ mvn install sakai:deploy -Dmaven.tomcat.home=%TOMCAT_HOME% -DskipTests
以下配置适用于只用Tomcat进行部署的情况。在此基础之上,可以使用Apache HTTP Server提供更加灵活的 配置 ,包括首页自动跳转,负载均衡等。
由于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>
在%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%
修改%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" />
修改%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
mysql -u root -p
使用MySQL管理员帐号登录MySQL数据库,创建Sakai需要的表空间。
CREATE SCHEMA `sakai` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
FIXME sakai.properties还是local.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=********
其中url@javax.sql.BaseDataSource的值请使用相关的MySQL JDBC连接字符串代替。
username@javax.sql.BaseDataSource的值请使用MySQL的用户名代替
password@javax.sql.BaseDataSource的值请使用MySQL的密码代替
从MySQL官方网站 上下载最新的MySQL JDBC库,下载的文件解压缩后可以得到mysql-connector-java-5.1.xx-bin.jar这个文件,将此文件复制到%TOMCAT_HOME%/common/lib目录下
在Sakai中有部分工具支持PDF导出功能,由于PDF格式的一些限制,对中文的默认支持不理想,需要在操作系统中安装相应的中文字体,并指定在PDF导出时使用的字体。在复旦大学的部署中,我们使用的是“AR PL UMing CN”。此功能是Sakai复旦共享版特有的功能,目前Sakai正式版尚未修正此问题。
yum install cjkuni-uming-fonts
在%TOMCAT_HOME%/sakai/目录(此目录可能需要手工创建)下创建sakai.properties文件。
加上如下内容
fop.pdf.default.font=AR PL UMing CN
通过启动/停止Tomcat来启动/停止Sakai
在%TOMCAT_HOME%/bin目录下,运行
$ sh startup.sh
在%TOMCAT_HOME%/bin目录下,运行
$ sh shutdown.sh
打开任意网页浏览器,访问 http://localhost:8080 。
参考
http://sakai.fudan.edu.cn/projects/fudan-sakai/wiki/Src%E7%89%88%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E%2829%29