Chapitre 6 Procédures d'exploitation
6.1 Sauvegarde et restauration
La sauvegarde se différencie de l'archivage par le fait que la sauvegarde est une opération effectuée par le service d'exploitation système, et qu'il peut s'intégrer plus facilement dans les procédures mises en place par le service informatique.
Ce chapitre va donc présenter quels sont les éléments de Dynacase à sauvegarder sur un serveur afin de pouvoir remonter ces éléments en cas de perte totale de ce serveur.
6.1.1 Éléments à sauvegarder
Les éléments à sauvegarder sont les suivants :
- Le répertoire de dynacase-control : il contient les méta-données des contextes ainsi que le code permettant de gérer l'installation et la mise à jour des contextes Dynacase.
- Pour chaque contextes Dynacase :
- Le répertoire applicatif du contexte : il contient le code PHP des applications et des familles de documents.
- La base de données : elle contient les documents et le paramétrage Dynacase.
- Le ou les vaults : ils contiennent les fichiers insérés dans les documents Dynacase.
6.1.2 Sauvegarde
La sauvegarde se déroulera selon les étapes suivantes:
- Sauvegarde de dynacase-control
- Mise en mode maintenance du contexte
- Sauvegarde de la base de données
- Sauvegarde du répertoire applicatif du contexte
- Sauvegarde du vault
- Sortie du mode maintenance du contexte
6.1.2.1 Sauvegarde de dynacase-control
La sauvegarde de dynacase-control permet de sauvegarder les "méta-données" du contexte (la liste des modules installés dans ce contexte avec leur version).
tar zcf /backup/dynacase-control.tar.gz /var/www/dynacase-control
Si vous avez des archives de contextes et que vous ne souhaitez pas les
sauvegarder ou bien vous souhaitez réduire le temps ou la taille de la
sauvegarde de dynacase-control, vous pouvez alors exclure ces archives en ne
sauvegardant pas les fichiers contenus dans le sous-répertoire
archived-contexts
:
tar zcf /backup/dynacase-control.tar.gz --exclude archived-contexts/\* /var/www/dynacase-control
Note :
- La sauvegarde de dynacase-control sauvegarde les méta-données de tous les contextes gérés par ce dynacase-control.
6.1.2.2 Mise en mode maintenance du contexte
Afin d'assurer l'intégrité des données, l'accès au contexte sera bloqué afin que les utilisateurs ne puissent pas modifier les données durant le déroulement de la sauvegarde.
Pour cela il faudra lancer le script ./wstop
dans le contexte Dynacase qu'on
sauvegarde :
/var/www/dynacase-control/wiff context <nomDuContexte> exec ./wstop
6.1.2.3 Sauvegarde de la base de données
La sauvegarde de la base de données s'effectue par un dump complet à l'aide de
la commande pg_dump
:
PGSERVICE=dynacase pg_dump | gzip > /backup/dynacase.pg_dump.gz
6.1.2.4 Sauvegarde du répertoire applicatif du contexte
Le répertoire du contexte contient des fichiers et des répertoires qui peuvent
être sauvegardés de manière standard avec des outils comme tar
:
tar zcf /backup/dynacase.context.tar.gz /var/www/dynacase
Afin de réduire la durée de sauvegarde vous pouvez exclure les éléments générés dynamiquement.
Ces éléments sont :
- le répertoire
var/cache
: sous-répertoire contenant des fichiers de cache. - le répertoire
var/session
: sous-répertoire contenant les sessions. - le répertoire
var/tmp
: sous-répertoire par défaut des fichiers temporaires. - le répertoire
var/upload
: sous-répertoire de stockage des archives importées.
Vous pouvez aussi effectuer une sauvegarde incrémentale des fichiers du répertoire du contexte.
6.1.2.5 Sauvegarde du vault
Si vous avez conservé le vault dans son emplacement par défaut (par défaut dans
le sous-répertoire vaultfs
à la racine du contexte), alors le vault sera
inclut dans la sauvegarde du répertoire applicatif du contexte ci-dessus.
Si vous avez déplacé le vault dans un répertoire distinct (ou que vous l'avez exclu de la sauvegarde du contexte ci-dessus), alors il vous faudra le sauvegarder de manière distincte.
Le vault, comme le répertoire du contexte, peut être sauvegardé avec des outils
standards comme tar
:
tar zcf /backup/dynacase.vault.tar.gz /data/vault
Une sauvegarde incrémentale est aussi possible pour ce répertoire.
6.1.2.6 Sortie du mode maintenance du contexte
Une fois les éléments sauvegardés, l'accès au contexte peut-être réouvert à
l'aide du script wstart -m
:
/var/www/dynacase-control/wiff wstart <nomDuContexte>
6.1.3 Restauration
L'ordre de restauration des éléments s'effectue de manière inverse à leur sauvegarde :
- Restauration du vault
- Restauration du répertoire applicatif du contexte
- Restauration de la base de données
- Sortie du mode maintenance du contexte
- Restauration de dynacase-control
6.1.3.1 Restauration du vault
Restauration des fichiers précédemment archivés :
tar -C / -zxf /backup/dynacase.vault.tar.gz
6.1.3.2 Restauration du répertoire applicatif du contexte
Restauration des fichiers du contexte :
tar -C / -zxf /backup/dynacase.context.tar.gz
6.1.3.3 Restauration de la base de données
Re-créer la base de données avec les paramètres PostgreSQL adéquats :
-
standard_conforming_strings
positionné àoff
-
DateStyle
positionné àISO, DMY
ALTER DATABASE dynacase SET standard_conforming_strings = off; ALTER DATABASE dynacase SET DateStyle = 'ISO, DMY';
Restaurer le dump de la base :
gzip -dc /backup/dynacase.pg_dump.gz | PGSERVICE=dynacase psql
Note : Pour accélerer le chargement des données, vous pouvez consulter la section Bulk data loading pour un exemple de paramétrage de Postgresql.
6.1.3.4 Ré-enregistrement des crontabs
Réenregistrer la crontab de Dynacase :
/var/www/dynacase-control/wiff context <nomDuContexte> exec ./wsh.php --api=crontab --cmd=register --file=FREEDOM/freedom.cron
Si votre application possède ses propres crontab, il faudra alors réenregistrer ses crontabs :
/var/www/dynacase-control/wiff context <nomDuContexte> exec ./wsh.php --api=crontab --cmd=register --file=MON_APP/ma_crontab.cron
6.1.3.5 Sortie du mode maintenance du contexte
Comme la sauvegarde a été effectué en mode maintenance (wstop
), il faut à la
fin réouvrir l'accès avec ./wstart -m
:
/var/www/dynacase-control/wiff context <nomDuContexte> exec ./wstart -m
6.1.3.6 Restauration de dynacase-control
tar -C / -zxf /backup/dynacase-control.tar.gz
6.1.4 Ajustement des références à la machine Nouveau
Si la restauration s'effectue sur une machine différente de celle sauvegardée, c'est-à-dire que les chemins d'accès aux fichiers ou que le service de base de données sont différents, il faudra alors modifier les éléments restaurés pour refléter ces changements.
Les éléments qui référencent des chemins ou service de base de données dépendant de la machine sont décrits ci-dessous.
6.1.4.1 Chemin racine du contexte
Le chemin d'accès à la racine du contexte est référencé dans les fichiers suivants :
-
3.2 R15 Si le contexte utilise
dynacase-core >= 3.2.21
:
supervisor/.htaccess
- Modifier la directive
AuthUserFile "/path/to/context/supervisor/.htpasswd"
avec la nouvelle racine du contexte. .htaccess
- Modifier la directive
php_value session.save_path "/path/to/context/var/session"
avec la nouvelle racine du contexte.
-
3.2 R14 Si le contexte utilise
dynacase-core < 3.2.21
:
supervisor/.htaccess
- Modifier la directive
AuthUserFile "/path/to/context/supervisor/.htpasswd"
avec la nouvelle racine du contexte. .htaccess
- Modifier la directive
php_value session.save_path "/path/to/context/var/session"
avec la nouvelle racine du contexte. WHAT/Lib.Prefix.php
- Modifier la variable
$pubdir = '/path/to/context';
avec la nouvelle racine du contexte. - Paramv
CORE_PUBDIR
-
Modifier la valeur du paramv
CORE_PUBDIR
avec la nouvelle racine du contexte.UPDATE paramv SET val ='/path/to/context' WHERE name = 'CORE_PUBDIR'
6.1.4.2 Chemin d'accès au vault
Le chemin d'accès à la racine du vault est référencé en base de données :
- Table
vaultdiskfsstorage
, colonner_path
-
Modifier le chemin
r_path
de la tablevaultdiskfsstorage
avec le nouvel emplacement du vault.UPDATE vaultdiskfsstorage SET r_path = '/new/path/to/vaultfs' WHERE r_path = '/old/path/to/vaultfs';
6.1.4.3 Service de la base de donnée
Le nom du service de la base de donnée est référencée dans les fichiers suivants :
-
3.2 R15 Si le contexte utilise
dynacase-core >= 3.2.21
:
config/dbaccess.php
- Modifier les variables
$pgservice_core = 'pgServiceName';
et$pgservice_freedom = 'pgServiceName';
avec le nouveau nom du service de base de données.
-
3.2 R14 Si le contexte utilise
dynacase-core < 3.2.21
:
config/dbaccess.php
- Modifier les variables
$pgservice_core = 'pgServiceName';
et$pgservice_freedom = 'pgServiceName';
avec le nouveau nom du service de base de données.
Le nom du service de base de données est aussi référencée dans la base de données elle même :
- Paramv
CORE_DB
,FREEDOM_DB
etWEBDAV_DB
-
Modifier la valeur des paramv
CORE_DB
,FREEDOM_DB
etWEBDAV_DB
avec le nouveau nom du service de base de données.UPDATE paramv SET val = 'service=''' || 'newPgServiceName' || '''' WHERE name IN ('CORE_DB', 'FREEDOM_DB', 'WEBDAV_DB');
6.1.4.4 Nom d'hôte et URL
Le nom d'hôte de la machine peut être référencé dans la base de données :
- Paramv
CORE_URLINDEX
-
Si ce paramètre est renseigné, modifier la valeur avec la nouvelle URL.
UPDATE paramv SET val = 'http://newURL/xxx' WHERE name = 'CORE_URLINDEX';
- Paramv
CORE_OPENURL
-
Si ce paramètre est renseigné, modifier la valeur avec la nouvelle URL.
UPDATE paramv SET val = 'http://newOpenURL/xxx' WHERE name = 'CORE_OPENURL';
- Paramv
TE_INDEXURL
-
Si ce paramètre est renseigné, modifier la valeur avec la nouvelle URL.
UPDATE paramv SET val = 'http://newTeCallbackURL/xxx' WHERE name = 'TE_INDEXURL';
6.2 Check base documentaire
Une liste de vérification de problèmes pouvant se produire sur une installation
Dynacase est disponible dans le sous-répertoire supervisor/
du contexte et
accessible par l'URL : http://<nomDuServeur>/supervisor/, rubrique DB
consistency.
L'interface présente alors une liste de vérification avec un statut :
- (vert) si aucune erreur ou incohérence n'a été detecté ;
- (rouge) ou (orange) si des erreurs ou des incohérences ont été detectés.
Liste des vérifications :
main connection db
- Vérifie que Postgresql est bien lancé.
dateStyle
- Indique le dateStyle utilisé par la base courante.
unreferenced user in group
-
Vérifie les inconsistances de la table
groups
vis à vis des utilisateurs. La tablegroups
contient les liens entre les utilisateurs et les groupes, dans certains cas des utilisateurs supprimés peuvent persister dans cette table.Solution : Supprimer les références erronées
DELETE FROM groups WHERE iduser NOT IN (SELECT id FROM users);
user as group
-
Par exemple
user as group1 users detected as group 25
. Peut arriver par un import SQL qui écraserait les utilisateurs. Peut aussi provenir de groupes supprimés qui n'existe plus dans la tableusers
.Solution : Soit mettre les utilisateurs comme groupe (mettre l'attribut
isgroup
àY
dans la tableusers
) ou supprimer la référence dans la tablegroups
, puis rafraîchir la tableusers
:dynacase=# BEGIN; dynacase=# DELETE FROM groups WHERE idgroup NOT IN (SELECT id FROM users WHERE isgroup='Y'); DELETE 110 dynacase=# COMMIT; COMMIT
puis :
/var/www/dynacase-control/wiff context <nomDuContexte> exec ./wsh --api=freedom_groups
unreference actions
-
peut arriver lors de la suppression d'applications.
Solution : Appliquer le fichier SQL
/var/www/dynacase/WHAT/what_clean.sql
sur la base principale. unreference parameters
-
peut arriver lors de la suppression d'applications
Solution : Appliquer le fichier SQL
/var/www/dynacase/WHAT/what_clean.sql
sur la base principale. unreference acl
-
peut arriver lors de la suppression d'applications
Solution : Appliquer le fichier SQL
/var/www/dynacase/WHAT/what_clean.sql
sur la base principale. unreference permission
-
peut arriver lors de la suppression d'applications
Solution : Appliquer le fichier SQL
/var/www/dynacase/WHAT/what_clean.sql
sur la base principale. double doc id
-
Plusieurs documents ont le même identifiant numérique. Peut arriver lors d'importation avec des identificateurs fixe ou lors d'importation avec des familles inexistantes.
Exemple :
1 double id detected Array ( [1178] => 2 )
Solution : Supprimer l'un des doublons (ou les deux)
Obtenir la liste des identifiants posant problème :
dynacase=# SELECT id,COUNT(*) FROM doc GROUP BY id HAVING COUNT(*) > 1; id | COUNT ------+------- 1178 | 2
Obtenir le détail des enregistrements posant problème :
dynacase=# SELECT id, title, fromid, locked FROM doc WHERE id = 1178; id | title | fromid | locked ------+-----------------+--------+-------- 1178 | Fiche de suivi | 0 | 0 1178 | Dossier EI auto | 1169 | 0
Suppression de l'enregistrement incorrect :
dynacase=# DELETE FROM doc WHERE id = 1178 AND fromid = 0; DELETE 1
double doc name
-
plusieurs documents ont le même identifiant logique (propriété
name
)Solution : Supprimer l'un des doublons (ou les deux)
family inheritance
-
L'héritage déclaré par la famille ne correspond pas à celle défini dans postgresql. Peut arriver si on change l'héritage d'une famille ou si une famille est créée avant sa famille père.
Exemple :
Family [44232]: fromid = 0, pg inherit= Family [44237]: fromid = 0, pg inherit= Family [44241]: fromid = 0, pg inherit= …
Solution : restaurer l'héritage
Identifier les enregistrement posant problème :
dynacase=# SELECT id, title, fromid, locked, doctype FROM doc WHERE fromid = 0 AND doctype IS NULL; id | title | fromid | locked | doctype -------+-------+--------+--------+--------- 44232 | | 0 | 0 | 44237 | | 0 | 0 | 44241 | | 0 | 0 | …
Supprimer les enregistrements :
dynacase=# DELETE FROM doc WHERE fromid = 0 AND doctype IS NULL; DELETE 14
Ou supprimer la table correspondante et lancer :
# /var/www/dynacase-control/wiff context <nomDuContexte> exec ./wsh --api=fdl_adoc --docid=<N°famille>
multiple alive revision
-
Plusieurs révisions sont vivantes pour un même document. Cela peut arriver sur d'ancienne version (< 2.14) lorsque deux tentatives de révisions simultanées sont créés ou si par programmation on force des restauration.
Exemple :
2 multiple alive Array ( [73780] => jean-raymond.durand@example.net [85480] => Restauration groupe test )
Solution : utiliser l'API fixMultipleAliveRevision
Obtenir le détail des enregistrements posant problème :
dynacase=# SELECT id, title FROM docread WHERE id IN (SELECT m AS id FROM (SELECT MIN(id) AS m, initid, COUNT(initid) AS c FROM docread WHERE locked != -1 AND doctype != 'T' GROUP BY docread.initid) AS z WHERE z.c > 1); id | title -------+----------------------------------------------------- 73780 | jean-raymond.durand@example.net 85480 | Restauration groupe test (2 lignes)
API fixMultipleAliveRevision :
# /var/www/dynacase-control/wiff context <nomDuContexte> exec ./wsh.php --api=fixMultipleAliveRevision Fixing mutiple alive revision for (initid='35198', id='85480') Fixing mutiple alive revision for (initid='56405', id='73780')
attribute type
- Vérifie la cohérence entre le type Dynacase d'un attribut et le type SQL de la colonne associée à cet attribut.
attribute orphan
-
Vérifie la cohérence entre la liste des attributs logiques Dynacase déclarés pour une famille et les colonnes physiques de la table
docXXX
pour cette famille.Cette vérification détecte donc les colonnes de la table
docXXX
d'une famille qui ne correspondent pas, ou plus, à un attribut de cette famille (tabledocattr
).Solution : appliquer les requêtes SQL données en résultat pour supprimer les colonnes physiques des tables
docXXX
des familles ayant cette incohérence. cleanContext cron job execution
-
Vérifie que la crontab de Dynacase est correctement exécutée en vérifiant qu'il n'existe pas de documents temporaires plus vieux de 1 jour. La présence de documents temporaires plus vieux de 1 jour peut indiquer que la crontab n'est soit pas bien enregistrée, soit que le mécanisme
cron
général est défaillant.Solution : vérifier les points indiquer dans le résultat de la vérification.
missing documents in docread
-
Vérifie s'il y a des documents dans la table
doc
qui ne sont pas présents dans la table de "cache"docread
.Solution : mettre à jour les documents pour qu'ils soient insérés dans la table de "cache"
docread
.dynacase=# UPDATE doc SET id = id WHERE id < 1e9 AND NOT EXISTS (SELECT 1 FROM docread WHERE docread.id = doc.id);
spurious documents in docread
-
Vérifie s'il y a des documents dans la table de "cache"
docread
qui n'existent plus dans la tabledoc
.Solution : supprimer les documents qui n'existent plus dans la table de "cache"
docread
.dynacase=# DELETE FROM docread WHERE id < 1e9 AND NOT EXISTS (SELECT 1 FROM doc WHERE docread.id = doc.id);
missing family name
-
Vérifie s'il existe des familles dont le nom logique n'existe pas dans la table
docfam
ou qui est mal référencé dans les tablesdocname
etdocread
.Exemple :
• 1 unnamed family in docfam: {17087}
Solution :
Mettre à jour le nom de la famille :
dynacase=# UPDATE docfam SET name = 'NOM_DE_LA_FAMILLE' WHERE id = <id-famille-sans-nom>;
Puis, lancer un
cleanContext
:$ ./wsh.php --api=cleanContext
Si dynacase-workspace
est installé, les vérifications additionnelles
suivantes sont faites :
connection db webdav
- Vérifie la disponibilité de la table
webdav
(si le moduleWORKSPACE
est installé)
Si dynacase-networkuser
est installé, les vérifications additionnelles
suivantes sont faites :
connection USER LDAP
- Vérifie le lien avec le LDAP (si le module
NETWORKUSER
est installé)
6.3 Miroir local des paquets
Si la machine sur laquelle est installé Dynacase n'a pas accès à Internet, vous pouvez créer un miroir local HTTP/FTP du dépôt de paquets en ligne.
$ mkdir /var/www/mirror $ cd /var/www/mirror $ wget --mirror --level=1 --no-parent "http://dynacase.anakeen.com/control/?F=0" # dynacase-control $ wget --mirror --level=1 --no-parent --http-user=${EEC_USERNAME} --http-password=${EEC_PASSWD} "${EEC_REPO_URL}/?F=0" # Votre dépôt EEC Dynacase $ wget --mirror --level=1 --no-parent "http://ftp.dynacase.org/third-party/?F=0" # third-party elements
Les paquets du dépôt EEC font référence à des éléments additionnels téléchargés sur http://ftp.dynacase.org (dépôt third-party elements). Pour pouvoir être installés depuis le miroir il faut donc modifier ces paquets pour y inscrire la nouvelle racine pour le téléchargement de ces éléments additionnels.
Pour cela, dynacase-control fournit l'outils sedwebinst.php
dans le sous-répertoire utils
du répertoire d'installation de dynacase-control.
Cet outils prend 3 arguments qui sont :
- l'URL à modifier ;
- la nouvelle URL d'accès aux éléments de third-party sur votre miroir ;
- et enfin le répertoire d'accès au dépôt des paquets de Dynacase qui contient les fichiers webinst.
$ php /var/www/dynacase-control/utils/sedwebinst.php \ http://ftp.dynacase.org/third-party \ http://localhost/mirror/ftp.dynacase.org/third-party \ /var/www/mirror/eec.anakeen.com/$EEC_USERNAME/
Configurer ensuite votre serveur Web pour servir ce répertoire mirror
, et configurer un dépôt pointant sur ce répertoire (voir la gestion des dépôts).
Ajuster ensuite les paramètres wiff-update-host et wiff-update-path de l'installeur Dynacase-control pour chercher les mises-à-jour de l'installeur sur ce nouveau dépôt (voir la configuration des mises-à-jour de Dynacase Control).
6.4 Exploitation des logs
Les logs de Dynacase sont gérés au moyen de syslog.
Dynacase logue par défaut tous ses messages avec la facilité LOG_LOCAL6, à l'exception des erreurs d'authentification, qui sont journalisées avec la facilité LOG_AUTH (à moins que vous ayiez changé cette valeur au moyen du paramètre applicatif AUTH_LOGFACILITY).
Le formatage des logs suit la règle suivante: [<code>] Dynacase <application> <fonction> <message>, avec :
- code
- Le code de log, correspondant à la priorité :
- D pour la priorité DEBUG
- O pour les appels de fonction deprecated (priorité INFO)
- I pour la priorité INFO
- W pour la priorité WARNING
- E pour la priorité ERROR
- F pour la priorité ALERT
- application
- l'application, si définie, sous la forme :application
- fonction
- la fonction, si définie, sous la forme :fonction
Après chaque exécution de procédures automatiques (cron), des logs sont enregistrés dans le syslog. Ils contiennent le titre et l'id du processus exécuté, ainsi que le statut de l'exécution (0 en cas de succès) et le temps d'exécution de la procédure:
Aug 30 10:18:15 pc-de-test [I] Dynacase:CORE:WELCOME: [] Default Master [1] - : Process FDL IMPCARD [3355] executed in 1.005 seconds
Le même système est en place à chaque exécution de timer (minuteur).
L'api dynacaseDbCleaner produit, elle aussi, des logs. Ces logs sont de la forme:
Aug 27 09:25:55 ubuntu1004server dynacaseDbCleaner(CORE_CLIENT): DELETE 0 Aug 27 09:25:55 ubuntu1004server dynacaseDbCleaner(CORE_CLIENT): Temps : 3,868 ms
Chaque commande sql lancée par le dynacasDbCleaner est enregistrée. Le nom du client (paramétré à la configuration) est affiché à la place de CORE_CLIENT.
6.5 Suppression dépôts de paquets freedom-ecm.org
Les premières versions de Freedom et Dynacase étaient hébergés sur des serveurs du domaine freedom-ecm.org.
Suite au changement de nom, ce domaine n'est plus valide et vous ne devez plus utiliser de dépôts de paquets qui font référence à ce domaine.
Pour supprimer les références à ces anciens dépôts de paquets, vous pouvez soit les supprimer manuellement, soit utiliser le script utils/remove_freedom_ecm_repos.php
fourni avec les dernières versions de dynacase-control pour supprimer automatiquement ces dépôts.
Le script fonctionne en mode notification (pour vous informer de la présence de dépôts invalides) ou en mode suppression (pour supprimer les dépôts invalides rencontrés).
Mode notification (mode par défaut) :
# cd /var/www/dynacase-control # php utils/remove_freedom_ecm_repos.php * Inspecting repository list... Found invalid repository 'invalid1' with host 'ftp.freedom-ecm.org'. Found invalid repository 'invalid2' with host 'ftp.freedom-ecm.org'.
Re-run with '--remove' argument to remove the invalid repositories.
Mode suppression (option --remove
) :
# cd /var/www/dynacase-control # php utils/remove_freedom_ecm_repos.php --remove * Inspecting repository list... Found invalid repository 'invalid1' with host 'ftp.freedom-ecm.org'. Found invalid repository 'invalid2' with host 'ftp.freedom-ecm.org'. * Deactivating repository 'invalid1' on context 'c1'. Done. * Deactivating repository 'invalid1' on context 'c2'. Done. * Deactivating repository 'invalid2' on context 'c2'. Done. * Deleting repository 'invalid1'. Done. * Deleting repository 'invalid2'. Done.
6.6 Répertoires de fichiers de cache et de fichiers temporaires
Les répertoires de cache et de fichiers temporaires sont localisés dans le
sous-répertoire var
du contexte Dynacase.
Le sous-répertoire var
contient les répertoires suivants :
cache/file/
- cache de fichiers générés par les applications Dynacase ;
cache/image/
- cache d'images redimensionnées dynamiquement par Dynacase ;
session/
- fichiers de session PHP ;
tmp/
- fichiers temporaires (valeur par défaut
./var/tmp
du paramètre applicatif CORECORE_TMPDIR
etFREEDOM_UPLOADDIR
) ; upload/
- répertoire de stockage pour la fonction d'import d'archives.