Installation manuelle sur un serveur Ubuntu¶
Introduction¶
Ce guide explique comment installer manuellement DHIS2 sur Ubuntu 22.04 avec PostgreSQL et Tomcat comme serveur. Il suggère également d'utiliser un proxy (comme nginx ou Apache) et des outils de surveillance (comme Munin ou Zabbix) pour améliorer les performances. Bien que tous les composants puissent être hébergés séparément, ce guide est axé sur une configuration simple, à serveur unique.
Ce guide est principalement destiné à servir de référence pour les pratiques générales d'installation. Les étapes de l'installation peuvent varier en fonction de facteurs tels que le système d'exploitation, le choix de la base de données et d'autres configurations. Il est donc fortement recommandé d'automatiser l'installation, et pour les configurations de production, de se référer à [ Installation automatisée sur Ubuntu] (#getting_started_linux_automated_install).
Pour des performances optimales, il est recommandé d'allouer à la base de données PostgreSQL plus de la moitié de la RAM disponible, l'autre moitié étant partagée entre vos instances dhis2 et certains systèmes d'exploitation. Les étapes marquées comme optionnelles, comme l'étape de réglage des performances, peuvent être effectuées ultérieurement.
Ici, le terme invoquer fait référence à l'exécution d'une commande directement dans le terminal.
Prérequis¶
- Serveur fonctionnant sous Ubuntu 22.04
- Accès SSH avec un utilisateur
non rootavec les privilègessudo.
Création d'un utilisateur pour faire fonctionner DHIS2¶
DHIS2 sur Tomcat ne doit jamais être exécuté en tant qu'utilisateur principal. Créez plutôt un utilisateur standard et utilisez-le pour exécuter l'instance Tomcat afin d'améliorer la sécurité.,
Important
Vous ne devez pas opérer le serveur DHIS2 en tant qu'utilisateur privilégié, par exemple super-utilisateur.
-
Créer un utilisateur système dhis2
sudo useradd -d /home/dhis -m dhis -s /bin/false -
Définir le mot de passe de l'utilisateur créé
Créez un mot de passe sécurisé comportant au moins 15 caractères aléatoires.sudo passwd dhis
Création du répertoire de configuration¶
- Créer un répertoire de configuration pour l'instance DHIS2. Ce répertoire sera également utilisé pour les applications, les fichiers et les fichiers journaux.
sudo -u dhis mkdir /home/dhis/config - DHIS2 recherchera une variable d'environnement appelée
DHIS2_HOMEpour localiser le répertoire de configuration de DHIS2. Ce répertoire sera appeléDHIS2_HOMEdans ce guide d'installation. Nous définirons la variable d'environnement dans une étape ultérieure du processus d'installation. - Si aucune variable d'environnement
DHIS2_HOMEn'est trouvée, le fichier de configuration par défaut/opt/dhis2est utilisé.
Définition du fuseau horaire et de l'emplacement du serveur¶
-
Il peut être nécessaire de reconfigurer le fuseau horaire du serveur pour qu'il corresponde au fuseau horaire de l'endroit que couvrira le serveur DHIS2. Si vous utilisez un serveur privé virtuel, le fuseau horaire par défaut peut ne pas correspondre au fuseau horaire de votre site DHIS2. Vous pouvez facilement reconfigurer le fuseau horaire en invoquant la commande ci-dessous et en suivant les instructions.
sudo dpkg-reconfigure tzdata -
PostgreSQL est sensible aux langues, il est donc possible que vous ayez à installer votre langue en premier. Pour vérifier les langues existantes et en installer de nouvelles (par exemple, Anglais US) :
locale -a sudo locale-gen en_US.utf8
Installation de PostgreSQL¶
Installer PostgreSQL en suivant les étapes ci-dessous
- Ajouter le référentiel PostgreSQL
sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' - Importer la clé de signature du référentiel PostgreSQL :
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg - Mettre à jour les listes de package
sudo apt update -y && sudo apt upgrade -y -
Installer PostgreSQL 16
sudo apt-get install -y postgresql-16 postgresql-16-postgis-3 -
S'assurer que postgresql est lancé et activé
sudo systemctl start postgresql sudo systemctl enable postgresql -
Créez un utilisateur de base de données non privilégié
dhisavec lacommandeci-dessous :Saisissez un mot de passe sécurisé à la demande :sudo -u postgres createuser -SDRP dhis
Note
This database user and password will be used by your DHIS2 application to connect to the database. You will need to write down this user and password in the
dhis.conffile at a later stage.
- Créez une base de données nommée
dhisappartenant à l'utilisateur de base de donnéesdhisen appelant :sudo -u postgres createdb -O dhis dhis; - L'extension PostGIS est nécessaire au fonctionnement de plusieurs fonctions SIG/et de mapping. DHIS2 tentera d'installer l'extension PostGIS au démarrage, mais cela ne fonctionnera pas car cet utilisateur n'est pas le superutilisateur. Pour ajouter des index trigrammes et les combiner avec des types de colonnes primitives, deux extensions doivent être créées dans la base de données pour DHIS 2 version 2.38 et ultérieures. Ces extensions font déjà partie de l'installation par défaut de posgresql : Puisque l'utilisateur de la base de données DHIS2 n'a pas la permission de créer des extensions, créez- les à partir de la console en utilisant l'utilisateur
postgresavec les commandes suivantes :Vérifiez PostgreSQL Performance Tuning pour les paramètres d'optimisation.sudo -u postgres psql -c "create extension postgis;" dhis sudo -u postgres psql -c "create extension btree_gin;" dhis sudo -u postgres psql -c "create extension pg_trgm;" dhis
Installation de Java¶
| Version de DHIS2 | JDK recommandé | JDK requis | Tomcat requis |
|---|---|---|---|
| 2.41 | 17 | 17 | 8.5.50 |
| 2.40 | 17 | 11 | 8.5.50 |
| 2.38 | 11 | 11 | 8.5.50 |
| 2.35 | 11 | 8 | |
| pre 2.35 | 8 | 8 |
Le JDK Java recommandé pour DHIS2 2.40 et les versions supérieures est OpenJDK 17, il est requis pour la version 2.41.
sudo apt-get install -y openjdk-17-jdk
sudo apt-get install -y openjdk-11-jdk
sudo apt-get install -y openjdk-8-jdk
java -version
Configuration de DHIS2¶
Les informations de connexion à la base de données sont fournies à DHIS2 via un fichier de configuration appelé dhis.conf. Créez ce fichier et sauvegardez-le dans le répertoire DHIS2_HOME. À titre d'exemple, cet emplacement pourrait être:
sudo -u dhis touch /home/dhis/config/dhis.conf
Un fichier de configuration pour PostgreSQL correspondant à la configuration ci-dessus a les propriétés suivantes :
Modifiez le fichier et ajoutez le contenu comme ci-dessous,
sudo -u dhis vim /home/dhis/config/dhis.conf
# ----------------------------------------------------------------------
# Connexion à la base de données
# ----------------------------------------------------------------------
# Classe du pilote JDBC
connection.driver_class = org.postgresql.Driver
# URL de connexion à la base de données
connection.url = jdbc:postgresql:dhis
# Nom d'utilisateur de la base de données
connection.username = dhis
# Mot de passe de la base de données
connection.password = xxxx
Installation de Tomcat et DHIS2¶
- Pour installer le conteneur de servlets Tomcat, nous utiliserons l'utilisateur Tomcat Installez-le à l'aide de la commande ci-dessous, Ce package permet de créer une nouvelle instance Tomcat. L'instance sera créée dans le répertoire courant. Un emplacement approprié est le répertoire personnel de l'utilisateur
sudo apt-get install -y tomcat9-userdhis: -
Utilisez la commande suivante pour créer une instance nommée
tomcat-dhisdans le répertoire/home/dhis/tomcat-dhis.sudo tomcat9-instance-create /home/dhis/tomcat-dhis sudo chown -R dhis:dhis /home/dhis/tomcat-dhis/Note
tomcat9-userpackage allows for creating any number of DHIS2 instances if that is desired. -
Editez le fichier
/home/dhis/tomcat-dhis/bin/setenv.shet ajoutez les lignes suivantes à la fin du fichier.sudo -u dhis vim /home/dhis/tomcat-dhis/bin/setenv.shexport JAVA_HOME='/usr/lib/jvm/java-11-openjdk-amd64/' export JAVA_OPTS='-Xms4000m -Xmx7000m' export DHIS2_HOME='/home/dhis/config'JAVA_HOMEdéfinit l'emplacement de l'installation du JDK.JAVA_OPTStransmet les paramètres à la JVM.-Xmsdéfinit l'allocation initiale de mémoire à l'espace de mémoire du tas Java.-Xmxdéfinit l'allocation maximale de mémoire à l'espace mémoire du tas Java. Cela doit refléter la quantité de mémoire que vous voulez allouer à l'application logicielle DHIS 2 sur votre serveur.
DHIS2_HOMEdéfinit l'emplacement du fichier de configurationdhis.confpour DHIS2. Vérifiez que le chemin des binaires Java est correct car il peut varier d'un système à l'autre, par exemple sur les systèmes AMD vous pourriez voir/java-11-openjdk-amd64. Notez que vous devez adapter ces valeurs à votre environnement.
-
DHIS2 ne doit jamais être exécuté en tant qu'utilisateur privilégié. Après avoir modifié le fichier
setenv.sh, modifiez le scriptstartup.shpour vérifier que le script n'a pas été exécuté en tant que racine.sudo -u dhis vim /home/dhis/tomcat-dhis/bin/startup.sh#!/bin/sh set -e if [ "$(id -u)" -eq "0" ]; then echo "This script must NOT be run as root" 1>&2 exit 1 fi export CATALINA_BASE="/home/dhis/tomcat-dhis" /usr/share/tomcat9/bin/startup.sh echo "Tomcat started" -
Le fichier de configuration de Tomcat est situé dans
/home/dhis/tomcat-dhis/conf/server.xml. L'élément qui définit la connexion au DHIS est l'élément Connecteur avec le port 8080. Vous pouvez changer le numéro de port dans l'élément Connecteur pour un port désiré si nécessaire. L'attributrelaxedQueryChars(Requête assouplie) est nécessaire pour autoriser certains caractères dans les URLs utilisées par l'interface DHIS2.<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" relaxedQueryChars="[]" /> -
L'étape suivante consiste à télécharger le fichier WAR DHIS2 et à le placer dans le répertoire webapps de Tomcat. Vous pouvez télécharger les fichiers WAR DHIS2 à partir de l'emplacement suivant :
Exemple de téléchargement de la version 40.3.0 de dhis2https://releases.dhis2.org/Déplacez le fichier WAR dans le répertoire Tomcatwget -O dhis.war https://releases.dhis2.org/40/dhis2-stable-40.3.0.warwebapps. Nous voulons appeler le fichier WARROOT.warafin de le rendre disponible àlocalhost(l'hôte local) directement sans chemin d'accès contextuel : Utilisation du fichier WAR téléchargé avec l'exemple wget ci-dessus :
sudo mv dhis.war /home/dhis/tomcat-dhis/webapps/ROOT.war
Fonctionnement de DHIS2¶
- Démarrez l'instance DHIS2 à l'aide de la commande ci-dessous,
sudo -u dhis /home/dhis/tomcat-dhis/bin/startup.sh
:bulb : Important
Le serveur DHIS2 ne doit jamais être exécuté en tant que super-utilisateur ou autre utilisateur privilégié.
-
Consulter les journaux en direct
tail -f /home/dhis/tomcat-dhis/logs/catalina.out -
Arrêter l'instance dhis2
sudo -u dhis /home/dhis/tomcat-dhis/bin/shutdown.sh -
Si le fichier WAR déployé dans le
webappsest nommé ROOT.war, vous pouvez maintenant accéder à votre instance DHIS2 à l'URL suivante :