Pages enfant
  • Notes d'installation Sakai OAE avec MySQL

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Commentaire: Migrated to Confluence 5.3
Bloc de code
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 :

Bloc de code
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 :

Bloc de code
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

Bloc de code
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)

Bloc de code
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

Bloc de code
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

Bloc de code
@@ -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)

Bloc de code
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 :

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

Je termine en compilant enfin Nakamura

Bloc de code
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 (“\”)

Bloc de code
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 :

Bloc de code
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:

Bloc de code
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:

Bloc de code
<?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

Bloc de code
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 :

Bloc de code
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)

Bloc de code
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

Bloc de code
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