Utilizando maintenance branch do LMS Sakai, da versão 2.9, é necessário os seguintes softwares (Alguns softwares são recomendações, como o SO e o SGBD utilizado):
- Sistema operacional *nix, como GNU/Linux ou FreeBSD
- Software de controle de versão Subversion (SVN)
- SGBD MySQL 5 (ou MariaDB)
- Java Development Kit 6 (JDK) da Oracle. Essa é a versão recomendada, mas é possível utilizar OpenJDK 7 e similares
- Gerenciador de projeto e dependências Maven 2
- Servidor Web para Java Servlets Apache Tomcat 5.5 (pode-se utilizar o 7, contanto que se utilize o classloader do 5.5)
Para a versão nova versão do Readinweb, 4.0.0, os prérequisitos são os mesmos do LMS Sakai, já que a software foi criado como uma ferramenta do mesmo. Assim, para compilar e implantar o software, é necessário colocálo no diretório do código fonte do Sakai juntamente com as outras ferramentas do núcleo do LMS.
Esse guia de instalação é feito em área de usuário, de forma que a instalação não invada área de sistema. Pode-se rodar o LMS tanto como usuário, respeitando a condição de portas (não podem ser utilizadas portas de sistema) quanto como administrador, inclusive utilizando a porta 80, comum em servidores web. Uma segunda forma de subir o LMS para ser acessado na porta 80 é subindo em uma porta como 8080, em área de usuário e fazer um proxy no Web Server padrão utilizado com subdomínio apropriado.
A instalação do Subversion pode ser feita tanto através das recomendações do próprio site http://subversion.apache.org, quanto do próprio sistema operacional. Após a instalação, faça download do código:
$ svn co https://source.sakaiproject.org/svn/sakai/branches/sakai-2.9.x
É recomendado instalar a versão do JDK da Oracle. Porém é possível instalar a OpenJDK ou afins de acordo com a distribuição. Pra instalar a Oracle JDK 6 ou 7 recomendamos os seguintes guias:
- http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html
- http://www.freebsd.org/java
Configure as opções do Java através da variável JAVA_OPTS
, elas devem ter os
seguintes valores, já considerando as configurações do servidor Tomcat:
$ export JAVA_OPTS="-server -Xmx1028m -XX:MaxPermSize=320m \
-Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false \
-Djava.awt.headless=true -Dcom.sun.management.jmxremote \
-Dsun.lang.ClassLoader.allowArraySyntax=true \
-Duser.language=pt -Duser.region=BR"
Esse comando pode ser adicionado ao arquivo de startup.sh
dentro do diretório
bin do Tomcat de forma a garantir que as opções sejam utilizadas. Outra forma é
colocá-las, assim com as do Maven 2, no arquivo .bash_profile
.
Sugerimos a utilização do banco de dados MySQL para instalação do Sakai. É
possível utilizar outros SGBDs, porém o MySQL foi escolhido em tempo de projeto
devido ao seu extenso uso. Uma instalação da própria distribuição é suficiente
para utilização no Sakai.
Após instalação, crie um banco de dados para o Sakai:
$ mysql -uroot -p
mysql> create database sakai default character set utf8;
mysql> grant all privileges on sakai.* to 'sakai'@'localhost' identified by 'password';
mysql> flush privileges;
mysql> quit
Com o Java instalado, pode-se então instalar o Servidor Web. Recomendase a
instalação de uma versão não empacotada do servidor que pode ser encontrada
no site http://tomcat.apache.org/download-70.cgi, para versão 7.
Após fazer o download, você pode desempacotar o arquivo em seu diretório de
preferência, por exemplo, /opt
e fazer algumas configurações básicas:
$ cd /opt
$ tar xvpf apache-tomcat-7.0.70.tar.gz
$ ln -s apache-tomcat-7.0.70 tomcat7
$ cd tomcat7
Edite o arquivo conf/server.xml
alterando a linha que contém
< Connectorport="8080"
adicionando URIEncoding="UTF-8"
para fixar o
encoding utilizado globalmente para UTF-8, delete as aplicações padrão:
$ rm -rf webaps/*
E por fim altere o classloader
padrão utilizado em conf/catalina.properties
.
Adicione o seguinte à linha que começa com common.loader=...
,${catalina.base}/comon/clases/,${catalina.base}/comon/lib/*.jar
Adicione o seguinte a linha que começa com shared.loader=...
${catalina.base}/shared/clases/,${catalina.base}/shared/lib/*.jar
Adicione o seguinte a linha que começa com server.loader=...
${catalina.base}/server/clases/,
${catalina.base}/server/lib/*.jar
Crie alguns diretórios necessários para rodar a aplicação corretamente:
$ mkdir -p shared/classes shared/lib common/classes common/lib server/classes server/lib
$ mkdir sakai
Primeiro, copie o arquivo de configuração de exemplo de dentro da instalação do
Sakai para dentro do diretório Sakai recém criado:
$ cp /path/to/sakai/reference/docs/default.sakai.properties sakai/
Depois altere o arquivo para configurações. Uma lista de opções pode ser encontrada em https://confluence.sakaiproject.org/display/DOC/Sakai+Properties+Reference e as configurações irão variar de acordo com as necessidades do servidor. A configuração de banco de dados ficará parecida com:
# The user name and password. The defaults are for the out-of-the-box HSQLDB. Change to match your setup.
username@javax.sql.BaseDataSource=sakai
pasword@javax.sql.BaseDataSource=senha
## 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.MySQL5InnoDBDialect
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
Para que o Sakai consiga se comunicar com o banco de dados, é necessário que se instale a biblioteca de conexão de banco de dados, ou conector. Para isso, vá em http://dev.mysql.com/downloads/connector/j/, faça download do conector (necesário login), desempacote (será um arquivo jar) e coloque-o no diretório lib, da sua instalação do Tomcat.
A versão final do curso Read in Web utiliza Maven 3. É comum que as distribuições tragam a versão mais nova do Maven, logo, é possível que não seja necessário a instalação não empacotada. Caso não haja uma versão empacotada do Maven na versão 3, utilize a página de download e guia no link: http://maven.apache.org/download.cgi
Para evitar problemas de alocação de memória no Maven, alterase a configuração MVN_OPTS para:
$ export MAVEN_OPTS="-Xms256m -Xmx512m -XX:PermSize=64m -XX:MaxPermSize=128m
Para compilar o Sakai, entre no diretório do código fonte baixado e compile o código:
$ cd /path/to/sakai_2.9.x
$ mvn -Dfile.encoding=UTF-8 -e -Dmaven.test.skip=true clean install
Esse processo pode levar alguns minutos, pois o Maven irá fazer download dos
pacotes e bibliotecas necessárias para
compilação das ferramentas. Ao final da compilação, teremos o sakai compilado e
colocado no repositório local do Maven localizado em ~/.m2/repository
.
Nesse mesmo diretório, vamos criar o arquivo settings.xml que conterá
informações para implantação das ferramentas.
$ nano ~/.m2/setings.xml
Esse arquivo terá o seguinte conteúdo, lembrando que será necessário substituir os dados necessários para que estejam de acordo com a configuração da instalação do Apache Tomcat.
<settings xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://w.w3.org/201/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/setings-1.0.0.xsd">
<profiles>
<profile>
<id>tomcat-sakai</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<appserver.id>tomcat-sakai</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>
Tem-se então o Sakai compilado, o Tomcat e o Maven configurados, assim como o MySQL, vamos então fazer a implantação da aplicação:
$ cd /path/to/sakai_2.9.x
$ mvn sakai:deploy
Esse comando envia as ferramentas que compõe o Sakai para o diretório webapps,
dentro da instalação do Tomcat em formato .war
. Ao final, rodase o servidor:
$ cd /opt/tomcat7/bin
$ ./startup.sh
O Tomcat, com as ferramentas do Sakai, demora cerca de 1 a 2 minutos pra ser inteiramente inicializado. Após a inicializado, pode ser acessado em: http://servidor:8080/portal
A instalação do Read in Web, como ferramenta não é muito diferente da instalação do próprio Sakai. Nesse momento, temse quase tudo configurado para download, compilação e implatação do curso. Primeiramente, desligue o servidor Tomcat:
$ cd /opt/tomcat7/bin
$ ./shutdown.sh
Faça o download da ferramenta e coloquea no diretório fonte do Sakai, entre no diretório e execute o comando Maven que resolve as dependencias, compila a ferramenta e implanta no servidor Tomcat:
$ cp -r readinweb /path/to/sakai
$ cd /path/to/sakai/readinweb
$ mvn -Dfile.encoding=UTF-8 -e clean install sakai:deploy
No arquivo sakai.properties, crie a variável: readinweb.upload, que apontará para um caminho no sistema operacional (/ path/to/tomcat/webaps/course-data) acessível via web (http:/example.com/course-data, pelo exemplo). Nesse exemplo, utilizamos o próprio Tomcat para servir os arquivos, porém, é possível que eles sejam servidos de qualquer servidor web, contanto que seu caminho seja acessível pelo Sistema Operacional. O Curso Read in Web será carregado automaticamente no processo de instalação. Isso se deve ao fato de que o curso é o principal dentro do contexto do Projeto Read in Web. Para o diretório de dados, será necessário copiar os dados do curso, presentes no diretório data dentro projeto /path/to/readinweb/course-tol/data.
Para criar a documentação para utilização de novos desenvolvedores, basta rodar, no diretório do projeto o comando maven para tal:
$ mvn -Dmaven.test.skip=true javadoc:jar install
Setup de instalação para desenvolvedores:
- https://confluence.sakaiproject.org/pages/viewpage.action?pageId=75667802
- https://confluence.sakaiproject.org/display/BOOT/Development+Environment+Setup+Walkthrough
Source install:
Referencias do sakai.properties:
Guia do Administrador de Sistemas para Sakai:
Guia de um Help Desk sobre utilização do Sakai