机缘巧合要部署个Sakai 20.0 Binary版本,记录一下分享给有需要的朋友。
本章只讲部署过程,Sakai到底是个啥我也还没太搞明白,要是看开发的朋友可以直接略过了。
1、Linux 或 Windows Server(本章以Windows平台做部署目标,系统为Windows Server 2012);
2、Java 1.8;
3、Tomcat 8/9;
4、Maven 3.6;
5、MySQL(我使用的版本较老为5.1,8.0+因为有的SQL语句修改了,第一次部署出了状况但不确定是SQL的问题);
6、MySQL Connector Jar(版本对应MySQL);
7、default.sakai.porperties(后面提供下载地址)。
安装JDK和JRE,安装完成后添加环境变量JAVA_HOME为JDK安装路径,在系统PATH变量中添加JDK安装路径/bin,在cmd中测试java -version跳出版本信息即配置完毕。
解压Maven并重命名文件夹为Maven,添加环境变量MAVEN_HOME为Maven文件夹路径,在系统PATH变量中添加MAVEN文件夹路径/bin,在cmd中测试mvn -version跳出版本信息即配置完毕。
解压Tomcat并重命名文件夹为Tomcat,添加环境变量CATALINA_HOME为Tomcat文件夹路径,在系统PATH变量中添加Tomcat文件夹路径/bin。
解压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退出。
将Sakai 20.0 Binary压缩包中所有内容直接解压至Tomcat目录下即可。
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文件,在<Context>块中增加如下内容
<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,或在源码路径sakai-src/config/configuration/bundles/src/bundle/org/sakaiproject/config/bundle/default.sakai.properties中复制一份到文件夹中,下载地址如下:https://github.com/sakaiproject/sakai/blob/master/config/configuration/bundles/src/bundle/org/sakaiproject/config/bundle/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命令:
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;
如果正常应该是如下:
mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 272
Server version: 5.1.46 MySQL Community Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database sakaidatabase default character set utf8;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on sakaidatabase.* to sakaiuser@'localhost' identified by 'sakaipassword';
Query OK, 0 rows affected (0.00 sec
mysql> grant all on sakaidatabase.* to sakaiuser@'127.0.0.1' identified by 'sakaipassword';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
7、在cmd中键入startup,打开Tomcat服务,等待数分钟运行后,浏览器中打开127.0.0.1/portal即可。