Ubuntu部署sakai2.9
官方部署文档:https://confluence.sakaiproject.org/display/DOC/Sakai+CLE+2.8+release+notes
1.安装ftp #sudo apt-get install vsftpd
2.更新与升极
#sudo apt-get update
#sudo apt-get upgrade
3.安装JDK
#sudo apt-get install openjdk-7-jdk
4.环境变量vim /etc/profile
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export JAVA_HOME
JRE_HOME=/usr/lib/jvm/java-7-openjdk-amd64/jre
export JRE_HOME
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export PATH
CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
export CLASSPATH
CATALINA_HOME=/opt/tomcat7
CATALINA_BASE=/opt/tomcat7
export CATALINA_HOME CATALINA_BASE
export CATALINA_HOME=/opt/apache-tomcat7
export CATALINA_BASE=/opt/apache-tomcat7
MAVEN_HOME=/opt/maven
export MAVEN_HOME
PATH=$PATH:$MAVEN_HOME/bin
export PATH
MAVEN_OPTS='-Xms512m -Xmx1024m -XX:PermSize=64m -XX:MaxPermSize=512m'
export MAVEN_OPTS
注:
环境变量必须重启系统方可生效。
7.安装数据库mysql
#sudo apt-get install mysql-server
7.1更改端口3306权限更改
#vim /etc/mysqld/my.cnf
#注释掉#bind_address =127.0.0.1 确保PHPmyadmin通过外网连接到数据库
#更改数据库编码utf8
找到客户端配置[client]在下面添加
default-character-set=utf8 默认字符集为utf8
再找到[mysqld] 添加
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
7.2进入mysql
cd /etc/mysql/ grant all on *.* to root@"%" identifiedby "gengshang";
grant all on*.* to root@"localhost" identified by "gengshang";
mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 35
Server version: 5.0.75-0ubuntu10.2 (Ubuntu)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> createdatabase sakai default character set utf8;
Query OK, 1 row affected (0.00 sec)
mysql> grant all onsakai.* to sakaiuser@'localhost' identified by 'sakaipassword';
Query OK, 0 rows affected (0.00 sec
mysql> grant all on sakai.* tosakaiuser@'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
8.安装maven
网址: http://maven.apache.org/download.html
下载maven 3.0.11 binary版本 解压到opt下,重命名maven,
在根目录下建立.m2/repository作为仓库
命令行里 cd $HOME
mkdir-p .m2/repository
在.m2下新建文件settings.xml
内容如下:(标红部分是web服务器的安装目录)
<settings xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<profiles>
<profile>
<id>tomcat7x</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<appserver.id>tomcat7x</appserver.id>
<appserver.home>/opt/tomcat7</appserver.home>
<maven.tomcat.home>/opt/tomcat7</maven.tomcat.home>
<sakai.appserver.home>/opt/tomcat7</sakai.appserver.home>
<surefire.reportFormat>plain</surefire.reportFormat>
<surefire.useFile>false</surefire.useFile>
</properties>
</profile>
</profiles>
</settings>
8.安装Tomcat7
将apache-tomcat7.tar安装包拷贝到/opt/下,然后解压重命名为tomcat7
chmod -R 775 /opt/tomcat7/
8.1安装tomcat 7
一、 下载地址:http://archive.apache.org/dist/tomcat/tomcat-5/v5.5.30/bin/
将其解压到/opt下,并命名tomcat7
1.在tomcat7/bin下建立setenv.sh文件,内容为:
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"
exportJAVA_OPTS
2.删除Tomcat自带的一些示例,即%TOMCAT_HOME%/webapps目录下所有目录
rm-rf /opt/tomcat7/webapps/*
3.新建index.html 在 /webapps/ROOT下,内容如下:
<html>
<head>
<title>Redirecting to/portal</title>
<meta http-equiv="Refresh"content="0:URL=/portal">
</head>
<body bgcolor="#ffffff"onLoad="javascript:window.location='/portal';">
<divstyle="margin:18px;width:288px;background-color:#cccc99;padding:18px;border:thinsolid #666600;text-align:justify">
<p style="margin-top:0px">
You are being redirected to the Sakaiportal. If you are not automatically redirected, use the link below tocontinue:<br/>
<a href="/portal">Take me tothe Sakai portal</a>
</p>
</body>
</html>
Index2.html
<?xmlversion="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml" xml:lang="en"lang="en">
<head>
<script language="javascript"type="text/javascript">
window.location.href="/cms";
</script>
</head>
</html>
二:sakai下载
apt-getinstall mercurial
安装复旦共享版Sakai?
3.1 下载源代码?
从下载页面中下载复旦Sakai共享版的src版,
也可以使用Mercurial下载最新版本
hg clonehttp://sakai.fudan.edu.cn/fudan-sakai
此命令将在当前目录下创建名为fudan-sakai的目录,并将最新版本的源代码更新到其中。下文将以%SAKAI_SRC%来表示此目录。
将下载后的fudan-sakai移到tomcat7下 并在其下建立sakai的文件夹,将sakai-src/config/configuration/bundles/src/bundle/org/sakaiproject/config/bundle/default.sakai.properties复制到sakai下并且并命为sakai.properties。需要修改的地方有:
Let Sakai generate databaseobjects on startup.
#Default = true.
auto.ddl=true
# setthe Hibernate dialect (for shared datasource),
# HSQLDBby default, MySQL and Oracle examples
#hibernate.dialect=org.hibernate.dialect.HSQLDialect
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
#hibernate.dialect=org.hibernate.dialect.Oracle9iDialect
#hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
# Enablehibernate SQL debugging output.
#Default=false.
hibernate.show_sql=false
# Thedatabase username and password. The defaults are for the out-of-the-boxHSQLDB.
# Changeto match your setup. Do NOT enable access to your database without a password.
username@javax.sql.BaseDataSource=root
password@javax.sql.BaseDataSource=gengshang
#默认数据库注释掉
# HSQLDBsettings (DEFAULT)
#vendor@org.sakaiproject.db.api.SqlService=hsqldb
#driverClassName@javax.sql.BaseDataSource=org.hsqldb.jdbcDriver
#hibernate.dialect=org.hibernate.dialect.HSQLDialect
#validationQuery@javax.sql.BaseDataSource=select 1 from INFORMATION_SCHEMA.SYSTEM_USERS
# Twohsqldb storage options: first for in-memory (no persistence between runs),second for disk based.
#url@javax.sql.BaseDataSource=jdbc:hsqldb:mem:sakai
#url@javax.sql.BaseDataSource=jdbc:hsqldb:file:${sakai.home}db/sakai.db
# MySQLsettings
vendor@org.sakaiproject.db.api.SqlService=mysql
driverClassName@javax.sql.BaseDataSource=com.mysql.jdbc.Driver
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
url@javax.sql.BaseDataSource=jdbc:mysql://127.0.0.1:3306/sakai?
useUnicode=true&characterEncoding=UTF-8
validationQuery@javax.sql.BaseDataSource=select 1 from DUAL
defaultTransactionIsolationString@javax.sql.BaseDataSource=TRANSACTION_READ_COMMITTED
在最后添加
melete.packagingDir=/opt/tomcat7/var/melete/packagefiles
content.upload.ceiling=500
convertToFile@org.sakaiproject.content.api.ContentHostingService=true
bodyPath@org.sakaiproject.content.api.ContentHostingService=/opt/content/sakai
# Only uncomment the bodyVolumes propertyif you have multiple content volumes
# (sub directories/ mount points relativeto the location specified above)
bodyVolumes@org.sakaiproject.content.api.ContentHostingService=vol1,vol2,vol3
# uncomment the next line if you wish toset a site quota of 1Gb
#siteQuota@org.sakaiproject.content.api.ContentHostingService=1048576
8.2下载 driver驱动
选择mysql-connector-java-5.1.xx-bin.jar将其下载并复制到tomcat7/common/lib下
8.3测试一下:
启动tomcat命令:首先进入tomcat目录下bin目录:
cd/opt/tomcat7/bin
然后启动tomcat命令:sh startup.sh
稍等几分钟后在浏览器中输入http://localhost:8080 测试tomcat有没有正常启动;
8.4 Sakai编译(编译时需关闭WEB 服务器)
安装sakai master
进入sakai的源文件的下级目录master
cd master cd /opt/tomcat7/fudan-sakai/master/
mvn clean install
cd ..
安装和编译sakai
mvn clean install sakai:deploy -Dmaven.tomcat.home=/opt/tomcat7/ -DskipTests
在此命令的执行过程中,程序将自动下载一些运行所需要的文件,所以在此过程中,需要有稳定的国际网络连接。第一次执行此命令时,耗时较长,可能需要1-2小时,具体时长视网络情况而定。-DskipTests表示略过所有的测试。 完成后,在浏览器中输入“http://localhost:8080/portal ” ,显示了Sakai的主页,则表明Sakai安装成功。
安装Tomcat开机自动启动
执行命令sudo gedit /etc/init.d/tomcat7 (注意这里,我这样执行是因为tomcat5这个shell文件是不存在的,如果先前安装过tomcat6的话,这里会有一个tomcat6的shell文件的,所以如果你要自启动的是tomcat6的话,最好不要sudo gedit /etc/init.d/tomcat7,避免将那个文件覆盖掉,换一个你易记的名字就行。)
然后把以下英文部分复制过去。(这里那个外国人也犯了个错误,第一句#!/bin/sh没有写,不是一个shell文件。
#!/bin/sh
# Tomcat auto-start
#
# description: Auto-starts tomcat
# processname: tomcat
# pidfile: /var/run/tomcat.pid
export LC_ALL=zh_CN.utf8
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
case $1 in
start)
sh /opt/tomcat7/bin/startup.sh
;;
stop)
sh /opt/tomcat7/bin/shutdown.sh
;;
restart)
sh /opt/tomcat7/bin/shutdown.sh
sh /opt/tomcat7/bin/startup.sh
;;
esac
exit 0
上面的步骤做好之后,执行sudo chmod 755 /etc/init.d/tomcat7,让这个文件是可执行的。
然后要做一个链接,即让刚刚那个shell文件能开机自启动。
sudo ln -s /etc/init.d/tomcat7 /etc/rc1.d/K99tomcat7
sudo ln -s /etc/init.d/tomcat7 /etc/rc2.d/S99tomcat7
大事告成。在终端中执行sudo /etc/init.d/tomcat7 start/stop/restart(三个选一个就能实现启动,停止,重启功能了)
tomcat优化
我修改了tomcat的配置:现在的速度快了非常多
1:修改server.xml,目的提高并发性,后面你可以根据系统用户的上线数量调整,这个你可以查一下文档
<Connector port="8080" maxThreads="1000" minSpareThreads="100"maxSpareThreads="500" enableLookups="false"acceptCount="2000" disableUploadTimeout="true" maxPostSize="0"
redirectPort="8443"connectionTimeout="30000" disableUploadTimeout="true"URIEncoding="UTF-8" />
2:修改jvm,也就是内存配置
在linux中是修改bin下的catalina.sh
在第一行cygwin=false的前面加上
JAVA_OPTS="-Xms512m-Xmx1024m -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=1024m"
3.虚拟主机配置:
<Context path=""docBase="/var/lib/tomcat6/webapps/cms" debug="0"
reloadable="true" crossContext="true" />
还有一种办法
/etc/init.d/rc.local加
export JAVA_OPTS='-Xms1024m -Xmx2048m'
Tomcat优化:部分优化:
1.默认是1024,修改为65535。
$ sudo vim /etc/security/limits.conf
加入下面四行:
* hard nofile 63335
root soft nofile 63335
root hard nofile 63335
ulimit -n 65533
ulimit -u unlimited
重启服务器后,
$ ulimit -n
65535