objet
Ce document décrit la procédure d'installation d'une application Zord sur une machine disposant de l'OS Linux/Debian 10 (buster)
Il s'adresse à un administrateur système connaissant les bases de l'administration de nginx, mysql et solr
Il est accompagné d'une archive contenant les gabarits de fichiers de configuration à renseigner (zord_library_templates.zip)
- pré-requis
Le fonctionnement de Zord nécessite l'installation préalable des paquets suivants
Ces paquets peuvent être installés avec la commande suivante, exécutée par un compte disposant des accès sudo requis
sudo apt-get install git sendmail nginx mariadb-server epubcheck jing libbatik-java imagemagick php7.3
En complément, les modules PHP suivants sont nécessaires :
Ces modules peuvent être installés avec la commande suivante, toujours exécutée par un compte disposant des accès sudo requis
sudo apt-get install php7.3-fpm php7.3-mysql php7.3-solr php7.3-odbc php7.3-imagick php7.3-gd php7.3-intl php7.3-mbstring php7.3-xml php7.3-uploadprogress php7.3-zip php7.3-ssh2 php7.3-sqlite3 php7.3-xdebug
Il faut de plus configurer le module php-fpm pour que les scripts PHP soient exécutés avec le compte UNIX dédié à Zord Pour cela, il faut d'abord eventuellement créer le compte dédié avec la commande suivante :
sudo useradd <zord_user>
puis éditer le fichier /etc/php/7.3/fpm/pool.d/www.conf et modifier les valeurs des variables 'user' et 'group' :
... user = <zord_user> group = <zord_user> ...
Enfin, dernier pré-requis, l'installation de Solr7 et la création d'un core dédié à l'application Zord Library
Télécharger la dernière version 7 de SolR au format binaire depuis le site de la fondation Apache : https://lucene.apache.org/solr/downloads.html Décompresser l'archive dans le répertoire de votre choix Exécuter le script d'installation install_solr_service.sh présent dans le répertoire bin de l'archive Une fois le service installé, créer un core SolR à partir de l'interface d'administration et des fichiers de configuration fournis dans l'archive jointe
NB : A partir de ce point les commandes indiquées doivent être exécutées avec le compte dédié à l'application Zord Library
Installation des composants de Zord Library
Une première étape consiste à créer l'arborescence de fichiers, récupèrer le code source des différents composants de l'application et initialiser les fichiers de configuration qu'il faudra ultérieurement renseigner Pour cela, exécuter la séquence de commandes suivantes (<zord_library_myapp> est à remplacer par le nom que vous voulez attribuer à votre application) :
mkdir -p ~/zord/engines/library ~/zord/stores/<zord_library_myapp> cd ~/zord/engines/library git clone https://github.com/DrozNumerique/zord-core <zord_library_myapp> cd <zord_library_myapp> mkdir components cd components git clone https://github.com/DrozNumerique/zord-store 10-zord-store git clone https://github.com/DrozNumerique/zord-library 20-zord-library mkdir 30-zord-custom cd 30-zord-custom mkdir config cd config echo "{}" > constant.json echo "{}" > connection.json echo "{}" > context.json cd ~/zord/stores/<zord_library_myapp> mkdir books epub library medias public zoom
Renseigner les fichiers de configuration
Il s'agit des trois fichiers au format JSON créés à l'étape suivant (voir exemples fournis) Il faut renseigner a minima en partant des gabarits fournis dans l'archive jointe :
Le répertoire du magasin documentaire (STORE_FOLDER dans constant.json) La chaine de caractères utilisées pour générer les empreintes chiffrées des mots de passe (SALT dans constant.json) Les paramètres de connexion à la base de données (database/default dans connection.json) Les paramètres de connexion à SolR (solr/zord dans connection.json) Les paramètres d'au moins un portail Zord (<portal>/title et <portal>/url dans le fichier context.json)
Générer des clés OpenSSL pour le chiffrement des tokens
ssh-keygen -t rsa -b 2048 openssl rsa -in ~/.ssh/id_rsa -pubout -out ~/.ssh/id_rsa.pub.pem
Créer la base de données et les tables requises
Il faut créer la base de données MySQL depuis l'utilitaire en ligne de commande 'mysql' en se connectant avec un compte ayant les privilèges requis
Pour cela, lancer la séquence de commandes suivante :
CREATE DATABASE <zord_library_myapp>; USE <zord_library_myapp>; SOURCE </path/to/zord_library.sql>; UPDATE users set email = '<email@domain>', password = SHA2(CONCAT(<SALT>, <password>),0) WHERE login = 'admin';
<zord_library_myapp> est le nom attribué à la base et repris dans les paramètres de connexion définis dans le fichier connection.json </path/to/zord_library.sql> est le chemin d'accès au script SQL fourni dans l'archive jointe <email@domain> est l'adresse e-mail du compte d'administration. <password> est le mot passe attribué au compte d'administation. <SALT> est la valeur du paramètre SALT défini dans le fichier de configuration constant.json
Créer un vhost nginx pour l'application
Il faut copier le fichier vhost fourni en exemple et renseigner les valeurs entre <>
Le commandes suivantes doivent être executées avec le compte root
cp </path/to/zord_library.vhost> /etc/nginx/sites-available/<zord_library_myapp> cd /etc/nginx/sites-enabled ln -s ../sites-available/<zord_library_myapp> <zord_library_myapp>
Une fois le fichier /etc/nginx/sites-available/<zord_library_myapp> renseigné, le vhost peut être lancé avec la commande suivante :
service nginx reload
L'application Zord Library est alors disponible