所需环境:
1、Linux 或 Windows Server(本章以Windows平台做部署目标,系统为Windows11);
2、Java 1.8;
3、Tomcat 8/9;(二进制安装选8,源文件安装选9)
4、Maven 3.6;
5、MySQL(可以使用5或者8版本,最好使用5);
6、MySQL Connector Jar(版本对应MySQL);
7、default.sakai.porperties(后面提供下载地址)。
一、Sakai二进制文件环境配置
1、JDK环境配置
装 JDK 和 JRE,安装完成后添加环境变量 JAVA_HOME 为 JDK 安装路径,在系统 PATH 变量中添加 JDK 安装路径 /bin ,在 cmd 中测试 java -version 跳出版本信息即配置完毕。
JAVA_HOME:C:\Program Files\Java\jdk1.8.0_221\
Path:JAVA_HOME\bin
JRE_HOME:C:\Program Files\Java\jdk1.8.0_221
2、Tomcat环境配置
添加环境变量 CATALINA_HOME 为 Tomcat 文件夹路径,在系统 PATH 变量中添加 Tomcat 文件夹路径。然后进入其内的 bin 文件夹,执行 startup.bat ,启动Tomcat 服务器,在浏览器地址栏输入 http://localhost:8080,如果出现 tomcat的主页,则说明安装正确,执行shutdown.bat,即可退出。
CATALINA_HOME: C:\tomcat8
3、Maven环境配置
解压Maven并重命名文件夹为Maven,添加环境变量MAVEN_HOME为Maven文件夹路径,在系统PATH变量中添加MAVEN文件夹路径/bin,在cmd中测试mvn -version跳出版本信息即配置完毕。
4、MySQL环境配置
解压MySQL并重命名文件夹为MySQL,添加环境变量MySQL_HOME为MySQL文件夹路径,在系统PATH变量中添加MySQL文件夹路径/bin。
在MySQL文件夹下建立my.ini配置文件,内容为如下(具体路径按实际情况更改,注意为斜杠):
[mysqld]
basedir=C:/MySQL
datadir=C:/MySQL/data
从cmd中进入MySQL/bin(这一步有坑,如果不不进入bin文件夹进行配置,服务开启会提示找不到文件),键入命令mysqld --initialize,执行MySQL初始化操作,新版的MySQL会在data文件夹中生成一个err后缀的文件,初始密码就在文件中,老版本的没有root用户初始密码。初始化完毕后,使用mysqld --install mysql创建MySQL服务,然后使用net start mysql开启MySQL服务。
服务运行后,输入mysql -u root -p连接数据库,密码根据实际情况输入,如果顺利键入quit退出。
5、Sakai环境配置
将Sakai 20.0 Binary压缩包中所有内容直接解压至Tomcat目录下即可。
解压Maven并重命名文件夹为Maven,添加环境变量MAVEN_HOME为Maven文件夹路径,在系统PATH变量中添加MAVEN文件夹路径/bin,在cmd中测试mvn -version跳出版本信息即配置完毕。
二、部署搭建
1、将与 MySQL 版本对应的 MySQL Connector Jar 拷贝至 Tomcat/lib 目录下;
2、在Tomcat/bin文件夹下新建文件setenv.bat,内容如下:
set JAVA_OPTS=-server -Xmx1028m -XX:MaxMetaspaceSize=512m -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false -Djava.awt.headless=true -Dcom.sun.management.jmxremote -Dhttp.agent=Sakai -Djava.util.Arrays.useLegacyMergeSort=true -Dfile.encoding=UTF8
3、编辑 Tomcat/conf/content.xml 文件,在块中增加如下内容
<JarScanner>
<!-- This is to speedup startup so that tomcat doesn't scan as much -->
<JarScanFilter defaultPluggabilityScan="false" />
</JarScanner>
4、编辑 Tomcat/conf/server.xml 文件,搜索内容 “Connector port” ,在此之后增加 URIEncoding="UTF-8",即
<Connector port="8080" URIEncoding="UTF-8" ...
5、在 Tomcat 路径下新建文件夹 Sakai ,下载一份 default.sakai.properties ,下载地址如下:
将【default.sakai.properties】重命名为【sakai.properties】
搜索username@javax,取消默认的注释,将数据库的用户名与密码修改为如下(此处可根据实际情况修改):
username@javax.sql.BaseDataSource=sakaiuser
password@javax.sql.BaseDataSource=sakaipassword
搜索MySQL,将注释符号全部去掉,修改后如下:
vendor@org.sakaiproject.db.api.SqlService=mysql
driverClassName@javax.sql.BaseDataSource=com.mysql.jdbc.Driver
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
url@javax.sql.BaseDataSource=jdbc:mysql://127.0.0.1:3306/sakaidatabase?useUnicode=true&characterEncoding=UTF-8
validationQuery@javax.sql.BaseDataSource=select 1 from DUAL
defaultTransactionIsolationString@javax.sql.BaseDataSource=TRANSACTION_READ_COMMITTED
此处注意!
Git上下载的文件连接地址可能是 mysql://127.0.0.1:3306/sakai 而不是 sakaidatabase,此处要根据下面步骤建立的数据库名确定连接地址,避免不必要的错误!
6、登陆 MySQL ,键入如下 SQL 命令:
//版本8(不推荐,会少三张表)
create database sakaidatabase default character set utf8
create user 'sakaiuser'@'localhost' identified by 'sakaipassword';
create user 'sakaiuser'@'127.0.0.1' identified by 'sakaipassword';
grant all on sakaidatabase .* to 'sakaiuser'@'127.0.0.1' WITH GRANT OPTION;
grant all on sakaidatabase .* to 'sakaiuser'@'localhost' WITH GRANT OPTION;
flush privileges;
//版本5
create database sakaidatabase default character set utf8;
grant all on sakaidatabase.* to sakaiuser@'localhost' identified by 'sakaipassword';
grant all on sakaidatabase.* to sakaiuser@'127.0.0.1' identified by 'sakaipassword';
flush privileges;
7、运行 Tomcat 目录下的 bin 子目录里的 startup.bat 启动 Sakai ,运行的时间可能是4-5分钟,然后等待启动完成后在浏览器的地址栏输入 http://localhost:8080/portal ,以用户admin密码admin登录进去。
三、Sakai源文件环境配置
1、JDK环境配置(同上)
2、Tomcat环境配置(同上,选择9的版本)
3、Maven环境配置(同上)
4、MySQL环境配置(同上)
5、安装git
四、部署Sakai
1、将与 MySQL 版本对应的 MySQL Connector Jar 拷贝至 Tomcat/lib 目录下;
3、编辑 Tomcat/conf/content.xml 文件,在块中增加如下内容
<JarScanner>
<!-- This is to speedup startup so that tomcat doesn't scan as much -->
<JarScanFilter defaultPluggabilityScan="false" />
</JarScanner>
4、编辑 Tomcat/conf/server.xml 文件,搜索内容 “Connector port” ,在此之后增加 URIEncoding="UTF-8",即
<Connector port="8080" URIEncoding="UTF-8" ...
5、在 Tomcat 路径下新建文件夹 Sakai ,下载一份 default.sakai.properties ,下载地址如下:
将【default.sakai.properties】重命名为【sakai.properties】
搜索username@javax,取消默认的注释,将数据库的用户名与密码修改为如下(此处可根据实际情况修改):
username@javax.sql.BaseDataSource=sakaiuser
password@javax.sql.BaseDataSource=sakaipassword
搜索MySQL,将注释符号全部去掉,修改后如下:
vendor@org.sakaiproject.db.api.SqlService=mysql
driverClassName@javax.sql.BaseDataSource=com.mysql.jdbc.Driver
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
url@javax.sql.BaseDataSource=jdbc:mysql://127.0.0.1:3306/sakaidatabase?useUnicode=true&characterEncoding=UTF-8
validationQuery@javax.sql.BaseDataSource=select 1 from DUAL
defaultTransactionIsolationString@javax.sql.BaseDataSource=TRANSACTION_READ_COMMITTED
此处注意!
Git上下载的文件连接地址可能是 mysql://127.0.0.1:3306/sakai 而不是 sakaidatabase,此处要根据下面步骤建立的数据库名确定连接地址,避免不必要的错误!
6、登陆 MySQL ,键入如下 SQL 命令:
//版本8(不推荐,会少三张表)
create database sakaidatabase default character set utf8
create user 'sakaiuser'@'localhost' identified by 'sakaipassword';
create user 'sakaiuser'@'127.0.0.1' identified by 'sakaipassword';
grant all on sakaidatabase .* to 'sakaiuser'@'127.0.0.1' WITH GRANT OPTION;
grant all on sakaidatabase .* to 'sakaiuser'@'localhost' WITH GRANT OPTION;
flush privileges;
//版本5
create database sakaidatabase default character set utf8;
grant all on sakaidatabase.* to sakaiuser@'localhost' identified by 'sakaipassword';
grant all on sakaidatabase.* to sakaiuser@'127.0.0.1' identified by 'sakaipassword';
flush privileges;
7、新建一个文件夹进入,下载Sakai源文件
git clone https://github.com/sakaiproject/sakai.git
8、打开编辑器(我这里选择的是IDEA),将 Sakai 部署到 tomcat 中,第一次的话速度会非常慢,需要耐心等待。
// mvn clean install sakai:deploy -Dmaven.tomcat.home=/path/to/your/tomcat
mvn clean install sakai:deploy -Dmaven.tomcat.home=D:\Programs\tomcat8
配置好 Java 及 maven 版本。
9、现在启动Tomcat,进入你的tomcat安装目录的bin目录下,打开cmd:
./startup.sh && tail -f ../logs/catalina.out
Sakai 启动后(通常需要大约 30 秒),打开浏览器并导航到http://localhost:8080/portal ,以用户admin密码admin登录进去。