Pages enfant
  • Notes d'installation Sakai OAE avec MySQL
Pre?pare?e a? partir de l'installation de la maquette du 02/07/2012 avec la version 1.3.0 sur une Debian Squeeze

Compilation Nakamura (backend)

De?marche globale issue de
https://confluence.sakaiproject.org/display/KERNDOC/Configuring+Nakamura+for+MySQL

En plus de Java 1.6 (openjdk-6-jdk), quelques autres pre?requis :

apt-get install git-core maven2

Je cre?e un utilisateur/groupe pour sakai que j'ai appele? sakaioae avec un groupe du me?me nom :

groupadd sakaioae
useradd -G sakaioae sakaioae -m -d

A partir du compte utilisateur nouvellement cre?e?, je prends la dernie?re version disponible de nakamura

cd /home/sakaioae
git clone https://github.com/sakaiproject/nakamura.git
cd nakamura

J'utilise ici la version 1.3.0 qui est la dernie?re stable a? ce jour, pour cela je choisi d'utiliser la version tagge?e org.sakaiproject.nakamura-1.3.0-snapshot-fix (par rapport a? la release tag org.sakaiproject.nakamura-1.3.0, il y a juste un petit fix1) oublie? sur les versions)

git checkout org.sakaiproject.nakamura-1.3.0-snapshot-fix

Je configure en me?me temps Nakamura pour utiliser une base MySQL. Pour cela je compile le bundle dans contrib/mysql-jdbc

cd contrib/mysql-jdbc
mvn clean install

Si vous tombez sur une erreur de type base introuvable ou? il ne trouve pas le reste du projet (de?sole? je n'ai pas releve? l'erreur), ajoutez a? contrib/mysql-jdbc/pom.xml

@@ -6,6 +6,7 @@
+
<groupId>org.sakaiproject.nakamura</groupId>
<artifactId>base</artifactId>
<version>1.3.0</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<groupId>org.sakaiproject.nakamura</groupId>
<artifactId>org.sakaiproject.nakamura.mysqljdbc</artifactId>

Ajoutez mysql-jdbc a? list.xml2)

cd /home/sakaioae/nakamura
vim app/src/main/bundles/list.xml

Au niveau de la section startLevel 1, j'ajoute avec le nume?ro de version renseigne? dans le fichier pom.xml de mysql-jdbc :

<bundle>
 <groupId>org.sakaiproject.nakamura</groupId>
 <artifactId>org.sakaiproject.nakamura.mysqljdbc</artifactId>
 <version>1.3.0</version>
</bundle>

Je termine en compilant enfin Nakamura

cd /home/sakaioae/nakamura
mvn clean install

Configuration MySQL

J'ai simplement suivi la partie Setting up configuration files manually de https://confluence.sakaiproject.org/display/KERNDOC/Configuring+Nakamura+for+MySQL#ConfiguringNakamuraforMySQL-Settingupconfigurationfilesmanually

1. Create the JDBC config file: Remember to update the username and password if you changed them in the above steps.

NOTE: Equals signs (”=”) in property values must be escaped with backslash (“\”)

mkdir -p nakamura/sling/config/org/sakaiproject/nakamura/lite/storage/jdbc
vim
nakamura/sling/config/org/sakaiproject/nakamura/lite/storage/jdbc/JDBCStorage
ClientPool.config
service.pid="org.sakaiproject.nakamura.lite.storage.jdbc.JDBCStorageClientPoo
l"
jdbc-driver="com.mysql.jdbc.Driver"
jdbc-url="jdbc:mysql://localhost/sakaioae?autoReconnectForPools\=true"
password="monsupermotdepassemysql"
username="sakaioae"

Remarque : Au cas ou?, n'oubliez pas d'adapter le nom de la base de donne?es situe? a? droite de localhost dans l'url.

2. Create the nakamura properties file :

vim nakamura/sling/nakamura.properties

sling.repository.config.file.url=${sling.home}/repository.xml

3. Create the repository.xml:

Copy the template into the sling directory, remove the Derby PersistanceManager tags and replace with the MySQL PersistanceManager tags:

cp nakamura/bundles/server/src/main/resources/repository.xml
nakamura/sling/repository.xml
vim nakamura/sling/repository.xml

Your repository.xml should look similar to the one below. _Only the PersistenceManager sections need to be changed:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Repository
          PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 2.0//EN"
          "http://jackrabbit.apache.org/dtd/repository-2.0.dtd">

<Repository>
    <FileSystem>
        <param name="path" value="${rep.home}/repository"/>
    </FileSystem>

    <DataStore/>
  <Security appName="Jackrabbit">
<SecurityManager workspaceName="security">
          <UserManager class="org.sakaiproject.nakamura.lite.jackrabbit.SparseMapUserManager">
          </UserManager>
    </SecurityManager>

      <AccessManager>
    </AccessManager>

        <LoginModule class="org.sakaiproject.nakamura.lite.jackrabbit.SparseLoginModule">

            <param name="anonymousId" value="anonymous"/>

            <param name="adminId" value="admin"/>
        </LoginModule>
</Security>
<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>


<Workspace name="${wsp.name}">
        <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
            <param name="path" value="${wsp.home}"/>

        </FileSystem>

        <PersistenceManager class="org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager">

          <param name="driver" value="com.mysql.jdbc.Driver" />

          <param name="url" value="jdbc:mysql://localhost:3306/sakaioae?useUnicode=true&#038;amp&#059;characterEncoding=UTF-8" />

          <param name="user" value="sakaioae" />
          <param name="password" value="monsupermotdepassemysql" />
          <param name="schema" value="mysql" />
          <param name="schemaObjectPrefix" value="${wsp.name}_"/>
          <param name="externalBLOBs" value="false" />

        </PersistenceManager>

        <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">

            <param name="path" value="${wsp.home}/index"/>
            <param name="resultFetchSize" value="102" />
        </SearchIndex>

    </Workspace>

    <Versioning rootPath="${rep.home}/version">

<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
            <param name="path" value="${rep.home}/version" />
        </FileSystem>

        <PersistenceManager class="org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager">

          <param name="driver" value="com.mysql.jdbc.Driver" />

          <param name="url" value="jdbc:mysql://localhost:3306/sakaioae?useUnicode=true&#038;amp&#059;characterEncoding=UTF-8" />
          <param name="user" value="sakaioae" />
          <param name="password" value="monsupermotdepassemysql" />
          <param name="schema" value="mysql" />
          <param name="schemaObjectPrefix" value="versioning_" />
          <param name="externalBLOBs" value="false" />
        </PersistenceManager>
</Versioning>
    <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
        <param name="path" value="${rep.home}/repository/index"/>
    </SearchIndex>
</Repository>

Lancement Nakamura

Dans le re?pertoire nakamura

cd /home/sakaioae/nakamura
java -Xmx1024m -XX:MaxPermSize=512m -server -jar
app/target/org.sakaiproject.nakamura.app-1.3.0.jar -f - 1> run.log 2>&1 &

La commande est issue dehttps://confluence.sakaiproject.org/display/KERNDOC/4+Building#id-4Building-Startingthenewly-builtserver
  mais les options disponibles sont :
? -Xms512m Start java with an initial memory allocation pool of 512 MB
? -Xmx1024m Let the memory allocation pool grow up to 1024 MB if needed

? -XX:MaxPermSize=256m Assign 256 MB for the permanent generation pool, where classes and associated metadata are stored

Configuration de Server Protection Service

Si vous acce?dez a? Sakai OAE via un autre nom d'ho?te que localhost et le port 8080, vous constaterez que tout ne se charge pas. Ce service sert a? limiter les risques d'attaques XSS (cross-site scripting).
Rendez-vous dans votre console Sling (a? l'adresse du type http://localhost:8080/system/console/), le nom d'utilisateur par de?faut est admin et le mot de passe admin.
A l'onglet Configuration, nous avons besoin d'ajouter une entre?e a? Trusted Hosts.
La configuration utilise?e est la suivante :
? Sakai OAE e?coute sur le port 8080 (Application Server)
? Sakai OAE e?coute sur le port 8082 (User Content Service)
Apache2 est configure? en reverse proxy, assurant l'encryption via HTTPS :
? https://sakaioae.univ.fr:443 ↔ Apache2 ↔ Sakai OAE 8080
? https://sakaioae.univ.fr:8443 ↔ Apache2 ↔ Sakai OAE 8082
La ligne que j'ajoute dans la configuration Sakai OAE est :

sakaioae.univ.fr = https://sakaioae.univ.fr:8443

On a comme cle? seulement sakaioae.univ.fr sans le nume?ro de port 443, car dans le code3),
// default ports are not added to the header.
il dit que si on est sur le protocole https et sur le port standard associe? 443, on ne doit mentionner que le host (pareil pour http et 80) ⇒ Si on pre?cise le nume?ro de port dans ces cas, c?a e?chouera... !!
La valeur associe?e a? la cle? (apre?s le signe =) de?signe le service ou? les donne?es utilisateurs (User Content Service) sont stocke?es. Cependant d'apre?s le code, elle est aussi utilise?e pour la ve?rification du referer dans le cas des reque?tes POST ! Ceci implique que si vous utilisez https pour l'application principale, vous devrez aussi faire passer les donne?es utilisateurs en https (sauf si des tweaks existent).
Il y a des infos sur https://confluence.sakaiproject.org/display/KERNDOC/Securing+User+Content mais la page n'est pas a? jour concernant les champs.
Changer le mot de passe de la console Sling
De?sactivez la protection HTTP le temps de la commande (ou modifier la ligne ci-dessous pour inclure un champ referer valide)

curl \-uadmin:admin \-FoldPwd=admin \-FnewPwd=newpass \-FnewPwdConfirm=newpass[https://sakaioae.univ.fr/system/userManager/user/admin.changePassword.html]

Mise en place de 3akai-ux (frontend)
De?marche globale et fin issue dehttps://confluence.sakaiproject.org/display/3AK/Full+development+environment+set+up
Je re?cupe?re la dernie?re version dans mon re?pertoire sakaioae

cd /home/sakaioae
git clone git://github.com/sakaiproject/3akai-ux.git
cd 3akai-ux/

Je change vers la release tag 1.3. Pour la traduction franc?aise, elle reste en cours. On ne la mettra que lorsqu'on en aura besoin (un commit a e?te? propose? ce matin me?me par Frederic Dooremont, d'une traduction a? 100% cette fois. On attendra qu'il mette a? jour la page https://confluence.sakaiproject.org/pages/viewpage.action?pageId=80905272 avec la version 1.3.0).
git checkout org.sakaiproject.nakamura.uxloader-1.3.0
Dans votre console Sling, a? l'onglet Configuration, cliquez sur le signe + de Apache Sling Filesystem Resource Provider
1. Enter /dev in the Provider Root field
2. Enter the full path to your /home/sakaioae/3akai-ux/dev directory in the Filesystem Root
field and click Save
3. If you do not see a new entry beneath the “Apache Sling Filesystem Resource Provider”, reload
the page and you should see it.
4. Click the plus icon to the right of the “Apache Sling Filesystem Resource Provider” again.
5. Enter /devwidgets in the Provider Root field
6. Enter the full path to your /home/sakaioae/3akai-ux/devwidgets directory in the
Filesystem Root field and click Save
7. If you do not see a new entry beneath the Apache Sling Filesystem Resource Provider, reload the
page and you should now see two.

Test de la configuration :

Make sure your browser's cache is disabled so your browser is always fetching your latest local code. In Firefox, you can use Firebug's Net Panel to disable the browser's cache.
Nakamura should now be using your UX code rather than the UX code it came with. To make sure, try saving the following HTML to 3akai-ux/dev/testing.html and go to http://localhost:8080/dev/testing.html
Hello World Hello World

  • Aucune étiquette

Commentaire

  1. La version 1.4.3 intègre la version française